I was running the automake-1.12 test suite, and found a difference in
behavior between the two cygwin's. On 32bit, it appears to miss the
SIGQUIT signal:
========== 32 bit ==========
PASS: t/tap-signal.tap 1 - "make check" fails
FAIL: t/tap-signal.tap 2 - count of test results
PASS: t/tap-signal.tap 3 - TAP driver catch test termination by signal
SIGHUP
PASS: t/tap-signal.tap 4 - TAP driver catch test termination by signal
SIGINT
FAIL: t/tap-signal.tap 5 - TAP driver catch test termination by signal
SIGQUIT
PASS: t/tap-signal.tap 6 - TAP driver catch test termination by signal
SIGKILL
PASS: t/tap-signal.tap 7 - TAP driver catch test termination by signal
SIGPIPE
PASS: t/tap-signal.tap 8 - TAP driver catch test termination by signal
SIGTERM
PASS: t/tap-signal.tap 9 - "make check" passes [--ignore-exit]
PASS: t/tap-signal.tap 10 - count of test results [--ignore-exit]
(the first FAIL is a dup of the second one).
========== 64 bit ==========
PASS: t/tap-signal.tap 1 - "make check" fails
PASS: t/tap-signal.tap 2 - count of test results
PASS: t/tap-signal.tap 3 - TAP driver catch test termination by signal
SIGHUP
PASS: t/tap-signal.tap 4 - TAP driver catch test termination by signal
SIGINT
PASS: t/tap-signal.tap 5 - TAP driver catch test termination by signal
SIGQUIT
PASS: t/tap-signal.tap 6 - TAP driver catch test termination by signal
SIGKILL
PASS: t/tap-signal.tap 7 - TAP driver catch test termination by signal
SIGPIPE
PASS: t/tap-signal.tap 8 - TAP driver catch test termination by signal
SIGTERM
PASS: t/tap-signal.tap 9 - "make check" passes [--ignore-exit]
PASS: t/tap-signal.tap 10 - count of test results [--ignore-exit]
Here's the detailed log of the SIGQUIT failure:
+ for sig in '$all_signals'
+ signal_caught 3
+ numeric=3
+ case $numeric in
+ symbolic=QUIT
+ case $numeric,$system in
+ sig_re='((SIG)?QUIT|3)'
+ wbound_re='($|[^a-zA-Z0-9_-])'
+ pfx_re='^ERROR: signal-3\.test'
+ case $am_tap_implementation in
+ rx='^ERROR: signal-3\.test .*terminated by signal
((SIG)?QUIT|3)($|[^a-zA-Z0-9_-])'
+ desc='TAP driver catch test termination by signal SIGQUIT'
+ case " $blocked_signals " in
+ command_ok_ 'TAP driver catch test termination by signal SIGQUIT' env
LC_ALL=C /usr/bin/grep -E '^ERROR: signal-3\.test .*terminated by signal
((SIG)?QUIT|3)($|[^a-zA-Z0-9_-])' stdout
+ tap_directive_=
+ tap_reason_=
+ test 7 -gt 0
+ tap_description_='TAP driver catch test termination by signal SIGQUIT'
+ shift
+ test 6 -gt 0
+ case $1 in
+ break
+ tap_result_=ok
+ env LC_ALL=C /usr/bin/grep -E '^ERROR: signal-3\.test .*terminated by
signal ((SIG)?QUIT|3)($|[^a-zA-Z0-9_-])' stdout
+ tap_result_='not ok'
+ result_ 'not ok' -D '' -r '' -- 'TAP driver catch test termination by
signal SIGQUIT'
+ set +x
not ok 5 - TAP driver catch test termination by signal SIGQUIT
FAIL: t/tap-signal.tap 5 - TAP driver catch test termination by signal
SIGQUIT
.... which doesn't really tell you much without the rest of the test
driver machinery, but I include it for completeness.
The point of this post is the following question: is there a known
difference in the signal handling code between cygwin32 and cygwin64
that could explain why I see different behavior with respect to SIGQUIT?
--
Chuck
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple