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