Subject: [PATCH] fenics: Do not use mpirun for tests
From: <[email-masked]>
To: <[email-masked]>
Date: Mon, 27 Jun 2022 11:24:49 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi guix,

the fenics package tests fail and it looks like the tests are run 3
times concurrently. Every test name is printed three times in the build
log, for example here:

https://ci.guix.gnu.org/build/1039880/log/raw

This is the maximum number of parallel jobs of the test run and if I
increase it, I get more print outputs.

AFAIK, pytest doesn't support mpi, so I don't see why the tests are
executed this way.

Anyhow, in the attached patch, the tests are executed directly using
pytest. This prevents the tests from getting stuck and subsequently I
discovered a failure in XDMF tests. With this test also disabled, the
package builds fine for me.

Maybe a fenics or mpi expert can tell if this patch makes sense?

Best regards,
Ontje
From 8dd11596851ab5a7ae1d483b9883894a9bd4d4ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ontje=20L=C3=BCnsdorf?= <[email-masked]>
Date: Mon, 27 Jun 2022 11:51:10 +0200
Subject: [PATCH] gnu: fenics: Do not mpirun tests.

* gnu/packages/simulation.scm (fenics)[phases]: Do not use mpirun for tests
  and skip failing XDMF test.
---
 gnu/packages/simulation.scm | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index 9e92fbcc5b..df4dd2d17a 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -665,15 +665,14 @@ (define-public fenics
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (with-directory-excursion "test"
-                 ;; Note: The test test_snes_set_from_options() in the file
-                 ;; unit/nls/test_PETScSNES_solver.py fails and is ignored.
-                 ;; Limit the number of jobs to 3 as 500 MiB of memory is used
-                 ;; per process.
-                 (invoke "mpirun" "-np" (number->string
-                                         (min 3 (parallel-job-count)))
-                         "python" "-B" "-m"
-                         "pytest" "unit" "--ignore"
-                         "unit/nls/test_PETScSNES_solver.py")))))
+                 (invoke
+                  "pytest" "unit"
+                  ;; The test test_snes_set_from_options() in the file
+                  ;; unit/nls/test_PETScSNES_solver.py fails and is ignored.
+                  "--ignore" "unit/nls/test_PETScSNES_solver.py"
+                  ;; Fails with a segfault.
+                  "--ignore" "unit/io/test_XDMF.py"
+                  )))))
          (add-after 'install 'install-demo-files
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((demos (string-append

base-commit: 97766323bc6e2b4dcfba4d6b46749a4280bca709
-- 
2.36.1