]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Adjust gdb.base/sigall.exp for Cygwin
authorPedro Alves <pedro@palves.net>
Mon, 26 Jun 2023 20:03:32 +0000 (21:03 +0100)
committerPedro Alves <pedro@palves.net>
Mon, 9 Jun 2025 16:45:16 +0000 (17:45 +0100)
The gdb.base/sigall.exp testcase has many FAILs on Cygwin currently.

From:

 Thread 1 "sigall" received signal SIGPWR, Power fail/restart.
 0x00007ffeac9ed134 in ntdll!ZwWaitForSingleObject () from /cygdrive/c/Windows/SYSTEM32/ntdll.dll
 (gdb) FAIL: gdb.base/sigall.exp: get signal LOST

we see two issues.  The test is expecting "Program received ..." which
only appears if the inferior is single-threaded.  All Cygwin inferiors
are multi-threaded, because both Windows and the Cygwin runtime spawn
a few helper threads.

And then, SIGLOST is the same as SIGPWR on Cygwin.  The testcase
already knows to treat them the same on SPARC64 GNU/Linux.  We just
need to extend the relevant code to treat Cygwin the same.

With this, the test passes cleanly on Cygwin.

Approved-By: Tom Tromey <tom@tromey.com>
Change-Id: Ie3553d043f4aeafafc011347b6cb61ed58501667

gdb/testsuite/gdb.base/sigall.exp

index b23e3c5951fa9d36f8d95ad6f3116ffc6c1d0711..461a92b57f2a09814fd8d86f2b18487dc1d85e65 100644 (file)
@@ -41,13 +41,14 @@ proc test_one_sig {nextsig} {
            setup_xfail "i*86-pc-linuxoldld-gnu" "i*86-pc-linuxaout-gnu"
        }
        # On Linux SPARC64 systems SIGLOST==SIGPWR and gdb identifies
-       # the raised signal as PWR.
-       if {$thissig == "LOST" && [istarget "sparc64-*-linux*"]} {
+       # the raised signal as PWR.  Same for Cygwin.
+       if {$thissig == "LOST"
+           && ([istarget "sparc64-*-linux*"] || [istarget "*-*-cygwin*"])} {
            set esig "PWR"
        }
 
        gdb_test "continue" \
-           "Continuing.*Program received signal SIG$esig.*" \
+           "Continuing.* received signal SIG$esig.*" \
                "get signal $esig"
     }
 
@@ -177,7 +178,7 @@ gdb_test "handle SIGTERM stop print" \
     "SIGTERM\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes.*"
 gdb_test "b handle_TERM" "Breakpoint \[0-9\]+ .*"
 gdb_test "continue" \
-    "Continuing.*Program received signal SIGTERM.*" \
+    "Continuing.* received signal SIGTERM.*" \
     "get signal TERM"
 gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"
 gdb_continue_to_end "continue to sigall exit"