diff options
author | Tom de Vries <tdevries@suse.de> | 2024-10-25 06:14:03 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2024-10-25 06:14:03 +0200 |
commit | d4110830693458b6ec684b21e64ec6320a400f5b (patch) | |
tree | ad08f3ad0c638a026b8c5ccea111ead367d6ede6 | |
parent | be6d665abddbdb598ca207472fbc37bb94799095 (diff) | |
download | gdb-d4110830693458b6ec684b21e64ec6320a400f5b.zip gdb-d4110830693458b6ec684b21e64ec6320a400f5b.tar.gz gdb-d4110830693458b6ec684b21e64ec6320a400f5b.tar.bz2 |
[gdb/testsuite] Fix some test-cases for check-read1 (gdb_test_lines)
I ran the testsuite in an environment simulating a stressed system in
combination with check-read1. This exposes a few more FAILs.
Fix some by using gdb_test_lines, as well as related gdb_get_lines.
Tested on x86_64-linux.
-rw-r--r-- | gdb/testsuite/gdb.base/premature-dummy-frame-removal.exp | 14 | ||||
-rwxr-xr-x | gdb/testsuite/gdb.btrace/exception.exp | 25 | ||||
-rw-r--r-- | gdb/testsuite/gdb.cp/overload.exp | 69 | ||||
-rw-r--r-- | gdb/testsuite/gdb.python/py-framefilter.exp | 22 | ||||
-rw-r--r-- | gdb/testsuite/gdb.reverse/sigall-precsave.exp | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.server/bkpt-other-inferior.exp | 30 | ||||
-rw-r--r-- | gdb/testsuite/gdb.server/ext-run.exp | 4 |
7 files changed, 80 insertions, 88 deletions
diff --git a/gdb/testsuite/gdb.base/premature-dummy-frame-removal.exp b/gdb/testsuite/gdb.base/premature-dummy-frame-removal.exp index 19e28bb..c813fbe 100644 --- a/gdb/testsuite/gdb.base/premature-dummy-frame-removal.exp +++ b/gdb/testsuite/gdb.base/premature-dummy-frame-removal.exp @@ -80,12 +80,10 @@ gdb_test_multiple "p some_func ()" "" { # debug, to format of which isn't fixed. All we care about is that # GDB is still running afterwards. # -# All of the debug output makes this really slow when testing with the -# special read1 version of expect, hence the timeout factor. -with_read1_timeout_factor 10 { - gdb_test_no_output "set debug frame on" - gdb_test "p some_func ()" ".*" \ - "repeat p some_func () with frame debug on" - gdb_test_no_output "set debug frame off" -} +gdb_test_no_output "set debug frame on" +gdb_test_lines "p some_func ()" \ + "repeat p some_func () with frame debug on" \ + ".*" +gdb_test_no_output "set debug frame off" + gdb_test "p 1 + 2 + 3" " = 6" diff --git a/gdb/testsuite/gdb.btrace/exception.exp b/gdb/testsuite/gdb.btrace/exception.exp index 61cc6c9..6ffdd2b 100755 --- a/gdb/testsuite/gdb.btrace/exception.exp +++ b/gdb/testsuite/gdb.btrace/exception.exp @@ -64,17 +64,14 @@ gdb_expect_list "flat" "\r\n$gdb_prompt $" [list \ ] # show the branch trace with calls indented -send_gdb "record function-call-history /c 1\n" -gdb_expect_list "indented" "\r\n$gdb_prompt $" [list \ - [multi_line \ - "1\tmain\\(\\)" \ - "2\t test\\(\\)" \ - "3\t foo\\(\\)" \ - "4\t bar\\(\\)" \ - "5\t bad\\(\\)\r" \ - ] "" \ - [multi_line \ - "\[0-9\]*\t test\\(\\)" \ - "\[0-9\]*\tmain\\(\\)" \ - ] "" \ - ] +gdb_test_lines "record function-call-history /c 1" \ + "indented" \ + [multi_line \ + "1\tmain\\(\\)" \ + "2\t test\\(\\)" \ + "3\t foo\\(\\)" \ + "4\t bar\\(\\)" \ + "5\t bad\\(\\)" \ + ".*" \ + "$decimal\t test\\(\\)" \ + "$decimal\tmain\\(\\)"] diff --git a/gdb/testsuite/gdb.cp/overload.exp b/gdb/testsuite/gdb.cp/overload.exp index ef26ae5..da9deef 100644 --- a/gdb/testsuite/gdb.cp/overload.exp +++ b/gdb/testsuite/gdb.cp/overload.exp @@ -89,42 +89,39 @@ set re_synth "foo & operator=\\(foo const ?&\\);" gdb_test "print foo_instance1" "\\$\[0-9\]+ = \{ifoo = 111, ccpfoo = 0x0\}" -gdb_test_multiple "ptype foo_instance1" "ptype foo_instance1" { - -re "type = $re_class${ws}$XX_fields${ws}$re_synth${ws}$re_dtor${ws}$re_ctor${ws}$re_methods$nl\}$nl$gdb_prompt $" { - # gcc 2.95.3 -gstabs+, no "const" on "const char *" - # TODO: gdb.base/constvar.exp has XFAILed this kind of problem for a - # long time, but an XFAIL really needs an external bug report. - # -- chastain 2003-12-31 - # setup_xfail "*-*-*" - # fail "ptype foo_instance1" - # TODO: this should be a KFAIL. - pass "ptype foo_instance1 (shorter match)" - } - -re "type = $re_class${ws}$re_fields${ws}$re_synth${ws}$re_dtor${ws}$re_ctor${ws}$re_methods$nl\}$nl$gdb_prompt $" { - # gcc 2.95.3 -gstabs+ if "const char *" ever gets fixed - pass "ptype foo_instance1" - } - -re "type = $re_class${ws}$re_fields${ws}$re_ctor${ws}$XX_dtor${ws}$re_methods$nl\}$nl$gdb_prompt $" { - # gcc 3.3.2 -gdwarf-2, "~foo(int)" - # TODO: kfail this - # kfail "gdb/1113" "ptype foo_instance1" - pass "ptype foo_instance1 (shorter match)" - } - -re "type = $re_class${ws}$re_fields${ws}$re_ctor${ws}$re_dtor${ws}$re_methods$nl\}$nl$gdb_prompt $" { - # gcc 3.3.2 -gdwarf-2, if the dtor bug gets fixed - # gcc HEAD -gdwarf-2 (abi-2) - # TODO: just pass this - pass "ptype foo_instance1 (shorter match)" - } - -re "type = $re_class${ws}$re_fields${ws}$re_synth${ws}$re_ctor${ws}$re_dtor${ws}$re_methods$nl\}$nl$gdb_prompt $" { - # gcc 3.3.2 -gstabs+ - # TODO: enough with the "shorter match" - pass "ptype foo_instance1 (shorter match)" - } - -re "type = $re_class${ws}$re_fields${ws}$re_ctor${ws}$re_dtor${ws}$re_methods${ws}$re_synth$nl\}$nl$gdb_prompt $" { - # gcc HEAD -gstabs+ (abi-2) - pass "ptype foo_instance1 (shorter match)" - } +set lines [gdb_get_lines "ptype foo_instance1"] +set test "ptype foo_instance1 output" +if { [regexp "^type = $re_class${ws}$XX_fields${ws}$re_synth${ws}$re_dtor${ws}$re_ctor${ws}$re_methods$nl\}\r\n$" $lines] } { + # gcc 2.95.3 -gstabs+, no "const" on "const char *" + # TODO: gdb.base/constvar.exp has XFAILed this kind of problem for a + # long time, but an XFAIL really needs an external bug report. + # -- chastain 2003-12-31 + # setup_xfail "*-*-*" + # fail "ptype foo_instance1" + # TODO: this should be a KFAIL. + pass "$test (shorter match)" +} elseif { [regexp "^type = $re_class${ws}$re_fields${ws}$re_synth${ws}$re_dtor${ws}$re_ctor${ws}$re_methods$nl\}\r\n$" $lines] } { + # gcc 2.95.3 -gstabs+ if "const char *" ever gets fixed + pass "$test" +} elseif { [regexp "^type = $re_class${ws}$re_fields${ws}$re_ctor${ws}$XX_dtor${ws}$re_methods$nl\}\r\n$" $lines] } { + # gcc 3.3.2 -gdwarf-2, "~foo(int)" + # TODO: kfail this + # kfail "gdb/1113" "ptype foo_instance1" + pass "$test (shorter match)" +} elseif { [regexp "^type = $re_class${ws}$re_fields${ws}$re_ctor${ws}$re_dtor${ws}$re_methods$nl\}\r\n$" $lines] } { + # gcc 3.3.2 -gdwarf-2, if the dtor bug gets fixed + # gcc HEAD -gdwarf-2 (abi-2) + # TODO: just pass this + pass "$test (shorter match)" +} elseif { [regexp "^type = $re_class${ws}$re_fields${ws}$re_synth${ws}$re_ctor${ws}$re_dtor${ws}$re_methods$nl\}\r\n$" $lines] } { + # gcc 3.3.2 -gstabs+ + # TODO: enough with the "shorter match" + pass "$test (shorter match)" +} elseif { [regexp "^type = $re_class${ws}$re_fields${ws}$re_ctor${ws}$re_dtor${ws}$re_methods${ws}$re_synth$nl\}\r\n$" $lines] } { + # gcc HEAD -gstabs+ (abi-2) + pass "$test (shorter match)" +} else { + fail $test } # Print variables and method calls. diff --git a/gdb/testsuite/gdb.python/py-framefilter.exp b/gdb/testsuite/gdb.python/py-framefilter.exp index 374d352..3a325bd 100644 --- a/gdb/testsuite/gdb.python/py-framefilter.exp +++ b/gdb/testsuite/gdb.python/py-framefilter.exp @@ -82,11 +82,10 @@ gdb_breakpoint [gdb_get_line_number "Inner test breakpoint"] gdb_continue_to_breakpoint "Inner test breakpoint" # Test multiple local blocks. -gdb_test "bt full no-filters" \ +gdb_test_lines "bt full no-filters" "" \ ".*#0.*end_func.*h = 9.*f = 42.*g = 19.*bar = $hex \"Inside block x2\".*d = 15.*e = 14.*foo = $hex \"Inside block\".*str = $hex \"The End\".*st2 = $hex \"Is Near\".*b = 12.*c = 5.*" -gdb_test "bt full" \ - ".*#0.*cnuf_dne.*h = 9.*f = 42.*g = 19.*bar = $hex \"Inside block x2\".*d = 15.*e = 14.*foo = $hex \"Inside block\".*str = $hex \"The End\".*st2 = $hex \"Is Near\".*b = 12.*c = 5.*" \ - "bt full with filters" +gdb_test_lines "bt full" "bt full with filters" \ + ".*#0.*cnuf_dne.*h = 9.*f = 42.*g = 19.*bar = $hex \"Inside block x2\".*d = 15.*e = 14.*foo = $hex \"Inside block\".*str = $hex \"The End\".*st2 = $hex \"Is Near\".*b = 12.*c = 5.*" # Test pagination can be aborted even for frame filters. gdb_test_no_output "set height 5" "pagination quit - set height limited" @@ -161,15 +160,12 @@ gdb_test "bt -2" \ gdb_test "bt 3" \ ".*#0.*end_func.*#1.*in funca \\(\\).*#2.*in funcb \\(j=10\\)\[^#\]*More stack frames follow.*" \ "bt 3 with frame-filter Reverse disabled" -gdb_test "bt no-filter full" \ - ".*#0.*end_func.*str = $hex \"The End\".*st2 = $hex \"Is Near\".*b = 12.*c = 5.*#1.*in funca \\(\\).*#2.*in funcb \\(j=10\\).*bar = \{a = 42, b = 84\}.*" \ - "bt no-filters full with Reverse disabled" -gdb_test "bt full" \ - ".*#0.*end_func.*str = $hex \"The End\".*st2 = $hex \"Is Near\".*b = 12.*c = 5.*#1.*in funca \\(\\).*#2.*in funcb \\(j=10\\).*bar = \{a = 42, b = 84\}.*#22.*in func1 \\(\\).*#23.*in func2 \\(f=3\\).*elided = $hex \"Elided frame\".*fb = \{nothing = $hex \"Elided Foo Bar\", f = 84, s = 38\}.*bf = $hex.*" \ - "bt full with Reverse disabled" -gdb_test "bt full hide" \ - ".*#0.*end_func.*str = $hex \"The End\".*st2 = $hex \"Is Near\".*b = 12.*c = 5.*#1.*in funca \\(\\).*#2.*in funcb \\(j=10\\).*bar = \{a = 42, b = 84\}.*#22.*in func1 \\(\\)\[^#\]*#24.*in func3 \\(i=3\\).*" \ - "bt full hide with Reverse disabled" +gdb_test_lines "bt no-filter full" "bt no-filters full with Reverse disabled" \ + ".*#0.*end_func.*str = $hex \"The End\".*st2 = $hex \"Is Near\".*b = 12.*c = 5.*#1.*in funca \\(\\).*#2.*in funcb \\(j=10\\).*bar = \{a = 42, b = 84\}.*" +gdb_test_lines "bt full" "bt full with Reverse disabled" \ + ".*#0.*end_func.*str = $hex \"The End\".*st2 = $hex \"Is Near\".*b = 12.*c = 5.*#1.*in funca \\(\\).*#2.*in funcb \\(j=10\\).*bar = \{a = 42, b = 84\}.*#22.*in func1 \\(\\).*#23.*in func2 \\(f=3\\).*elided = $hex \"Elided frame\".*fb = \{nothing = $hex \"Elided Foo Bar\", f = 84, s = 38\}.*bf = $hex.*" +gdb_test_lines "bt full hide" "bt full hide with Reverse disabled" \ + ".*#0.*end_func.*str = $hex \"The End\".*st2 = $hex \"Is Near\".*b = 12.*c = 5.*#1.*in funca \\(\\).*#2.*in funcb \\(j=10\\).*bar = \{a = 42, b = 84\}.*#22.*in func1 \\(\\)\[^#\]*#24.*in func3 \\(i=3\\).*" # Re-enable Reverse gdb_test_no_output "enable frame-filter global Reverse" \ diff --git a/gdb/testsuite/gdb.reverse/sigall-precsave.exp b/gdb/testsuite/gdb.reverse/sigall-precsave.exp index aab4551..902772a 100644 --- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp +++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp @@ -155,7 +155,7 @@ gdb_test "break $breakloc" \ "breakpoint at end of main" # Signal handlers must be disabled -gdb_test "handle all nostop noprint" +gdb_test_lines "handle all nostop noprint" "" "" # The list of signals that the program generates, in the order they # are generated. @@ -276,7 +276,7 @@ gdb_test "record restore $precsave" \ "reload precord save file" # Signal handlers must be re-enabled -gdb_test "handle all stop print" +gdb_test_lines "handle all stop print" "" "" # Make the first signal SIGABRT because it is always supported. set sig_supported 1 diff --git a/gdb/testsuite/gdb.server/bkpt-other-inferior.exp b/gdb/testsuite/gdb.server/bkpt-other-inferior.exp index 78d1ae02..46c07d1 100644 --- a/gdb/testsuite/gdb.server/bkpt-other-inferior.exp +++ b/gdb/testsuite/gdb.server/bkpt-other-inferior.exp @@ -77,19 +77,23 @@ foreach inf_sel {1 2} { gdb_test_no_output "set debug remote 1" - gdb_test_multiple "break -q main" "set breakpoint" { - -re "Sending packet: \\\$qXfer:auxv:read.*$gdb_prompt $" { - # Symbol lookup may access the target to read AUXV in - # order to determine the debug base for SVR4 linker - # namespaces. - xfail "$gdb_test_name" - } - -re "Sending packet.*$gdb_prompt $" { - fail "$gdb_test_name" - } - -re "^break -q main\r\nBreakpoint .* at .*$gdb_prompt $" { - pass "$gdb_test_name" - } + set lines [gdb_get_lines "break -q main"] + + set test "set breakpoint" + set re_xfail \ + [string_to_regexp {Sending packet: $qXfer:auxv:read}] + if { [regexp $re_xfail $lines] } { + # Symbol lookup may access the target to read AUXV in + # order to determine the debug base for SVR4 linker + # namespaces. + xfail $test + } elseif { [regexp "Sending packet:" $lines] } { + fail $test + } else { + set re \ + "Breakpoint $decimal at $hex: \[^\r\n\]+" + set re "^$re\r\n$" + gdb_assert { [regexp $re $lines] } $test } gdb_test_no_output "set debug remote 0" diff --git a/gdb/testsuite/gdb.server/ext-run.exp b/gdb/testsuite/gdb.server/ext-run.exp index 6f7b5bd..296af98 100644 --- a/gdb/testsuite/gdb.server/ext-run.exp +++ b/gdb/testsuite/gdb.server/ext-run.exp @@ -58,8 +58,8 @@ if { [istarget *-*-linux*] } { if { $do_xml_test } { # This is done in a way to avoid the timeout that can occur from # applying .* regexp to large output. - gdb_test_sequence "info os processes" "get process list" \ - { "pid +user +command" "1 +root +\[/a-z\]*(init|systemd|bash)" } + gdb_test_lines "info os processes" "get process list" \ + "^pid +user +command.*\r\n1 +root +\[/a-z\]*(init|systemd|bash)" } } |