diff --git a/overlays/test-exclusions.nix b/overlays/test-exclusions.nix index 0773771..4f53cee 100644 --- a/overlays/test-exclusions.nix +++ b/overlays/test-exclusions.nix @@ -4,10 +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 workarounds cover UDP readiness, nested-worker -# scheduling races, and mismatched timeout clocks, plus 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, resource-sensitive +# parser and nested-worker races, and mismatched timeout clocks, 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 @@ -17,6 +17,32 @@ _final: prev: { ''; }); + prometheus = prev.prometheus.overrideAttrs ( + old: + let + assets = old.passthru.assets.overrideAttrs (assetsOld: { + # CodeMirror's bounded synchronous parser can return an incomplete tree + # when these cases run on a heavily loaded builder. + postPatch = (assetsOld.postPatch or "") + '' + substituteInPlace module/codemirror-promql/src/complete/hybrid.test.ts \ + --replace-fail "it(value.title, () => {" \ + "(value.title === 'autocomplete topk params 2' ? it.skip : it)(value.title, () => {" + substituteInPlace module/codemirror-promql/src/parser/vector.test.ts \ + --replace-fail "it(value.binaryExpr, () => {" \ + "(value.binaryExpr === 'foo * on(test,blub) bar' ? it.skip : it)(value.binaryExpr, () => {" + ''; + }); + in + { + postPatch = builtins.replaceStrings [ "${old.passthru.assets}" ] [ "${assets}" ] ( + builtins.unsafeDiscardStringContext old.postPatch + ); + passthru = old.passthru // { + inherit assets; + }; + } + ); + pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ (_pythonFinal: pythonPrev: { backrefs = pythonPrev.backrefs.overridePythonAttrs (old: { @@ -38,6 +64,11 @@ _final: prev: { preCheck = builtins.replaceStrings [ "--numprocesses=$NIX_BUILD_CORES" ] [ "--numprocesses=1" ] ( old.preCheck or "" ); + # This test deliberately crashes workers past the restart limit and + # races while checking which replacement message was emitted. + disabledTests = (old.disabledTests or [ ]) ++ [ + "test_max_worker_restart_tests_queued" + ]; }); scipy = pythonPrev.scipy.overridePythonAttrs (old: {