Adjust gdb.base/sigall.exp for Cygwin

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
This commit is contained in:
Pedro Alves
2023-06-26 21:03:32 +01:00
parent d29534b21d
commit 9caecd5d33

View File

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