1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // 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)
- }
- }
- }
- */
|