aboutsummaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2017-06-22 14:28:57 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2017-06-22 14:28:57 +0000
commited99905e1d89e84b74a07a55a46270d1f9f27991 (patch)
tree0d1aa2fdcb45caeb36ca00e366f40ccb5d360b24 /libgo
parent2a208bc2570b07b64deb1d549332e5d981c867bc (diff)
downloadgcc-ed99905e1d89e84b74a07a55a46270d1f9f27991.zip
gcc-ed99905e1d89e84b74a07a55a46270d1f9f27991.tar.gz
gcc-ed99905e1d89e84b74a07a55a46270d1f9f27991.tar.bz2
runtime: adjust tests for gofrontend
- don't run tests that depend on SetCgoTraceback - don't expect a '(' after the function name in a traceback - change the expected name of nested functions in a traceback These tests are not currently run, but they will be soon. Reviewed-on: https://go-review.googlesource.com/46453 From-SVN: r249557
Diffstat (limited to 'libgo')
-rw-r--r--libgo/go/runtime/crash_cgo_test.go12
-rw-r--r--libgo/go/runtime/crash_test.go18
-rw-r--r--libgo/go/runtime/crash_unix_test.go2
3 files changed, 29 insertions, 3 deletions
diff --git a/libgo/go/runtime/crash_cgo_test.go b/libgo/go/runtime/crash_cgo_test.go
index 347b820..b338df9 100644
--- a/libgo/go/runtime/crash_cgo_test.go
+++ b/libgo/go/runtime/crash_cgo_test.go
@@ -251,6 +251,9 @@ func TestCgoCrashTraceback(t *testing.T) {
if runtime.GOOS != "linux" || runtime.GOARCH != "amd64" {
t.Skipf("not yet supported on %s/%s", runtime.GOOS, runtime.GOARCH)
}
+ if runtime.Compiler == "gccgo" {
+ t.Skip("gccgo does not have SetCgoTraceback")
+ }
got := runTestProg(t, "testprogcgo", "CrashTraceback")
for i := 1; i <= 3; i++ {
if !strings.Contains(got, fmt.Sprintf("cgo symbolizer:%d", i)) {
@@ -261,6 +264,9 @@ func TestCgoCrashTraceback(t *testing.T) {
func TestCgoTracebackContext(t *testing.T) {
t.Parallel()
+ if runtime.Compiler == "gccgo" {
+ t.Skip("gccgo does not have SetCgoTraceback")
+ }
got := runTestProg(t, "testprogcgo", "TracebackContext")
want := "OK\n"
if got != want {
@@ -273,6 +279,9 @@ func testCgoPprof(t *testing.T, buildArg, runArg string) {
if runtime.GOOS != "linux" || runtime.GOARCH != "amd64" {
t.Skipf("not yet supported on %s/%s", runtime.GOOS, runtime.GOARCH)
}
+ if runtime.Compiler == "gccgo" {
+ t.Skip("gccgo does not have SetCgoTraceback")
+ }
testenv.MustHaveGoRun(t)
exe, err := buildTestProg(t, "testprogcgo", buildArg)
@@ -332,6 +341,9 @@ func TestRaceProf(t *testing.T) {
if runtime.GOOS != "linux" || runtime.GOARCH != "amd64" {
t.Skipf("not yet supported on %s/%s", runtime.GOOS, runtime.GOARCH)
}
+ if runtime.Compiler == "gccgo" {
+ t.Skip("gccgo does not have SetCgoTraceback")
+ }
testenv.MustHaveGoRun(t)
diff --git a/libgo/go/runtime/crash_test.go b/libgo/go/runtime/crash_test.go
index 9ec0ae4..4ba9d44 100644
--- a/libgo/go/runtime/crash_test.go
+++ b/libgo/go/runtime/crash_test.go
@@ -225,6 +225,9 @@ func TestGoexitDeadlock(t *testing.T) {
}
func TestStackOverflow(t *testing.T) {
+ if runtime.Compiler == "gccgo" {
+ t.Skip("gccgo does not do stack overflow checking")
+ }
output := runTestProg(t, "testprog", "StackOverflow")
want := "runtime: goroutine stack exceeds 1474560-byte limit\nfatal error: stack overflow"
if !strings.HasPrefix(output, want) {
@@ -302,7 +305,7 @@ func TestNoHelperGoroutines(t *testing.T) {
func TestBreakpoint(t *testing.T) {
output := runTestProg(t, "testprog", "Breakpoint")
- want := "runtime.Breakpoint()"
+ want := "runtime.Breakpoint"
if !strings.Contains(output, want) {
t.Fatalf("output:\n%s\n\nwant output containing: %s", output, want)
}
@@ -419,8 +422,16 @@ func TestPanicTraceback(t *testing.T) {
// Check functions in the traceback.
fns := []string{"main.pt1.func1", "panic", "main.pt2.func1", "panic", "main.pt2", "main.pt1"}
+ if runtime.Compiler == "gccgo" {
+ fns = []string{"main.$nested", "panic", "main.$nested", "panic", "main.pt2", "main.pt1"}
+ }
for _, fn := range fns {
- re := regexp.MustCompile(`(?m)^` + regexp.QuoteMeta(fn) + `\(.*\n`)
+ var re *regexp.Regexp
+ if runtime.Compiler != "gccgo" {
+ re = regexp.MustCompile(`(?m)^` + regexp.QuoteMeta(fn) + `\(.*\n`)
+ } else {
+ re = regexp.MustCompile(`(?m)^` + regexp.QuoteMeta(fn) + `.*\n`)
+ }
idx := re.FindStringIndex(output)
if idx == nil {
t.Fatalf("expected %q function in traceback:\n%s", fn, output)
@@ -454,6 +465,9 @@ func TestPanicLoop(t *testing.T) {
func TestMemPprof(t *testing.T) {
testenv.MustHaveGoRun(t)
+ if runtime.Compiler == "gccgo" {
+ t.Skip("gccgo may not have the pprof tool")
+ }
exe, err := buildTestProg(t, "testprog")
if err != nil {
diff --git a/libgo/go/runtime/crash_unix_test.go b/libgo/go/runtime/crash_unix_test.go
index 67ef334..7a29c1e 100644
--- a/libgo/go/runtime/crash_unix_test.go
+++ b/libgo/go/runtime/crash_unix_test.go
@@ -105,7 +105,7 @@ func TestCrashDumpsAllThreads(t *testing.T) {
// Before https://golang.org/cl/2811 running threads would say
// "goroutine running on other thread; stack unavailable".
out = outbuf.Bytes()
- n := bytes.Count(out, []byte("main.loop("))
+ n := bytes.Count(out, []byte("main.loop"))
if n != 4 {
t.Errorf("found %d instances of main.loop; expected 4", n)
t.Logf("%s", out)