annotate tests/test-c-stack2.sh @ 40221:8c1a17df67e0

tests: Prepare for using valgrind. tests/*.sh: Invoke all test programs through ${CHECKER}. tests/*/*.sh: Likewise.
author Bruno Haible <bruno@clisp.org>
date Sun, 10 Mar 2019 11:32:11 +0100
parents 03e2cd1cbbe8
children
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.
40221
8c1a17df67e0 tests: Prepare for using valgrind.
Bruno Haible <bruno@clisp.org>
parents: 15338
diff changeset
10 (${CHECKER} ./test-c-stack${EXEEXT} 1; exit $?) 2> t-c-stack2.tmp
10275
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
15338
03e2cd1cbbe8 maint: indent with spaces, not TABs, and add a rule to check this
Jim Meyering <meyering@redhat.com>
parents: 10280
diff changeset
14 if test -z "$LIBSIGSEGV"; then
03e2cd1cbbe8 maint: indent with spaces, not TABs, and add a rule to check this
Jim Meyering <meyering@redhat.com>
parents: 10280
diff changeset
15 echo 'cannot tell stack overflow from crash; consider installing libsigsegv' >&2
03e2cd1cbbe8 maint: indent with spaces, not TABs, and add a rule to check this
Jim Meyering <meyering@redhat.com>
parents: 10280
diff changeset
16 exit 77
03e2cd1cbbe8 maint: indent with spaces, not TABs, and add a rule to check this
Jim Meyering <meyering@redhat.com>
parents: 10280
diff changeset
17 else
03e2cd1cbbe8 maint: indent with spaces, not TABs, and add a rule to check this
Jim Meyering <meyering@redhat.com>
parents: 10280
diff changeset
18 echo 'cannot tell stack overflow from crash, in spite of libsigsegv' >&2
03e2cd1cbbe8 maint: indent with spaces, not TABs, and add a rule to check this
Jim Meyering <meyering@redhat.com>
parents: 10280
diff changeset
19 exit 1
03e2cd1cbbe8 maint: indent with spaces, not TABs, and add a rule to check this
Jim Meyering <meyering@redhat.com>
parents: 10280
diff changeset
20 fi
10275
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
21 else
15338
03e2cd1cbbe8 maint: indent with spaces, not TABs, and add a rule to check this
Jim Meyering <meyering@redhat.com>
parents: 10280
diff changeset
22 cat t-c-stack2.tmp >&2
03e2cd1cbbe8 maint: indent with spaces, not TABs, and add a rule to check this
Jim Meyering <meyering@redhat.com>
parents: 10280
diff changeset
23 exit 77
10275
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
24 fi
10280
e99e36699b9a Test must fail if libsigsegv could not distinguish stack overflow and crash.
Bruno Haible <bruno@clisp.org>
parents: 10276
diff changeset
25 ;;
10275
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
26 0) (exit 1); exit 1 ;;
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
27 esac
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
28 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
29 :
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
30 else
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
31 (exit 1); exit 1
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
32 fi
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
33
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
34 rm -fr $tmpfiles
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
35
4c08c1b6678e c-stack: Expose false positives when not using libsigsegv.
Eric Blake <ebb9@byu.net>
parents:
diff changeset
36 exit 0