Retro68/gcc/libgo/go/runtime/symtab_test.go

56 lines
1.1 KiB
Go
Raw Normal View History

2012-03-27 23:13:14 +00:00
// 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.
package runtime_test
import (
"runtime"
"strings"
"testing"
)
var _ = runtime.Caller
var _ = strings.HasSuffix
type _ testing.T
/* runtime.Caller is not fully implemented for gccgo.
func TestCaller(t *testing.T) {
procs := runtime.GOMAXPROCS(-1)
c := make(chan bool, procs)
for p := 0; p < procs; p++ {
go func() {
for i := 0; i < 1000; i++ {
testCallerFoo(t)
}
c <- true
}()
defer func() {
<-c
}()
}
}
func testCallerFoo(t *testing.T) {
testCallerBar(t)
}
func testCallerBar(t *testing.T) {
for i := 0; i < 2; i++ {
pc, file, line, ok := runtime.Caller(i)
f := runtime.FuncForPC(pc)
if !ok ||
!strings.HasSuffix(file, "symtab_test.go") ||
(i == 0 && !strings.HasSuffix(f.Name(), "testCallerBar")) ||
(i == 1 && !strings.HasSuffix(f.Name(), "testCallerFoo")) ||
line < 5 || line > 1000 ||
f.Entry() >= pc {
t.Errorf("incorrect symbol info %d: %t %d %d %s %s %d",
i, ok, f.Entry(), pc, f.Name(), file, line)
}
}
}
*/