]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: only check the existence of variables in gdb info locals test
authorMartin Möhrmann <moehrmann@google.com>
Thu, 1 Nov 2018 10:20:11 +0000 (11:20 +0100)
committerMartin Möhrmann <martisch@uos.de>
Fri, 2 Nov 2018 00:52:46 +0000 (00:52 +0000)
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/146598
Reviewed-by: Heschi Kreinick <heschi@google.com>
src/runtime/runtime-gdb_test.go

index ee63285ec5f0a59086fc6bb0c6d48d13ec0021f4..7672e45b0346585192760ebb877792e8794913f2 100644 (file)
@@ -262,15 +262,13 @@ func testGdbPython(t *testing.T, cgo bool) {
        // However, the newer dwarf location list code reconstituted
        // aggregates from their fields and reverted their printing
        // 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"}`)
-       // Format output from gdb v8.2
-       infoLocalsRe2 := regexp.MustCompile(`^slicevar = .*\nmapvar = .*\nstrvar = 0x[0-9a-f]+ "abc"`)
-       // 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) {
+       if bl := blocks["info locals"]; !strings.Contains(bl, "slicevar") ||
+               !strings.Contains(bl, "mapvar") ||
+               !strings.Contains(bl, "strvar") {
                t.Fatalf("info locals failed: %s", bl)
        }