Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
some new files used to check Tesh
[simgrid.git] / tools / tesh2 / examples / keep-going.tesh
diff --git a/tools/tesh2/examples/keep-going.tesh b/tools/tesh2/examples/keep-going.tesh
new file mode 100644 (file)
index 0000000..a1a2032
--- /dev/null
@@ -0,0 +1,144 @@
+#! ./tesh\r
+\r
+D this Tesh unit tests the option of the command line `--keep-going'\r
+\r
+< #include <stdlib.h>\r
+< #include <stdio.h>\r
+<  \r
+< int\r
+< main(int argc, char* argv[])\r
+< {\r
+<      printf("Hello Tesh\n");\r
+<      \r
+<      return EXIT_SUCCESS;\r
+< }\r
+< \r
+$ cat > job.c\r
+\r
+$ gcc -o job job.c\r
+\r
\r
+< ! expect return 1\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+$ cat > file1.tesh\r
+\r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+$ cat > file2.tesh\r
+\r
+! expect return $EEXITCODENOTMATCH\r
+\r
+# in this case the option `keep-going' is not specified so Tesh detects the error and interrupt all the folowing units.\r
+$ ./tesh --log='log.thresh:info tesh.fmt:%m%n' file1.tesh file2.tesh\r
+> Test unit from file1.tesh\r
+> [file1.tesh:3] ./job\r
+> [file1.tesh:3] ./job : NOK (returned code `0' instead `1')\r
+> Output of <file1.tesh:3> so far: \r
+> ||Hello Tesh\r
+> ||\r
+> Test unit `(file1.tesh)' : NOK (exit code mismatch)\r
+> Test unit from file2.tesh\r
+> Test unit from file2.tesh INTR\r
+\r
+< ! expect return 1\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+$ cat > file1.tesh\r
+\r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+< \r
+< ! expect return 0\r
+< > Hello Tesh\r
+< $ ./job\r
+$ cat > file2.tesh\r
+\r
+! expect return $EEXITCODENOTMATCH\r
+\r
+# in this case the option `keep-going' is specified so, Tesh execute all the other units.\r
+$ ./tesh --log='log.thresh:info tesh.fmt:%m%n' file1.tesh file2.tesh  --keep-going\r
+> Test unit from file1.tesh\r
+> [file1.tesh:3] ./job\r
+> [file1.tesh:3] ./job : NOK (returned code `0' instead `1')\r
+> Output of <file1.tesh:3> so far: \r
+> ||Hello Tesh\r
+> ||\r
+> Test unit `(file1.tesh)' : NOK (exit code mismatch)\r
+> Test unit from file2.tesh\r
+> [file2.tesh:3] ./job\r
+> [file2.tesh:7] ./job\r
+> [file2.tesh:11] ./job\r
+> [file2.tesh:15] ./job\r
+> [file2.tesh:19] ./job\r
+> Test unit from file2.tesh OK\r
+\r
+$ rm -f file1.tesh\r
+\r
+$ rm -f file2.tesh\r
+\r
+$ rm -f job\r
+\r
+$ rm -f job.c
\ No newline at end of file