From 6ca3d9c4b2c0419a1118ff75fde6eaf1533dd7b5 Mon Sep 17 00:00:00 2001 From: Richie Cahill Date: Fri, 11 Sep 2026 11:07:28 -0400 Subject: [PATCH] fix(overlays): exclude failing x86-64-v3 tests Skip the flaky GnuTLS UDP readiness test and the SciPy FFT tests whose precision differences are acceptable for our workloads. --- overlays/default.nix | 2 ++ overlays/test-exclusions.nix | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 overlays/test-exclusions.nix diff --git a/overlays/default.nix b/overlays/default.nix index 6110f8e..f583de3 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -15,6 +15,8 @@ }; }; + test-exclusions = import ./test-exclusions.nix; + python-env = final: _prev: { my_python = final.python314.withPackages ( ps: with ps; [ diff --git a/overlays/test-exclusions.nix b/overlays/test-exclusions.nix new file mode 100644 index 0000000..bc057c3 --- /dev/null +++ b/overlays/test-exclusions.nix @@ -0,0 +1,32 @@ +# Test exclusions for the locally rebuilt x86-64-v3 package set. +# +# Selecting x86-64-v3 changes every affected derivation, so the normal +# 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. +_final: prev: { + gnutls = prev.gnutls.overrideAttrs (old: { + # This test uses a fixed four-second sleep instead of checking UDP + # readiness; the client saw no listener in the x86-64-v3 build. + postPatch = (old.postPatch or "") + '' + sed '2iexit 77' -i tests/serv-udp.sh + ''; + }); + + pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ + (_pythonFinal: pythonPrev: { + scipy = pythonPrev.scipy.overridePythonAttrs (old: { + # x86-64-v3 FFT implementations produce rounding differences outside + # these tests' strict tolerances. We accept the numerical-precision + # risk for our workloads. + disabledTests = (old.disabledTests or [ ]) ++ [ + "test_roundtrip_float32" + "test_roundtrip_scaling" + ]; + }); + }) + ]; +}