[gdb/testsuite] Fix gdb.opt/solib-intra-step.exp with -m32 and gcc-10
authorTom de Vries <tdevries@suse.de>
Fri, 29 Jan 2021 04:12:46 +0000 (05:12 +0100)
committerTom de Vries <tdevries@suse.de>
Fri, 29 Jan 2021 04:12:46 +0000 (05:12 +0100)
When running test-case gdb.opt/solib-intra-step.exp with target board
unix/-m32 and gcc-10, I run into:
...
(gdb) step^M
__x86.get_pc_thunk.bx () at ../sysdeps/i386/crti.S:68^M
68      ../sysdeps/i386/crti.S: No such file or directory.^M
(gdb) step^M
shlib_second (dummy=0) at solib-intra-step-lib.c:23^M
23        abort (); /* second-hit */^M
(gdb) FAIL: gdb.opt/solib-intra-step.exp: second-hit
...

The problem is that the test-case expects to step past the retry line,
which is optional.

Fix this by removing the state tracking logic from the gdb_test_multiples.  It
makes the test more difficult to understand, and doesn't specifically test for
faulty gdb behaviour.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2021-01-29  Tom de Vries  <tdevries@suse.de>

* gdb.opt/solib-intra-step.exp: Remove state tracking logic.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.opt/solib-intra-step.exp

index 73bbd00ea7cc54243df8daaeb6dd1dba7e918c7a..842f9a5d7b72f6cae7e68e0632114962601deff2 100644 (file)
@@ -1,3 +1,7 @@
+2021-01-29  Tom de Vries  <tdevries@suse.de>
+
+       * gdb.opt/solib-intra-step.exp: Remove state tracking logic.
+
 2021-01-28  Tom de Vries  <tdevries@suse.de>
 
        * gdb.arch/i386-gnu-cfi.exp: Capture the position of function gate
index ad19895d89021780955ab77b4ccf0609e0abac48..527b58cd4413ddb7668c3743a72107e7c6c774a3 100644 (file)
@@ -48,52 +48,30 @@ if ![runto_main] then {
 }
 
 set test "first-hit"
-set state 0
 gdb_test_multiple "step" $test {
     -re -wrap " first-hit .*" {
-       gdb_assert { $state != -1 } $test
+       pass $gdb_test_name
     }
     -re -wrap " first-retry .*" {
-       if  { $state != 0 } {
-           set state -1
-       } else {
-           set state 1
-       }
        send_gdb "step\n"
        exp_continue
     }
     -re -wrap "get_pc_thunk.*" {
-       if  { $state != 1 } {
-           set state -1
-       } else {
-           set state 2
-       }
        send_gdb "step\n"
        exp_continue
     }
 }
 
 set test "second-hit"
-set state 0
 gdb_test_multiple "step" $test {
     -re -wrap " second-hit .*" {
-       gdb_assert { $state != -1 } $test
+       pass $gdb_test_name
     }
     -re -wrap " second-retry .*" {
-       if { $state != 0 } {
-           set state -1
-       } else {
-           set state 1
-       }
        send_gdb "step\n"
        exp_continue
     }
     -re -wrap "get_pc_thunk.*" {
-       if  { $state != 1 } {
-           set state -1
-       } else {
-           set state 2
-       }
        send_gdb "step\n"
        exp_continue
     }