gdb/testsuite: fix failure in gdb.base/step-over-no-symbols.exp
authorSimon Marchi <simon.marchi@polymtl.ca>
Mon, 2 Nov 2020 21:35:47 +0000 (16:35 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Mon, 2 Nov 2020 21:35:47 +0000 (16:35 -0500)
This test fails on my machine:

    p /x $pc^M
    $2 = 0x55555555514e^M
    (gdb) PASS: gdb.base/step-over-no-symbols.exp: displaced=off: get after PC
    FAIL: gdb.base/step-over-no-symbols.exp: displaced=off: advanced

This is due to the check added in 5f0e2eb79e6b ("GDB/testsuite: Fix a
catastrophic step-over-no-symbols.exp failure"), that makes sure the PC
values are integer.  As documented in the TCL doc [1], "string is
integer" returns 1 if the string is a valid 32-bit integer format.  The
PC values are greater than 32 bits, so are not recognized as integers by
that test.

    % string is integer -strict 0x55555555
    1
    % string is integer -strict 0x555555555
    0

Replace the "string is integer" test with a regexp one, that verifies
the PC is a hex value.

[1] https://www.tcl.tk/man/tcl/TclCmd/string.htm#M21

gdb/testsuite/ChangeLog:

* gdb.base/step-over-no-symbols.exp (test_step_over): Replace
integer format test with regexp.

Change-Id: I71f8197e7b52e97b4901980544a8d1072aabd362

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/step-over-no-symbols.exp

index 69483785ca2a9b05ff221ab0af9b9465e59a9ba6..d0c712d4fd87201550d4063ee7a8039eba008960 100644 (file)
@@ -1,3 +1,8 @@
+2020-11-02  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * gdb.base/step-over-no-symbols.exp (test_step_over): Replace
+       integer format test with regexp.
+
 2020-11-02  Gary Benson <gbenson@redhat.com>
 
        * gdb.base/print-file-var.exp (test): Separate compiler and
index bc715d7afed15926526374905daaf81973cc8191..a2201dcaebebc519a6ccbf217fc5408cd45415bb 100644 (file)
@@ -78,8 +78,8 @@ proc test_step_over { displaced } {
 
     set after_addr [get_pc "get after PC"]
 
-    gdb_assert {{[string is integer -strict $before_addr] \
-                && [string is integer -strict $after_addr] \
+    gdb_assert {{[regexp "^${hex}$" $before_addr] \
+                && [regexp "^${hex}$" $after_addr] \
                 && $before_addr != $after_addr}} "advanced"
 }