1
0
mirror of https://github.com/golang/go synced 2024-11-19 15:05:00 -07:00

runtime: make test independent of inlining

TestBreakpoint expects to see "runtime.Breakpoint()" in the stack trace.
If runtime.Breakpoint() is inlined, then the stack trace prints
"runtime.Breakpoint(...)" since the runtime does not have information
about arguments (or lack thereof) to inlined functions. This change
makes the test independent of inlining by looking for the string
"runtime.Breakpoint(". Now TestBreakpoint passes with -l=4.

Change-Id: Ia044a8e8a4de2337cb2b393d6fa78c73a2f25926
Reviewed-on: https://go-review.googlesource.com/40997
Run-TryBot: David Lazar <lazard@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
This commit is contained in:
David Lazar 2017-04-19 12:04:18 -04:00
parent 6f2e6f8dd6
commit da75700a64

View File

@ -308,7 +308,9 @@ func TestNoHelperGoroutines(t *testing.T) {
func TestBreakpoint(t *testing.T) { func TestBreakpoint(t *testing.T) {
output := runTestProg(t, "testprog", "Breakpoint") output := runTestProg(t, "testprog", "Breakpoint")
want := "runtime.Breakpoint()" // If runtime.Breakpoint() is inlined, then the stack trace prints
// "runtime.Breakpoint(...)" instead of "runtime.Breakpoint()".
want := "runtime.Breakpoint("
if !strings.Contains(output, want) { if !strings.Contains(output, want) {
t.Fatalf("output:\n%s\n\nwant output containing: %s", output, want) t.Fatalf("output:\n%s\n\nwant output containing: %s", output, want)
} }