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 4fc0754..2799b4f 100644 (file)
@@ -1,26 +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
-> [0.000000] [tesh/INFO] Test suite from stdin
-> [0.000000] [tesh/INFO] [stdin:1] ./segfault
-> [0.000000] run_context.c:350: [tesh/ERROR] Child "./segfault" got signal SIGSEGV.
+< 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] 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