Mercurial > gnulib
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 |
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 |