diff --git a/overlays/test-exclusions.nix b/overlays/test-exclusions.nix index bc057c3..3fa2507 100644 --- a/overlays/test-exclusions.nix +++ b/overlays/test-exclusions.nix @@ -4,9 +4,10 @@ # nixpkgs binary cache cannot be used and upstream test suites run locally. # The jeeves builder uses /tmp/nix-builds so filesystem tests run on tmpfs # instead of ZFS with normalization=formD and utf8only=on; those tests remain -# enabled. The remaining exclusions cover a UDP readiness race and -# architecture-dependent floating-point differences whose risk we accept for -# our workloads. Keep these exceptions visible until their causes are fixed. +# enabled. The remaining workarounds cover UDP readiness and nested-worker +# scheduling races, plus architecture-dependent floating-point differences +# whose risk we accept for our workloads. Keep these exceptions visible until +# their causes are fixed. _final: prev: { gnutls = prev.gnutls.overrideAttrs (old: { # This test uses a fixed four-second sleep instead of checking UDP @@ -18,6 +19,14 @@ _final: prev: { pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ (_pythonFinal: pythonPrev: { + pytest-xdist = pythonPrev.pytest-xdist.overridePythonAttrs (old: { + # Its acceptance tests start nested worker pools. Limit the outer pool + # so deliberately crashing inner workers do not race under heavy load. + preCheck = builtins.replaceStrings [ "--numprocesses=$NIX_BUILD_CORES" ] [ "--numprocesses=8" ] ( + old.preCheck or "" + ); + }); + scipy = pythonPrev.scipy.overridePythonAttrs (old: { # x86-64-v3 FFT implementations produce rounding differences outside # these tests' strict tolerances. We accept the numerical-precision