[bug#76917] gnu: python-numba: Disable tests that are not reproducible.

Message ID d038d798184f01bb6407dd418d1cbef2a7b55064.1741616511.git.jlicht@fsfe.org
State New
Headers
Series [bug#76917] gnu: python-numba: Disable tests that are not reproducible. |

Commit Message

Jelle Licht March 10, 2025, 11:54 a.m. UTC
  * gnu/packages/python-xyz.scm (python-numba):[arguments]: Adjust the
'disable-failing-tests phase to skip some additional tests that can fail
depending on current CPU.

Change-Id: I67f3a100f5863f6d946a8d07428e802178bd7391
---
 gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)


base-commit: 1548403fa70609a2efd47d1a802587799dc022d6
  

Comments

Greg Hogan March 10, 2025, 4:29 p.m. UTC | #1
On Mon, Mar 10, 2025 at 10:23 AM Jelle Licht <jlicht@fsfe.org> wrote:
>
> * gnu/packages/python-xyz.scm (python-numba):[arguments]: Adjust the
> 'disable-failing-tests phase to skip some additional tests that can fail
> depending on current CPU.
>
> Change-Id: I67f3a100f5863f6d946a8d07428e802178bd7391
> ---
>  gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>
> diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
> index 9f2829c4a8..4cb7c72a82 100644
> --- a/gnu/packages/python-xyz.scm
> +++ b/gnu/packages/python-xyz.scm
> @@ -29988,6 +29988,29 @@ (define-public python-numba
>               (substitute* "numba/tests/test_import.py"
>                 (("def test_no_accidental_warnings")
>                  "def disabled_test_no_accidental_warnings"))
> +             ;; These tests fail due to result rounding depending on CPU.
> +             (substitute* "numba/tests/test_looplifting.py"
> +               (("def test_lift_objectmode_issue_4223")
> +                "def disabled_test_lift_objectmode_issue_4223"))
> +             (substitute* "numba/tests/test_extending.py"
> +               (("def test_series_ufunc")
> +                "def disabled_test_series_ufunc")
> +               (("def test_index_ufunc")
> +                "def disabled_test_index_ufunc"))
> +             (substitute* "numba/tests/test_array_exprs.py"
> +               (("def test_explicit_output")
> +                "def disabled_test_explicit_output"))
> +             (substitute* "numba/tests/test_target_extension.py"
> +               (("def test_basic_offload")
> +                "def disabled_test_basic_offload"))
> +             (substitute* "numba/tests/test_np_functions.py"
> +               (("def test_windowing")
> +                "def disabled_test_windowing"))
> +             ;; This fails nondeterministically, possibly depending on CPU.
> +             ;; https://github.com/numba/numba/issues/8282.
> +             (substitute* "numba/tests/test_function_type.py"
> +               (("def test_wrapper_address_protocol_libm")
> +                "def disabled_test_wrapper_address_protocol_libm"))
>               ;; Some tests timeout or crash on some architectures.
>               ,@(cond
>                  ((target-aarch64?)
>
> base-commit: 1548403fa70609a2efd47d1a802587799dc022d6
> --
> 2.48.1

I think that I have been seeing both sets of errors disabled by this
patch, and I am now able to build python-numba again.

Reviewed-by: Greg Hogan <code@greghogan.com>
  
Sharlatan Hellseher March 10, 2025, 7:12 p.m. UTC | #2
Hi,

It looks like Numba is CPU specific as I could build it all the time on
AMD Ryzen 7 3800X 8-Core Processor, but it fails to pass tests on
ci.guix.gnu.org on other user's machines.

It supports Pytest as test runner (PR #4781: WIP/runtest cf pytest)[1] I
might refactor the package to skip tests in #:tests-flags instead
altering tests files.

Meanwhile reviewing patch and build python-numba after apply.

1. https://github.com/numba/numba/blob/05b4cad9e10132c6c0166e76d80b034a18bce33a/docs/source/release-notes.rst#L3198

--
Oleg
  
Sharlatan Hellseher March 10, 2025, 10:46 p.m. UTC | #3
Hi,

Tests passed on my machine:
--8<---------------cut here---------------start------------->8---
Ran 10491 tests in 1336.846s
<...>
> grep -m1 "model name" /proc/cpuinfo
model name      : AMD Ryzen 7 3800X 8-Core Processor
--8<---------------cut here---------------end--------------->8---

Pushed to master as 42773718d5d5d42137ac84826850256fd6bed606.

--
Oleg
  

Patch

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 9f2829c4a8..4cb7c72a82 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -29988,6 +29988,29 @@  (define-public python-numba
              (substitute* "numba/tests/test_import.py"
                (("def test_no_accidental_warnings")
                 "def disabled_test_no_accidental_warnings"))
+             ;; These tests fail due to result rounding depending on CPU.
+             (substitute* "numba/tests/test_looplifting.py"
+               (("def test_lift_objectmode_issue_4223")
+                "def disabled_test_lift_objectmode_issue_4223"))
+             (substitute* "numba/tests/test_extending.py"
+               (("def test_series_ufunc")
+                "def disabled_test_series_ufunc")
+               (("def test_index_ufunc")
+                "def disabled_test_index_ufunc"))
+             (substitute* "numba/tests/test_array_exprs.py"
+               (("def test_explicit_output")
+                "def disabled_test_explicit_output"))
+             (substitute* "numba/tests/test_target_extension.py"
+               (("def test_basic_offload")
+                "def disabled_test_basic_offload"))
+             (substitute* "numba/tests/test_np_functions.py"
+               (("def test_windowing")
+                "def disabled_test_windowing"))
+             ;; This fails nondeterministically, possibly depending on CPU.
+             ;; https://github.com/numba/numba/issues/8282.
+             (substitute* "numba/tests/test_function_type.py"
+               (("def test_wrapper_address_protocol_libm")
+                "def disabled_test_wrapper_address_protocol_libm"))
              ;; Some tests timeout or crash on some architectures.
              ,@(cond
                 ((target-aarch64?)