summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2017-10-08 10:05:23 +0200
committerXavier Leroy <xavier.leroy@inria.fr>2017-10-08 10:05:23 +0200
commitb6bda6a76e1275bca8102ed606d30de60a50c5f7 (patch)
tree0d9003edbca68dc9a004153c37a1d991d21ae18a
parent801993dc8d2782ba83e9dc30e55dfdadd7c6f0f5 (diff)
downloadocaml-b6bda6a76e1275bca8102ed606d30de60a50c5f7.tar.gz
tests/lib-threads: make signal tests more reliable
signal2.ml: normalize the signal numbers signal.checker: accept some "ab" output after the "exiting" message (exiting is not instantaneous; the threads can still emit some a's and b's) signal2.checker: do like signal.checker
-rw-r--r--testsuite/tests/lib-threads/signal.checker2
-rw-r--r--testsuite/tests/lib-threads/signal2.checker3
-rw-r--r--testsuite/tests/lib-threads/signal2.ml4
3 files changed, 6 insertions, 3 deletions
diff --git a/testsuite/tests/lib-threads/signal.checker b/testsuite/tests/lib-threads/signal.checker
index 181d3c5afc..8bb0d3da20 100644
--- a/testsuite/tests/lib-threads/signal.checker
+++ b/testsuite/tests/lib-threads/signal.checker
@@ -13,4 +13,4 @@
#* *
#**************************************************************************
-sed -e 1q signal.result | grep -q '^[ab]*Got ctrl-C, exiting...$'
+sed -e 1q signal.result | grep -q '^[ab]*Got ctrl-C, exiting...[ab]\{0,2\}$'
diff --git a/testsuite/tests/lib-threads/signal2.checker b/testsuite/tests/lib-threads/signal2.checker
index 56fe7db3d6..aea6ff0189 100644
--- a/testsuite/tests/lib-threads/signal2.checker
+++ b/testsuite/tests/lib-threads/signal2.checker
@@ -13,4 +13,5 @@
#* *
#**************************************************************************
-sed -e 1q signal2.result | grep -q '^[ab]*'
+sed -e 1q signal2.result | grep -q '^[ab]*Got signal INT, exiting...[ab]\{0,2\}$'
+
diff --git a/testsuite/tests/lib-threads/signal2.ml b/testsuite/tests/lib-threads/signal2.ml
index b7cda56df7..23c85d6fd4 100644
--- a/testsuite/tests/lib-threads/signal2.ml
+++ b/testsuite/tests/lib-threads/signal2.ml
@@ -8,4 +8,6 @@ let _ =
ignore (Thread.create (print_message 0.6666666666) 'a');
ignore (Thread.create (print_message 1.0) 'b');
let s = Thread.wait_signal [Sys.sigint; Sys.sigterm] in
- Printf.printf "Got signal %d, exiting...\n" s
+ Printf.printf "Got signal %s, exiting...\n"
+ (if s = Sys.sigint then "INT" else
+ if s = Sys.sigterm then "TERM" else "unknown")