]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Skip gdb.base/libsegfault.exp on Cygwin
authorPedro Alves <pedro@palves.net>
Fri, 23 Jun 2023 19:23:20 +0000 (20:23 +0100)
committerPedro Alves <pedro@palves.net>
Mon, 9 Jun 2025 17:09:20 +0000 (18:09 +0100)
Running gdb.base/libsegfault.exp on Cygwin, in parallel mode causes
badness:

 $ make check-parallel TESTS="gdb.base/libsegfault.exp"
 ...
 Running /home/alves/gdb/src/gdb/testsuite/gdb.base/libsegfault.exp ...
       0 [main] expect 6611 C:\cygwin64\bin\expect.exe: *** fatal error in forked process - error while loading shared libraries: libSegFault.so: cannot open shared object file: No such file or directory
*** starting '"C:\cygwin64\bin\dumper.exe" -n "C:\cygwin64\bin\expect.exe" 8012' for pid 6611, tid 7992
 *** continuing pid 6611
 parent: sync byte write: broken pipe
 make[1]: *** [Makefile:320: check/gdb.base/libsegfault.exp] Error 255
 make[1]: Target 'do-check-parallel' not remade because of errors.
 make[1]: Leaving directory '/home/alves/gdb/build-cygwin-testsuite'
 outputs/gdb.base/libsegfault/gdb.sum: no recognised summary line
 outputs/gdb.base/libsegfault/gdb.log: no recognised summary line
 make: *** [Makefile:260: check-parallel] Error 2
 $

I.e., Expect's spawn fails, and that brings down the whole Expect
process, for some reason.  The result is that we end up with
incomplete gdb.sum/gdb.log files, which dg-extract-results.sh can't
process.  Since libSegFault.so is a glibc feature that doesn't exist
on Cygwin, just skip the test there.

Change-Id: I44bdbffa25a5d21c5019418b68776d334a57be26

gdb/testsuite/gdb.base/libsegfault.exp

index eab12ff57e12dfcb6a1fd21ce7c450a50f9552ad..808ab046bc5462045e229c4b456887d12cfc7ae2 100644 (file)
 # the local machine.
 require {!is_remote host}
 
+# On Cygwin, the testcase would somehow end up trying to preload
+# libSegFault.so into the Expect process, which would fail and crash
+# it.  Since libSegFault.so is a glibc feature that doesn't exist on
+# Cygwin, just skip testing there.
+require {!expr {[isbuild "*-*-cygwin*"] && [ishost "*-*-cygwin*"]}}
+
 # Spawn GDB with LIB preloaded with LD_PRELOAD.  CMDLINE_OPTS are
 # command line options passed to GDB.