Commit 914a25c0 authored by Martin Möhrmann's avatar Martin Möhrmann Committed by Martin Möhrmann

runtime: only check the existence of variables in gdb info locals test

As discussed in golang.org/cl/28499:
Only test that all expected variables are listed in 'info locals' since
different versions of gdb print variables in different order and with
differing amount of information and formats.

Fixes #28499

Change-Id: I76627351170b5fdf2bf8cbf143e54f628b45dc4e
Reviewed-on: https://go-review.googlesource.com/c/146598Reviewed-by: default avatarHeschi Kreinick <heschi@google.com>
parent 484fc068
...@@ -262,15 +262,13 @@ func testGdbPython(t *testing.T, cgo bool) { ...@@ -262,15 +262,13 @@ func testGdbPython(t *testing.T, cgo bool) {
// However, the newer dwarf location list code reconstituted // However, the newer dwarf location list code reconstituted
// aggregates from their fields and reverted their printing // aggregates from their fields and reverted their printing
// back to its original form. // back to its original form.
// Only test that all variables are listed in 'info locals' since
// different versions of gdb print variables in different
// order and with differing amount of information and formats.
infoLocalsRe1 := regexp.MustCompile(`slicevar *= *\[\]string *= *{"def"}`) if bl := blocks["info locals"]; !strings.Contains(bl, "slicevar") ||
// Format output from gdb v8.2 !strings.Contains(bl, "mapvar") ||
infoLocalsRe2 := regexp.MustCompile(`^slicevar = .*\nmapvar = .*\nstrvar = 0x[0-9a-f]+ "abc"`) !strings.Contains(bl, "strvar") {
// Format output from gdb v7.7
infoLocalsRe3 := regexp.MustCompile(`^mapvar = .*\nstrvar = "abc"\nslicevar *= *\[\]string`)
if bl := blocks["info locals"]; !infoLocalsRe1.MatchString(bl) &&
!infoLocalsRe2.MatchString(bl) &&
!infoLocalsRe3.MatchString(bl) {
t.Fatalf("info locals failed: %s", bl) t.Fatalf("info locals failed: %s", bl)
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment