]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix TestGdbAutotmpTypes on gdb version 15
authorShulhan <m.shulhan@gmail.com>
Sat, 13 Jul 2024 05:18:04 +0000 (12:18 +0700)
committerMeng Zhuo <mengzhuo1203@gmail.com>
Fri, 27 Sep 2024 00:25:54 +0000 (00:25 +0000)
On Arch Linux with gdb version 15.1, the test for TestGdbAutotmpTypes print
the following output,

----
~/src/go/src/runtime
$ go test -run=TestGdbAutotmpTypes -v
=== RUN   TestGdbAutotmpTypes
=== PAUSE TestGdbAutotmpTypes
=== CONT  TestGdbAutotmpTypes
    runtime-gdb_test.go:78: gdb version 15.1
    runtime-gdb_test.go:570: gdb output:
        Loading Go Runtime support.
        Target 'exec' cannot support this command.
        Breakpoint 1 at 0x46e416: file /tmp/TestGdbAutotmpTypes750485513/001/main.go, line 8.

        This GDB supports auto-downloading debuginfo from the following URLs:
          <https://debuginfod.archlinux.org>
        Enable debuginfod for this session? (y or [n]) [answered N; input not from terminal]
        Debuginfod has been disabled.
        To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
        [New LWP 355373]
        [New LWP 355374]
        [New LWP 355375]
        [New LWP 355376]

        Thread 1 "a.exe" hit Breakpoint 1, main.main () at /tmp/TestGdbAutotmpTypes750485513/001/main.go:8
        8       func main() {
        9               var iface interface{} = map[string]astruct{}
        All types matching regular expression "astruct":

        File runtime:
                []main.astruct
                bucket<string,main.astruct>
                hash<string,main.astruct>
                main.astruct
                typedef hash<string,main.astruct> * map[string]main.astruct;
                typedef noalg.[8]main.astruct noalg.[8]main.astruct;
                noalg.map.bucket[string]main.astruct
    runtime-gdb_test.go:587: could not find []main.astruct; in 'info typrs astruct' output
!!! FAIL
exit status 1
FAIL    runtime 0.273s
$
----

In the back trace for "File runtime", each output lines does not end with
";" anymore, while in test we check the string with it.

While at it, print the expected string with "%q" instead of "%s" for
better error message.

Fixes #67089

Change-Id: If6019ee68c0d8e495c920f98568741462c7d0fd0
Reviewed-on: https://go-review.googlesource.com/c/go/+/598135
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Meng Zhuo <mengzhuo1203@gmail.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
src/runtime/runtime-gdb_test.go

index 30703005b3b867b167dd03e0104924b1312157b9..f2a9bd055a9ab625e56665649f7d5daf563b8e3c 100644 (file)
@@ -575,15 +575,15 @@ func TestGdbAutotmpTypes(t *testing.T) {
 
        // Check that the backtrace matches the source code.
        types := []string{
-               "[]main.astruct;",
-               "bucket<string,main.astruct>;",
-               "hash<string,main.astruct>;",
-               "main.astruct;",
-               "hash<string,main.astruct> * map[string]main.astruct;",
+               "[]main.astruct",
+               "bucket<string,main.astruct>",
+               "hash<string,main.astruct>",
+               "main.astruct",
+               "hash<string,main.astruct> * map[string]main.astruct",
        }
        for _, name := range types {
                if !strings.Contains(sgot, name) {
-                       t.Fatalf("could not find %s in 'info typrs astruct' output", name)
+                       t.Fatalf("could not find %q in 'info typrs astruct' output", name)
                }
        }
 }