summaryrefslogtreecommitdiff
path: root/testsuite/scripts/summary
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/scripts/summary')
-rw-r--r--testsuite/scripts/summary64
1 files changed, 64 insertions, 0 deletions
diff --git a/testsuite/scripts/summary b/testsuite/scripts/summary
new file mode 100644
index 0000000000..aa0cfaaea5
--- /dev/null
+++ b/testsuite/scripts/summary
@@ -0,0 +1,64 @@
+#########################################################################
+# #
+# OCaml #
+# #
+# Damien Doligez, Jane Street Capital #
+# #
+# Copyright 2014 Institut National de Recherche en Informatique et #
+# en Automatique. All rights reserved. This file is distributed #
+# under the terms of the Q Public License version 1.0. #
+# #
+#########################################################################
+
+function error(msg) {
+ printf("unexpected error (%s) at line %d:\n", msg, NR);
+ printf(" %s\n", $0);
+ got_error = 1;
+}
+
+/^Testing .* \.\.\. pass$/ { ++npass; next; }
+/^Testing .* \.\.\. skip$/ { ++nskip; next; }
+/^Testing .* \.\.\. FAIL$/ {
+ sub(/^Testing/, "");
+ sub(/ ... FAIL$/, "");
+ failed[nfail++] = $0;
+ next;
+}
+{ error("invalid test result"); next; }
+
+END {
+ printf("\n");
+ printf(" tests passed: %4d\n", npass);
+ printf(" tests skipped: %4d\n", nskip);
+ printf(" tests failed: %4d\n", nfail);
+ if (expected != ""){
+ total = npass + nskip + nfail;
+ printf(" total..........%4d (expected %d)\n", total, expected);
+ }
+ printf("\n");
+
+ if (nfail > 0){
+ printf("Failed tests:\n");
+ for (i in failed){
+ printf(" %s\n", failed[i]);
+ }
+ printf("\nSOME TESTS FAILED\n\n");
+ result = 3;
+ }
+
+ if (expected != "" && total != expected) {
+ printf("ERROR: wrong number of test results\n\n");
+ result = 4;
+ }
+
+ if (got_error){
+ printf("ERROR: unexpected errors in test scripts\n\n");
+ result = 5;
+ }
+
+ if (result == 0){
+ printf("ALL TESTS PASSED\n\n");
+ }
+
+ exit(result);
+}