This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Cygwin 32bit vs 64bit difference: SIGQUIT


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]