diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/go.test/test/env.go | 15 | ||||
-rw-r--r-- | gcc/testsuite/go.test/test/fixedbugs/bug262.go | 4 | ||||
-rw-r--r-- | gcc/testsuite/go.test/test/malloc1.go | 26 | ||||
-rw-r--r-- | gcc/testsuite/go.test/test/mallocrand.go | 93 | ||||
-rw-r--r-- | gcc/testsuite/go.test/test/mallocrep.go | 72 | ||||
-rw-r--r-- | gcc/testsuite/go.test/test/mallocrep1.go | 143 |
6 files changed, 9 insertions, 344 deletions
diff --git a/gcc/testsuite/go.test/test/env.go b/gcc/testsuite/go.test/test/env.go index a4b9d05..3c8e423 100644 --- a/gcc/testsuite/go.test/test/env.go +++ b/gcc/testsuite/go.test/test/env.go @@ -4,6 +4,9 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// Test that the Go environment variables are present and accessible through +// package os and package runtime. + package main import ( @@ -12,18 +15,14 @@ import ( ) func main() { - ga, e0 := os.Getenverror("GOARCH") - if e0 != nil { - print("$GOARCH: ", e0.Error(), "\n") - os.Exit(1) - } + ga := os.Getenv("GOARCH") if ga != runtime.GOARCH { print("$GOARCH=", ga, "!= runtime.GOARCH=", runtime.GOARCH, "\n") os.Exit(1) } - xxx, e1 := os.Getenverror("DOES_NOT_EXIST") - if e1 != os.ENOENV { - print("$DOES_NOT_EXIST=", xxx, "; err = ", e1.Error(), "\n") + xxx := os.Getenv("DOES_NOT_EXIST") + if xxx != "" { + print("$DOES_NOT_EXIST=", xxx, "\n") os.Exit(1) } } diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug262.go b/gcc/testsuite/go.test/test/fixedbugs/bug262.go index f5f2c35..ebca790 100644 --- a/gcc/testsuite/go.test/test/fixedbugs/bug262.go +++ b/gcc/testsuite/go.test/test/fixedbugs/bug262.go @@ -7,7 +7,7 @@ package main import ( - "os" + "errors" "strconv" ) @@ -44,7 +44,7 @@ func main() { } mm := make(map[string]error) trace = "" - mm["abc"] = os.EINVAL + mm["abc"] = errors.New("invalid") *i(), mm[f()] = strconv.Atoi(h()) if mm["abc"] != nil || trace != "ifh" { println("BUG1", mm["abc"], trace) diff --git a/gcc/testsuite/go.test/test/malloc1.go b/gcc/testsuite/go.test/test/malloc1.go deleted file mode 100644 index 0f7f0b2..0000000 --- a/gcc/testsuite/go.test/test/malloc1.go +++ /dev/null @@ -1,26 +0,0 @@ -// $G $D/$F.go && $L $F.$A && ./$A.out - -// Copyright 2009 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. - -// trivial malloc test - -package main - -import ( - "flag" - "fmt" - "runtime" -) - -var chatty = flag.Bool("v", false, "chatty") - -func main() { - memstats := new(runtime.MemStats) - runtime.Free(runtime.Alloc(1)) - runtime.ReadMemStats(memstats) - if *chatty { - fmt.Printf("%+v %v\n", memstats, uint64(0)) - } -} diff --git a/gcc/testsuite/go.test/test/mallocrand.go b/gcc/testsuite/go.test/test/mallocrand.go deleted file mode 100644 index 69d07ce..0000000 --- a/gcc/testsuite/go.test/test/mallocrand.go +++ /dev/null @@ -1,93 +0,0 @@ -// $G $D/$F.go && $L $F.$A && ./$A.out - -// Copyright 2009 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. - -// Random malloc test. - -package main - -import ( - "flag" - "math/rand" - "runtime" - "unsafe" -) - -var chatty = flag.Bool("v", false, "chatty") - -var footprint uint64 -var allocated uint64 - -func bigger() { - memstats := new(runtime.MemStats) - runtime.ReadMemStats(memstats) - if f := memstats.Sys; footprint < f { - footprint = f - if *chatty { - println("Footprint", footprint, " for ", allocated) - } - if footprint > 1e9 { - println("too big") - panic("fail") - } - } -} - -// Prime the data structures by allocating one of -// each block in order. After this, there should be -// little reason to ask for more memory from the OS. -func prime() { - for i := 0; i < 16; i++ { - b := runtime.Alloc(1 << uint(i)) - runtime.Free(b) - } - for i := uintptr(0); i < 256; i++ { - b := runtime.Alloc(i << 12) - runtime.Free(b) - } -} - -func memset(b *byte, c byte, n uintptr) { - np := uintptr(n) - for i := uintptr(0); i < np; i++ { - *(*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(b)) + i)) = c - } -} - -func main() { - flag.Parse() - // prime() - var blocks [1]struct { - base *byte - siz uintptr - } - for i := 0; i < 1<<10; i++ { - if i%(1<<10) == 0 && *chatty { - println(i) - } - b := rand.Int() % len(blocks) - if blocks[b].base != nil { - // println("Free", blocks[b].siz, blocks[b].base) - runtime.Free(blocks[b].base) - blocks[b].base = nil - allocated -= uint64(blocks[b].siz) - continue - } - siz := uintptr(rand.Int() >> (11 + rand.Uint32()%20)) - base := runtime.Alloc(siz) - // ptr := uintptr(syscall.BytePtr(base))+uintptr(siz/2) - // obj, size, ref, ok := allocator.find(ptr) - // if obj != base || *ref != 0 || !ok { - // println("find", siz, obj, ref, ok) - // panic("fail") - // } - blocks[b].base = base - blocks[b].siz = siz - allocated += uint64(siz) - // println("Alloc", siz, base) - memset(base, 0xbb, siz) - bigger() - } -} diff --git a/gcc/testsuite/go.test/test/mallocrep.go b/gcc/testsuite/go.test/test/mallocrep.go deleted file mode 100644 index 4188da9..0000000 --- a/gcc/testsuite/go.test/test/mallocrep.go +++ /dev/null @@ -1,72 +0,0 @@ -// $G $D/$F.go && $L $F.$A && ./$A.out - -// Copyright 2009 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. - -// Repeated malloc test. - -package main - -import ( - "flag" - "runtime" -) - -var chatty = flag.Bool("v", false, "chatty") - -var oldsys uint64 -var memstats runtime.MemStats - -func bigger() { - st := &memstats - runtime.ReadMemStats(st) - if oldsys < st.Sys { - oldsys = st.Sys - if *chatty { - println(st.Sys, " system bytes for ", st.Alloc, " Go bytes") - } - if st.Sys > 1e9 { - println("too big") - panic("fail") - } - } -} - -func main() { - runtime.GC() // clean up garbage from init - runtime.ReadMemStats(&memstats) // first call can do some allocations - runtime.MemProfileRate = 0 // disable profiler - stacks := memstats.Alloc // ignore stacks - flag.Parse() - for i := 0; i < 1<<7; i++ { - for j := 1; j <= 1<<22; j <<= 1 { - if i == 0 && *chatty { - println("First alloc:", j) - } - if a := memstats.Alloc - stacks; a != 0 { - println("no allocations but stats report", a, "bytes allocated") - panic("fail") - } - b := runtime.Alloc(uintptr(j)) - runtime.ReadMemStats(&memstats) - during := memstats.Alloc - stacks - runtime.Free(b) - runtime.ReadMemStats(&memstats) - if a := memstats.Alloc - stacks; a != 0 { - println("allocated ", j, ": wrong stats: during=", during, " after=", a, " (want 0)") - panic("fail") - } - bigger() - } - if i%(1<<10) == 0 && *chatty { - println(i) - } - if i == 0 { - if *chatty { - println("Primed", i) - } - // runtime.frozen = true - } - } -} diff --git a/gcc/testsuite/go.test/test/mallocrep1.go b/gcc/testsuite/go.test/test/mallocrep1.go deleted file mode 100644 index f9d7286..0000000 --- a/gcc/testsuite/go.test/test/mallocrep1.go +++ /dev/null @@ -1,143 +0,0 @@ -// $G $D/$F.go && $L $F.$A && ./$A.out - -// Copyright 2009 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. - -// Repeated malloc test. - -package main - -import ( - "flag" - "fmt" - "runtime" - "strconv" -) - -var chatty = flag.Bool("v", false, "chatty") -var reverse = flag.Bool("r", false, "reverse") -var longtest = flag.Bool("l", false, "long test") - -var b []*byte -var stats = new(runtime.MemStats) - -func OkAmount(size, n uintptr) bool { - if n < size { - return false - } - if size < 16*8 { - if n > size+16 { - return false - } - } else { - if n > size*9/8 { - return false - } - } - return true -} - -func AllocAndFree(size, count int) { - if *chatty { - fmt.Printf("size=%d count=%d ...\n", size, count) - } - runtime.ReadMemStats(stats) - n1 := stats.Alloc - for i := 0; i < count; i++ { - b[i] = runtime.Alloc(uintptr(size)) - base, n := runtime.Lookup(b[i]) - if base != b[i] || !OkAmount(uintptr(size), n) { - println("lookup failed: got", base, n, "for", b[i]) - panic("fail") - } - runtime.ReadMemStats(stats) - if stats.Sys > 1e9 { - println("too much memory allocated") - panic("fail") - } - } - runtime.ReadMemStats(stats) - n2 := stats.Alloc - if *chatty { - fmt.Printf("size=%d count=%d stats=%+v\n", size, count, *stats) - } - n3 := stats.Alloc - for j := 0; j < count; j++ { - i := j - if *reverse { - i = count - 1 - j - } - alloc := uintptr(stats.Alloc) - base, n := runtime.Lookup(b[i]) - if base != b[i] || !OkAmount(uintptr(size), n) { - println("lookup failed: got", base, n, "for", b[i]) - panic("fail") - } - runtime.Free(b[i]) - runtime.ReadMemStats(stats) - if stats.Alloc != uint64(alloc-n) { - println("free alloc got", stats.Alloc, "expected", alloc-n, "after free of", n) - panic("fail") - } - if stats.Sys > 1e9 { - println("too much memory allocated") - panic("fail") - } - } - runtime.ReadMemStats(stats) - n4 := stats.Alloc - - if *chatty { - fmt.Printf("size=%d count=%d stats=%+v\n", size, count, *stats) - } - if n2-n1 != n3-n4 { - println("wrong alloc count: ", n2-n1, n3-n4) - panic("fail") - } -} - -func atoi(s string) int { - i, _ := strconv.Atoi(s) - return i -} - -func main() { - runtime.MemProfileRate = 0 // disable profiler - flag.Parse() - b = make([]*byte, 10000) - if flag.NArg() > 0 { - AllocAndFree(atoi(flag.Arg(0)), atoi(flag.Arg(1))) - return - } - maxb := 1 << 22 - if !*longtest { - maxb = 1 << 19 - } - for j := 1; j <= maxb; j <<= 1 { - n := len(b) - max := uintptr(1 << 28) - if !*longtest { - max = uintptr(maxb) - } - if uintptr(j)*uintptr(n) > max { - n = int(max / uintptr(j)) - } - if n < 10 { - n = 10 - } - for m := 1; m <= n; { - AllocAndFree(j, m) - if m == n { - break - } - m = 5 * m / 4 - if m < 4 { - m++ - } - if m > n { - m = n - } - } - } -} |