1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
From: =?utf-8?q?St=C3=A9phane_Glondu?= <glondu@debian.org>
Date: Thu, 27 Mar 2025 10:47:53 +0100
Subject: Disable multicore tests on monocore systems
Bug-Debian: https://bugs.debian.org/1101352
---
bench/main.ml | 15 +++++++++++----
test/spsc_queue/stm_spsc_queue.ml | 4 +++-
test/spsc_queue/test_spsc_queue.ml | 4 +++-
3 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/bench/main.ml b/bench/main.ml
index 23c1b36..e1e0aaa 100644
--- a/bench/main.ml
+++ b/bench/main.ml
@@ -1,12 +1,16 @@
-let benchmarks =
+let benchmarks_multicore =
+ [
+ ("Saturn Single_prod_single_cons_queue", Bench_spsc_queue.Safe.run_suite);
+ ( "Saturn Single_prod_single_cons_queue_unsafe",
+ Bench_spsc_queue.Unsafe.run_suite );
+ ]
+
+let benchmarks_monocore =
[
("Saturn Queue (MS)", Bench_queue.Safe.run_suite);
("Saturn Queue_unsafe (MS)", Bench_queue.Unsafe.run_suite);
("Saturn Bounded_Queue", Bench_bounded_queue.Safe.run_suite);
("Saturn Bounded_Queue_unsafe", Bench_bounded_queue.Unsafe.run_suite);
- ("Saturn Single_prod_single_cons_queue", Bench_spsc_queue.Safe.run_suite);
- ( "Saturn Single_prod_single_cons_queue_unsafe",
- Bench_spsc_queue.Unsafe.run_suite );
("Saturn Single_consumer_queue", Bench_mpsc.run_suite);
("Saturn Size", Bench_size.run_suite);
("Saturn Skiplist", Bench_skiplist.run_suite);
@@ -17,4 +21,7 @@ let benchmarks =
("Saturn Bounded_Stack", Bench_bounded_stack.run_suite);
]
+let benchmarks =
+ benchmarks_monocore @ (if Domain.recommended_domain_count () >= 2 then benchmarks_multicore else [])
+
let () = Multicore_bench.Cmd.run ~benchmarks ()
diff --git a/test/spsc_queue/stm_spsc_queue.ml b/test/spsc_queue/stm_spsc_queue.ml
index 10c7846..6d63db5 100644
--- a/test/spsc_queue/stm_spsc_queue.ml
+++ b/test/spsc_queue/stm_spsc_queue.ml
@@ -109,10 +109,12 @@ module STM_spsc (Spsc_queue : Spsc_queues.SPSC_tests) = struct
Stm_run.run ~name:("Saturn." ^ Spsc_queue.name) ~make_domain (module Spec)
end
-let () =
+let run () =
let module Safe = STM_spsc (Spsc_queues.Spsc_queue) in
let exit_code = Safe.run () in
if exit_code <> 0 then exit exit_code
else
let module Unsafe = STM_spsc (Spsc_queues.Spsc_queue_unsafe) in
Unsafe.run () |> exit
+
+let () = if Domain.recommended_domain_count () >= 2 then run ()
diff --git a/test/spsc_queue/test_spsc_queue.ml b/test/spsc_queue/test_spsc_queue.ml
index 6cbc4dc..ef0f34a 100644
--- a/test/spsc_queue/test_spsc_queue.ml
+++ b/test/spsc_queue/test_spsc_queue.ml
@@ -65,8 +65,10 @@ module Tests_spsc (Spsc_queue : Spsc_queues.SPSC_tests) = struct
test_float ()
end
-let () =
+let run () =
let module Safe = Tests_spsc (Spsc_queues.Spsc_queue) in
Safe.run ();
let module Unsafe = Tests_spsc (Spsc_queues.Spsc_queue_unsafe) in
Unsafe.run ()
+
+let () = if Domain.recommended_domain_count () >= 2 then run ()
|