Eric Blake wrote: > this is what exposed the libsigsegv on OpenBSD 4.0 Currently the test-c-stack2.sh gets a SKIP with a confusing error message: it says "consider installing libsigsegv" although libsigsegv is already being used. You noticed that it's a bug in libsigsegv; normal testers may overlook it. I propose to turn it into a FAIL:
cannot tell stack overflow from crash, despite of libsigsegv FAIL: test-c-stack2.sh OK to apply? (Note: One needs the '(exit 77); exit 77' idiom only when a trap handler is installed which refers to $?. In most gnulib tests it is not needed.) 2008-07-20 Bruno Haible <[EMAIL PROTECTED]> * modules/c-stack-tests (Makefile.am): Add LIBSIGSEGV to TESTS_ENVIRONMENT. * tests/test-c-stack2.sh: React differently if LIBSIGSEGV is in use. *** modules/c-stack-tests.orig 2008-07-20 19:18:47.000000000 +0200 --- modules/c-stack-tests 2008-07-20 19:05:27.000000000 +0200 *************** *** 10,16 **** Makefile.am: TESTS += test-c-stack.sh test-c-stack2.sh ! TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' check_PROGRAMS += test-c-stack test_c_stack_LDADD = $(LDADD) $(LIBCSTACK) @LIBINTL@ MOSTLYCLEANFILES += t-c-stack.tmp t-c-stack2.tmp --- 10,16 ---- Makefile.am: TESTS += test-c-stack.sh test-c-stack2.sh ! TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' LIBSIGSEGV='@LIBSIGSEGV@' check_PROGRAMS += test-c-stack test_c_stack_LDADD = $(LDADD) $(LIBCSTACK) @LIBINTL@ MOSTLYCLEANFILES += t-c-stack.tmp t-c-stack2.tmp *** tests/test-c-stack2.sh.orig 2008-07-20 19:18:47.000000000 +0200 --- tests/test-c-stack2.sh 2008-07-20 19:08:27.000000000 +0200 *************** *** 11,21 **** case $? in 77) if grep 'stack overflow' t-c-stack2.tmp >/dev/null ; then ! echo 'cannot tell stack overflow from crash; consider installing libsigsegv' >&2 else ! cat t-c-stack2.tmp >&2 fi ! (exit 77); exit 77 ;; 0) (exit 1); exit 1 ;; esac if grep 'program error' t-c-stack2.tmp >/dev/null ; then --- 11,28 ---- case $? in 77) if grep 'stack overflow' t-c-stack2.tmp >/dev/null ; then ! if test -z "$LIBSIGSEGV"; then ! echo 'cannot tell stack overflow from crash; consider installing libsigsegv' >&2 ! exit 77 ! else ! echo 'cannot tell stack overflow from crash, despite of libsigsegv' >&2 ! exit 1 ! fi else ! cat t-c-stack2.tmp >&2 ! exit 77 fi ! ;; 0) (exit 1); exit 1 ;; esac if grep 'program error' t-c-stack2.tmp >/dev/null ; then