annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10275
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
1 #!/bin/sh
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
2
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
3 tmpfiles=""
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
4 trap 'rm -fr $tmpfiles' 1 2 3 15
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
5
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
6 tmpfiles="t-c-stack2.tmp"
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
7
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
8 # Sanitize exit status within a subshell, since some shells fail to
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
9 # redirect stderr on their message about death due to signal.
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
10 (./test-c-stack${EXEEXT} 1; exit $?) 2> t-c-stack2.tmp
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
11
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
12 case $? in
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
13 77) if grep 'stack overflow' t-c-stack2.tmp >/dev/null ; then
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
14 echo 'cannot distinguish stack overflow from crash' >&2
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
15 else
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
16 cat t-c-stack2.tmp >&2
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
17 fi
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
18 (exit 77); exit 77 ;;
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
19 0) (exit 1); exit 1 ;;
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
20 esac
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
21 if grep 'program error' t-c-stack2.tmp >/dev/null ; then
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
22 :
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
23 else
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
24 (exit 1); exit 1
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
25 fi
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
26
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
27 rm -fr $tmpfiles
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
28
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
29 exit 0