File: 0002-Disable-multicore-tests-on-monocore-systems.patch

package info (click to toggle)
ocaml-saturn 1.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,040 kB
  • sloc: ml: 7,698; makefile: 16
file content (78 lines) | stat: -rw-r--r-- 2,928 bytes parent folder | download
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 ()