Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge pull request #259 from simgrid/configfix
[simgrid.git] / tools / tesh / catch-signal.tesh
index 0d718c6..2799b4f 100644 (file)
@@ -1,28 +1,30 @@
-#! ./tesh
+#!/usr/bin/env tesh
 # 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
+! output ignore
+$ cmake -E remove_directory temp_testdir-catch-signal
 
-$ cd temp_testdir
-< #include <stdlib.h>
-< int main(void) {
-<   char *A=NULL;
-<   *A = 1;
-< }
-$ cat > segfault.c
+$ mkdir temp_testdir-catch-signal
 
-$ gcc -o segfault segfault.c
+$ cd temp_testdir-catch-signal
 
-! expect return 15
-< $ ./segfault
-$ ../tesh --log='log.thresh:info tesh.fmt:%m%n'
+< kill 'SEGV', $$;
+$ mkfile segfault.pl
+
+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 11
+< $ perl segfault.pl
+$ ${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)
 
 $ cd ..
-$ rm -rf temp_testdir
+
+! output ignore
+$ cmake -E remove_directory temp_testdir-catch-signal