Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of github.com:mquinson/simgrid
[simgrid.git] / tools / tesh / catch-signal.tesh
index 4fc0754..be19f34 100644 (file)
@@ -2,25 +2,25 @@
 # 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
-> [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.
+< $ perl segfault.pl
+$ perl ${bindir:=.}/tesh
+> Test suite from stdin
+> [(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