diff options
author | Colin Cross <ccross@android.com> | 2015-02-03 12:59:37 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2015-02-03 12:59:37 -0800 |
commit | 7bb052a61962320641242e4290ffb5087e6094cb (patch) | |
tree | 36b50dba2f5dc5ade33cc1d2e4b04feb889972b8 /test/init1.go | |
parent | daecc4af0fef44c8075dee7a529288d33a510b51 (diff) | |
download | platform_prebuilts_go_linux-x86-7bb052a61962320641242e4290ffb5087e6094cb.tar.gz platform_prebuilts_go_linux-x86-7bb052a61962320641242e4290ffb5087e6094cb.tar.bz2 platform_prebuilts_go_linux-x86-7bb052a61962320641242e4290ffb5087e6094cb.zip |
Go prebuilts for linux-x86, version 1.4.1studio-master-releasemaster-soong
See README.ANDROID for instructions on rebuilding the prebuilts.
Change-Id: I86db7f4fb3269585078da4d38947ca9126ac813b
Diffstat (limited to 'test/init1.go')
-rw-r--r-- | test/init1.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/init1.go b/test/init1.go new file mode 100644 index 00000000..f6eda6ed --- /dev/null +++ b/test/init1.go @@ -0,0 +1,45 @@ +// run + +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Test that goroutines and garbage collection run during init. + +package main + +import "runtime" + +var x []byte + +func init() { + c := make(chan int) + go send(c) + <-c + + const chunk = 1 << 20 + memstats := new(runtime.MemStats) + runtime.ReadMemStats(memstats) + sys := memstats.Sys + b := make([]byte, chunk) + for i := range b { + b[i] = byte(i%10 + '0') + } + s := string(b) + for i := 0; i < 1000; i++ { + x = []byte(s) + } + runtime.ReadMemStats(memstats) + sys1 := memstats.Sys + if sys1-sys > chunk*50 { + println("allocated 1000 chunks of", chunk, "and used ", sys1-sys, "memory") + panic("init1") + } +} + +func send(c chan int) { + c <- 1 +} + +func main() { +} |