# This suite builds and uses a program raising a segfault, ie a program dying
# of SIGSEV. tesh must detect this condition and report the issue.
-$ rm -rf temp_testdir
-$ mkdir temp_testdir
+$ cmake -E remove_directory temp_testdir-catch-signal
+$ mkdir temp_testdir-catch-signal
-$ cd temp_testdir
-< #include <stdlib.h>
-< int main(void) {
-< char *A=NULL;
-< *A = 1;
-< }
-$ cat > segfault.c
+$ cd temp_testdir-catch-signal
+< kill 'SEGV', $$;
+$ mkfile segfault.pl
-$ gcc -o segfault segfault.c
+p Check that we notice when SEGV is raised
+! expect signal SIGSEGV
+$ perl segfault.pl
+p Check that we return the expected return value on SEGV
! expect return 15
-< $ ./segfault
-$ ../tesh --log='log.thresh:info tesh.fmt:%m%n'
+< $ perl segfault.pl
+$ perl ${bindir:=.}/tesh
> Test suite from stdin
-> [stdin:1] ./segfault
-> Test suite `(stdin)': NOK (<stdin:1> got signal SIGSEGV)
-> Output of <stdin:1> so far:
-> ||
+> [(stdin):1] perl segfault.pl
+> Test suite `(stdin)': NOK (<(stdin):1> got signal SIGSEGV)
+> <(stdin):1> No output so far.
$ cd ..
-$ rm -rf temp_testdir
+$ cmake -E remove_directory temp_testdir-catch-signal