Package: release.debian.org
Severity: normal
X-Debbugs-Cc: oc...@packages.debian.org
Control: affects -1 + src:ocaml
User: release.debian....@packages.debian.org
Usertags: unblock

[ Reason ]

I would like to upload ocaml/5.3.0-3 with the following two fixes:

  * Mark tests that actually require multicore (Closes: #1101353)
  * Do not run flaky test (Closes: #1103008)

These fix some random FTBFS.

[ Impact ]

There should be no impact for the end user. The package should FTBFS
less often :-)

[ Tests ]

None.

[ Risks ]

The second fix is trivial.

The first one involves a patch of mine and is more elaborate, but has
been submitted and accepted upstream.

[ Checklist ]
  [X] all changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in testing

unblock ocaml/5.3.0-2
diff --git a/debian/changelog b/debian/changelog
index 07515d4f..4efa9e37 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+ocaml (5.3.0-3) UNRELEASED; urgency=medium
+
+  * Mark tests that actually require multicore (Closes: #1101353)
+  * Do not run flaky test (Closes: #1103008)
+
+ -- Stéphane Glondu <glo...@debian.org>  Wed, 26 Mar 2025 10:22:21 +0100
+
 ocaml (5.3.0-2) unstable; urgency=medium
 
   * Enable natdynlink on hurd-amd64 (Closes: #1094334)
diff --git 
a/debian/patches/0008-Mark-tests-that-actually-require-multicore.patch 
b/debian/patches/0008-Mark-tests-that-actually-require-multicore.patch
new file mode 100644
index 00000000..e178499a
--- /dev/null
+++ b/debian/patches/0008-Mark-tests-that-actually-require-multicore.patch
@@ -0,0 +1,83 @@
+From: =?utf-8?q?St=C3=A9phane_Glondu?= <glo...@debian.org>
+Date: Wed, 26 Mar 2025 08:39:51 +0100
+Subject: Mark tests that actually require multicore
+
+Bug-Debian: https://bugs.debian.org/1101353
+Forwarded: https://github.com/ocaml/ocaml/pull/13906
+---
+ ocamltest/builtin_actions.ml              | 8 ++++++++
+ testsuite/tests/memory-model/forbidden.ml | 1 +
+ testsuite/tests/memory-model/publish.ml   | 1 +
+ testsuite/tests/parallel/mctest.ml        | 1 +
+ testsuite/tests/parallel/pingpong.ml      | 1 +
+ 5 files changed, 12 insertions(+)
+
+diff --git a/ocamltest/builtin_actions.ml b/ocamltest/builtin_actions.ml
+index 0f06062..c1b783b 100644
+--- a/ocamltest/builtin_actions.ml
++++ b/ocamltest/builtin_actions.ml
+@@ -102,6 +102,13 @@ let hasstr = make
+     "str library available"
+     "str library not available")
+ 
++let multicore = make
++  ~name:"multicore"
++  ~description:"Pass if running on multicore"
++  (Actions_helpers.pass_or_skip (Domain.recommended_domain_count () >= 2)
++    "running on multicore"
++    "not running on multicore")
++
+ let windows_OS = "Windows_NT"
+ 
+ let get_OS () = Sys.safe_getenv "OS"
+@@ -367,6 +374,7 @@ let _ =
+     hasunix;
+     hassysthreads;
+     hasstr;
++    multicore;
+     libunix;
+     libwin32unix;
+     windows;
+diff --git a/testsuite/tests/memory-model/forbidden.ml 
b/testsuite/tests/memory-model/forbidden.ml
+index 676904c..daf65e5 100644
+--- a/testsuite/tests/memory-model/forbidden.ml
++++ b/testsuite/tests/memory-model/forbidden.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+  modules = "opt.ml barrier.ml hist.ml shared.ml run.ml outcome.ml";
++ multicore;
+  not-bsd;
+  no-tsan; (* tsan detects the intentional data races and fails *)
+  {
+diff --git a/testsuite/tests/memory-model/publish.ml 
b/testsuite/tests/memory-model/publish.ml
+index a857c6c..cd000ef 100644
+--- a/testsuite/tests/memory-model/publish.ml
++++ b/testsuite/tests/memory-model/publish.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+  modules = "opt.ml barrier.ml hist.ml shared.ml run.ml outcome.ml";
++ multicore;
+  no-tsan; (* tsan detects data races and fails *)
+  not-bsd;
+  {
+diff --git a/testsuite/tests/parallel/mctest.ml 
b/testsuite/tests/parallel/mctest.ml
+index ea339e3..8e2c51f 100644
+--- a/testsuite/tests/parallel/mctest.ml
++++ b/testsuite/tests/parallel/mctest.ml
+@@ -1,5 +1,6 @@
+ (* TEST
+  include unix;
++ multicore;
+  hasunix;
+  {
+    bytecode;
+diff --git a/testsuite/tests/parallel/pingpong.ml 
b/testsuite/tests/parallel/pingpong.ml
+index eb43734..2508df5 100644
+--- a/testsuite/tests/parallel/pingpong.ml
++++ b/testsuite/tests/parallel/pingpong.ml
+@@ -1,4 +1,5 @@
+ (* TEST
++ multicore;
+  no-tsan; (* TSan detects the intentional data race *)
+  {
+    bytecode;
diff --git a/debian/patches/series b/debian/patches/series
index 946c47d6..fa84b141 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,3 +5,4 @@
 0005-Check-for-definition-of-AT_SECURE-before-using-it.patch
 0006-Disable-DT_TEXTREL-warnings-on-Linux-i386.patch
 0007-Enable-native-backend-and-dynlink-on-hurd-amd64.patch
+0008-Mark-tests-that-actually-require-multicore.patch
diff --git a/debian/rules b/debian/rules
index 7de995a9..f65ec98c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -280,6 +280,10 @@ ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
        rm -f testsuite/tests/lib-threads/sockets.*
        : # FIXME: the following test fails, we temporarily disable it
        rm -rf testsuite/tests/tool-debugger/find-artifacts/
+ifeq ($(DEB_BUILD_ARCH),arm64)
+       : # the following test is flaky, see #1103008
+       rm -f testsuite/tests/lib-runtime-events/test_dropped_events.ml
+endif
 ifneq (,$(filter $(DEB_BUILD_ARCH),$(SLOW_ARCHITECTURES)))
        rm -f testsuite/tests/misc-unsafe/almabench.ml
 endif

Reply via email to