From: Pedro Alves Date: Fri, 23 Jun 2023 19:23:20 +0000 (+0100) Subject: Skip gdb.base/libsegfault.exp on Cygwin X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4423baa2a3699f5f3901b22a9831e4d106044ba1;p=thirdparty%2Fbinutils-gdb.git Skip gdb.base/libsegfault.exp on Cygwin 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 --- diff --git a/gdb/testsuite/gdb.base/libsegfault.exp b/gdb/testsuite/gdb.base/libsegfault.exp index eab12ff57e1..808ab046bc5 100644 --- a/gdb/testsuite/gdb.base/libsegfault.exp +++ b/gdb/testsuite/gdb.base/libsegfault.exp @@ -24,6 +24,12 @@ # 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.