diff options
author | Junfeng Dong <junfeng.dong@intel.com> | 2012-06-05 17:27:50 +0800 |
---|---|---|
committer | Junfeng Dong <junfeng.dong@intel.com> | 2012-06-05 17:27:50 +0800 |
commit | b5e47a5b56f360f78f0e086ca4af3159dcb28e27 (patch) | |
tree | 7df6f7ef0ec82bdabd93c5bee5f1e2e78ba36582 /gnulib-tests/test-c-stack2.sh | |
parent | 94865d2997df82fb40f0092682e090614dd98b7f (diff) | |
download | diffutils-master.tar.gz diffutils-master.tar.bz2 diffutils-master.zip |
Diffstat (limited to 'gnulib-tests/test-c-stack2.sh')
-rwxr-xr-x | gnulib-tests/test-c-stack2.sh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gnulib-tests/test-c-stack2.sh b/gnulib-tests/test-c-stack2.sh new file mode 100755 index 0000000..a80373d --- /dev/null +++ b/gnulib-tests/test-c-stack2.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="t-c-stack2.tmp" + +# Sanitize exit status within a subshell, since some shells fail to +# redirect stderr on their message about death due to signal. +(./test-c-stack${EXEEXT} 1; exit $?) 2> t-c-stack2.tmp + +case $? in + 77) if grep 'stack overflow' t-c-stack2.tmp >/dev/null ; then + if test -z "$LIBSIGSEGV"; then + echo 'cannot tell stack overflow from crash; consider installing libsigsegv' >&2 + exit 77 + else + echo 'cannot tell stack overflow from crash, in spite of libsigsegv' >&2 + exit 1 + fi + else + cat t-c-stack2.tmp >&2 + exit 77 + fi + ;; + 0) (exit 1); exit 1 ;; +esac +if grep 'program error' t-c-stack2.tmp >/dev/null ; then + : +else + (exit 1); exit 1 +fi + +rm -fr $tmpfiles + +exit 0 |