comparison tests/test-c-stack2.sh @ 10275:4c08c1b6678e

c-stack: Expose false positives when not using libsigsegv. * modules/c-stack-tests (Files): Expand test. * tests/test-c-stack.c (main): Add means to conditionally trigger non-overflow SIGSEGV. * tests/test-c-stack2.sh: New file. Signed-off-by: Eric Blake <ebb9@byu.net>
author Eric Blake <ebb9@byu.net>
date Wed, 16 Jul 2008 16:28:13 -0600
parents
children adfc5a204195
comparison
equal deleted inserted replaced
10274:d6a92bbabe6c 10275:4c08c1b6678e
1 #!/bin/sh
2
3 tmpfiles=""
4 trap 'rm -fr $tmpfiles' 1 2 3 15
5
6 tmpfiles="t-c-stack2.tmp"
7
8 # Sanitize exit status within a subshell, since some shells fail to
9 # redirect stderr on their message about death due to signal.
10 (./test-c-stack${EXEEXT} 1; exit $?) 2> t-c-stack2.tmp
11
12 case $? in
13 77) if grep 'stack overflow' t-c-stack2.tmp >/dev/null ; then
14 echo 'cannot distinguish stack overflow from crash' >&2
15 else
16 cat t-c-stack2.tmp >&2
17 fi
18 (exit 77); exit 77 ;;
19 0) (exit 1); exit 1 ;;
20 esac
21 if grep 'program error' t-c-stack2.tmp >/dev/null ; then
22 :
23 else
24 (exit 1); exit 1
25 fi
26
27 rm -fr $tmpfiles
28
29 exit 0