From f085c1d69166453960c2b587144802bb5fdb1c67 Mon Sep 17 00:00:00 2001 From: Colin Date: Tue, 4 Apr 2023 23:30:27 +0000 Subject: [PATCH] overlays/disable-flakey-tests.nix: significantly reduce how much we patch nixpkgs this means we can grab from upstream caches more --- flake.lock | 18 +- flake.nix | 2 + hosts/common/cross/default.nix | 2 +- overlays/disable-flakey-tests.nix | 332 +++++++++++++++--------------- 4 files changed, 182 insertions(+), 172 deletions(-) diff --git a/flake.lock b/flake.lock index 26d9eeda..06d16963 100644 --- a/flake.lock +++ b/flake.lock @@ -66,11 +66,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1679748960, - "narHash": "sha256-BP8XcYHyj1NxQi04RpyNW8e7KiXSoI+Fy1tXIK2GfdA=", + "lastModified": 1680390120, + "narHash": "sha256-RyDJcG/7mfimadlo8vO0QjW22mvYH1+cCqMuigUntr8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da26ae9f6ce2c9ab380c0f394488892616fc5a6a", + "rev": "c1e2efaca8d8a3db6a36f652765d6c6ba7bb8fae", "type": "github" }, "original": { @@ -82,11 +82,11 @@ }, "nixpkgs-unpatched": { "locked": { - "lastModified": 1680372061, - "narHash": "sha256-+JjtistAuCJJ8n1MEx+afEGdLDGQl/2m92qx8eSrXAM=", + "lastModified": 1680415272, + "narHash": "sha256-S2J9n+sSeAAdXWHrz/s9pyS5fhbQilfNqYrs6RCUyN8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "dfe5844bbc18d05cab9453c0aea421d348f0d062", + "rev": "66f60deb8aa348ca81d60d0639ae420c667ff92a", "type": "github" }, "original": { @@ -113,11 +113,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1679993313, - "narHash": "sha256-pfZ/BxJDTifnQBMXg60OhwpJvg96LHvEXGtpHeGcWLM=", + "lastModified": 1680404136, + "narHash": "sha256-06D8HJmRv4DdpEQGblMhx2Vm81SBWM61XBBIx7QQfo0=", "owner": "Mic92", "repo": "sops-nix", - "rev": "5b26523e28989a7f56953b695184070c06335814", + "rev": "b93eb910f768f9788737bfed596a598557e5625d", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 588e129f..fc9a5d6e 100644 --- a/flake.nix +++ b/flake.nix @@ -98,6 +98,7 @@ self.nixosModules.passthru { nixpkgs.overlays = [ + self.overlays.disable-flakey-tests self.overlays.passthru self.overlays.pins self.overlays.pkgs @@ -167,6 +168,7 @@ # N.B.: `nix flake check` requires every overlay to take `final: prev:` at defn site, # hence the weird redundancy. default = final: prev: self.overlays.pkgs final prev; + disable-flakey-tests = final: prev: import ./overlays/disable-flakey-tests.nix final prev; pkgs = final: prev: import ./overlays/pkgs.nix final prev; pins = final: prev: import ./overlays/pins.nix final prev; optimizations = final: prev: import ./overlays/optimizations.nix final prev; diff --git a/hosts/common/cross/default.nix b/hosts/common/cross/default.nix index a17ea63b..8dfe6ae3 100644 --- a/hosts/common/cross/default.nix +++ b/hosts/common/cross/default.nix @@ -90,10 +90,10 @@ let # except for the "cross only" universal overlays which we avoid specifying for non-cross builds # because they don't affect the result -- only the build process -- so we can disable them as an optimization. crossOnlyUniversalOverlays = [ - (import ./../../../overlays/disable-flakey-tests.nix) (import ./../../../overlays/optimizations.nix) ]; universalOverlays = [ + (import ./../../../overlays/disable-flakey-tests.nix) (import ./../../../overlays/pkgs.nix) (import ./../../../overlays/pins.nix) ] ++ crossOnlyUniversalOverlays; diff --git a/overlays/disable-flakey-tests.nix b/overlays/disable-flakey-tests.nix index 235c08c0..214067d6 100644 --- a/overlays/disable-flakey-tests.nix +++ b/overlays/disable-flakey-tests.nix @@ -5,61 +5,61 @@ # - they assume too much about their environment and fail under qemu. # (next: prev: { - ell = prev.ell.overrideAttrs (_upstream: { - # 2023/02/11 - # fixes "TEST FAILED in get_random_return_callback at unit/test-dbus-message-fds.c:278: !l_dbus_message_get_error(message, ((void *)0), ((void *)0))" - # unclear *why* this test fails. - doCheck = false; - }); - fish = prev.fish.overrideAttrs (_upstream: { - # 2023/02/28 - # The following tests FAILED: - # 177 - sigint.fish (Failed) - # 241 - torn_escapes.py (Failed) - doCheck = false; - }); - gjs = prev.gjs.overrideAttrs (_upstream: { - # 2023/01/30: one test times out. probably flakey test that only got built because i patched mesa. - doCheck = false; - }); - gssdp = prev.gssdp.overrideAttrs (_upstream: { - # 2023/02/11 - # fixes "ERROR:../tests/test-regression.c:429:test_ggo_7: assertion failed (error == NULL): Failed to set multicast interfaceProtocol not available (gssdp-error, 1)" - doCheck = false; - }); - gupnp = prev.gupnp.overrideAttrs (_upstream: { - # 2023/02/22 - # fixes "Bail out! ERROR:../tests/test-bugs.c:205:test_bgo_696762: assertion failed (error == NULL): Failed to set multicast interfaceProtocol not available (gssdp-erro>" - doCheck = false; - }); - json-glib = prev.json-glib.overrideAttrs (_upstream: { - # 2023/02/11 - # fixes: "15/15 json-glib:docs / doc-check TIMEOUT 30.52s killed by signal 15 SIGTERM" - doCheck = false; - }); - lapack-reference = prev.lapack-reference.overrideAttrs (_upstream: { - # 2023/02/11: test timeouts - # > The following tests FAILED: - # > 93 - LAPACK-xlintstz_ztest_in (Timeout) - # > 98 - LAPACK-xeigtstz_svd_in (Timeout) - # > 99 - LAPACK-xeigtstz_zec_in (Timeout) - doCheck = false; - }); - libadwaita = prev.libadwaita.overrideAttrs (_upstream: { - # 2023/01/30: one test times out. probably flakey test that only got built because i patched mesa. - doCheck = false; - }); - libsecret = prev.libsecret.overrideAttrs (_upstream: { - # 2023/01/30: one test times out. probably flakey test that only got built because i patched mesa. - doCheck = false; - }); - libuv = prev.libuv.overrideAttrs (_upstream: { - # 2023/02/11 - # 2 tests fail: - # - not ok 261 - tcp_bind6_error_addrinuse - # - not ok 267 - tcp_bind_error_addrinuse_listen - doCheck = false; - }); + # ell = prev.ell.overrideAttrs (_upstream: { + # # 2023/02/11 + # # fixes "TEST FAILED in get_random_return_callback at unit/test-dbus-message-fds.c:278: !l_dbus_message_get_error(message, ((void *)0), ((void *)0))" + # # unclear *why* this test fails. + # doCheck = false; + # }); + # fish = prev.fish.overrideAttrs (_upstream: { + # # 2023/02/28 + # # The following tests FAILED: + # # 177 - sigint.fish (Failed) + # # 241 - torn_escapes.py (Failed) + # doCheck = false; + # }); + # gjs = prev.gjs.overrideAttrs (_upstream: { + # # 2023/01/30: one test times out. probably flakey test that only got built because i patched mesa. + # doCheck = false; + # }); + # gssdp = prev.gssdp.overrideAttrs (_upstream: { + # # 2023/02/11 + # # fixes "ERROR:../tests/test-regression.c:429:test_ggo_7: assertion failed (error == NULL): Failed to set multicast interfaceProtocol not available (gssdp-error, 1)" + # doCheck = false; + # }); + # gupnp = prev.gupnp.overrideAttrs (_upstream: { + # # 2023/02/22 + # # fixes "Bail out! ERROR:../tests/test-bugs.c:205:test_bgo_696762: assertion failed (error == NULL): Failed to set multicast interfaceProtocol not available (gssdp-erro>" + # doCheck = false; + # }); + # json-glib = prev.json-glib.overrideAttrs (_upstream: { + # # 2023/02/11 + # # fixes: "15/15 json-glib:docs / doc-check TIMEOUT 30.52s killed by signal 15 SIGTERM" + # doCheck = false; + # }); + # lapack-reference = prev.lapack-reference.overrideAttrs (_upstream: { + # # 2023/02/11: test timeouts + # # > The following tests FAILED: + # # > 93 - LAPACK-xlintstz_ztest_in (Timeout) + # # > 98 - LAPACK-xeigtstz_svd_in (Timeout) + # # > 99 - LAPACK-xeigtstz_zec_in (Timeout) + # doCheck = false; + # }); + # libadwaita = prev.libadwaita.overrideAttrs (_upstream: { + # # 2023/01/30: one test times out. probably flakey test that only got built because i patched mesa. + # doCheck = false; + # }); + # libsecret = prev.libsecret.overrideAttrs (_upstream: { + # # 2023/01/30: one test times out. probably flakey test that only got built because i patched mesa. + # doCheck = false; + # }); + # libuv = prev.libuv.overrideAttrs (_upstream: { + # # 2023/02/11 + # # 2 tests fail: + # # - not ok 261 - tcp_bind6_error_addrinuse + # # - not ok 267 - tcp_bind_error_addrinuse_listen + # doCheck = false; + # }); libwacom = prev.libwacom.overrideAttrs (_upstream: { # 2023/03/30 # "libwacom:all / pytest TIMEOUT" @@ -67,127 +67,135 @@ mesonFlags = [ "-Dtests=disabled" ]; }); - llvmPackages_12 = - let - tools = prev.llvmPackages_12.tools.extend (self: super: { - libllvm = super.libllvm.overrideAttrs (upstream: { - # 2023/02/21: fix: "FAIL: LLVM-Unit :: ExecutionEngine/MCJIT/./MCJITTests/MCJITTest.return_global (2857 of 42084)" - # - nix log /nix/store/6vydavlxh1gvs0vmrkcx9qp67g3h7kcz-llvm-12.0.1.drv - # - wanted by sequoia, rav1e, rustc-1.66.1 (is this right?) - doCheck = false; - # upstream sets this with `rec`; TODO: have upstream refer to the final overrideAttrs version of the derivation instead of using rec. - cmakeFlags = next.lib.remove "-DLLVM_BUILD_TESTS=ON" upstream.cmakeFlags; - }); - }); - in - # see - # - we copy their strategy / attrset mutilation - prev.llvmPackages_12 // { inherit tools; } // tools; + # llvmPackages_12 = + # let + # tools = prev.llvmPackages_12.tools.extend (self: super: { + # libllvm = super.libllvm.overrideAttrs (upstream: { + # # 2023/02/21: fix: "FAIL: LLVM-Unit :: ExecutionEngine/MCJIT/./MCJITTests/MCJITTest.return_global (2857 of 42084)" + # # - nix log /nix/store/6vydavlxh1gvs0vmrkcx9qp67g3h7kcz-llvm-12.0.1.drv + # # - wanted by sequoia, rav1e, rustc-1.66.1 (is this right?) + # doCheck = false; + # # upstream sets this with `rec`; TODO: have upstream refer to the final overrideAttrs version of the derivation instead of using rec. + # cmakeFlags = next.lib.remove "-DLLVM_BUILD_TESTS=ON" upstream.cmakeFlags; + # }); + # }); + # in + # # see + # # - we copy their strategy / attrset mutilation + # prev.llvmPackages_12 // { inherit tools; } // tools; - llvmPackages_14 = - let - tools = prev.llvmPackages_14.tools.extend (self: super: { - libllvm = super.libllvm.overrideAttrs (upstream: { - # 2023/02/21: fix: "FAIL: LLVM-Unit :: ExecutionEngine/MCJIT/./MCJITTests/MCJITMultipleModuleTest.two_module_global_variables_case (43769 of 46988)" - # - nix log /nix/store/ib2yw6sajnhlmibxkrn7lj7chllbr85h-llvm-14.0.6.drv - # - wanted by clang-11-12-LLVMgold-path, compiler-rt-libc-12.0.1, clang-wrapper-12.0.1 (is this right?) - doCheck = false; - # upstream sets this with `rec`; TODO: have upstream refer to the final overrideAttrs version of the derivation instead of using rec. - cmakeFlags = next.lib.remove "-DLLVM_BUILD_TESTS=ON" upstream.cmakeFlags; - }); - }); - in - # see - # - we copy their strategy / attrset mutilation - prev.llvmPackages_14 // { inherit tools; } // tools; + # llvmPackages_14 = + # let + # tools = prev.llvmPackages_14.tools.extend (self: super: { + # libllvm = super.libllvm.overrideAttrs (upstream: { + # # 2023/02/21: fix: "FAIL: LLVM-Unit :: ExecutionEngine/MCJIT/./MCJITTests/MCJITMultipleModuleTest.two_module_global_variables_case (43769 of 46988)" + # # - nix log /nix/store/ib2yw6sajnhlmibxkrn7lj7chllbr85h-llvm-14.0.6.drv + # # - wanted by clang-11-12-LLVMgold-path, compiler-rt-libc-12.0.1, clang-wrapper-12.0.1 (is this right?) + # doCheck = false; + # # upstream sets this with `rec`; TODO: have upstream refer to the final overrideAttrs version of the derivation instead of using rec. + # cmakeFlags = next.lib.remove "-DLLVM_BUILD_TESTS=ON" upstream.cmakeFlags; + # }); + # }); + # in + # # see + # # - we copy their strategy / attrset mutilation + # prev.llvmPackages_14 // { inherit tools; } // tools; - llvmPackages_15 = - let - tools = prev.llvmPackages_15.tools.extend (self: super: { - libllvm = super.libllvm.override { - # 2023/02/21: fix: "FAIL: LLVM-Unit :: ExecutionEngine/MCJIT/./MCJITTests/..." - # llvm15 passes doCheck as a call arg, so we don't need to set cmakeFlags explicitly as in previous versions - doCheck = false; - }; - }); - in - prev.llvmPackages_15 // { inherit tools; } // tools; + # llvmPackages_15 = + # let + # tools = prev.llvmPackages_15.tools.extend (self: super: { + # libllvm = super.libllvm.override { + # # 2023/02/21: fix: "FAIL: LLVM-Unit :: ExecutionEngine/MCJIT/./MCJITTests/..." + # # llvm15 passes doCheck as a call arg, so we don't need to set cmakeFlags explicitly as in previous versions + # doCheck = false; + # }; + # }); + # in + # prev.llvmPackages_15 // { inherit tools; } // tools; - modemmanager = prev.modemmanager.overrideAttrs (_upstream: { - # 2023/02/25 - # "ERROR:test-modem-helpers.c:257:test_cmgl_response: assertion failed: (list != NULL)" - doCheck = false; - doInstallCheck = false; # tests are run during install check?? - }); + # modemmanager = prev.modemmanager.overrideAttrs (_upstream: { + # # 2023/02/25 + # # "ERROR:test-modem-helpers.c:257:test_cmgl_response: assertion failed: (list != NULL)" + # doCheck = false; + # doInstallCheck = false; # tests are run during install check?? + # }); pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ (py-next: py-prev: { - ipython = py-prev.ipython.overridePythonAttrs (upstream: { - # > FAILED IPython/core/tests/test_debugger.py::test_xmode_skip - pexpect.exceptions.TIMEOUT: Timeout exceeded. - # > FAILED IPython/core/tests/test_debugger.py::test_decorator_skip - pexpect.exceptions.TIMEOUT: Timeout exceeded. - # > FAILED IPython/core/tests/test_debugger.py::test_decorator_skip_disabled - pexpect.exceptions.TIMEOUT: Timeout exceeded. - # > FAILED IPython/core/tests/test_debugger.py::test_decorator_skip_with_breakpoint - pexpect.exceptions.TIMEOUT: Timeout exceeded. - # > FAILED IPython/core/tests/test_debugger.py::test_where_erase_value - pexpect.exceptions.TIMEOUT: Timeout exceeded. - # > FAILED IPython/terminal/tests/test_debug_magic.py::test_debug_magic_passes_through_generators - pexpect.exceptions.TIMEOUT: Timeout exceeded. - # > FAILED IPython/terminal/tests/test_embed.py::test_nest_embed - pexpect.exceptions.TIMEOUT: Timeout exceeded. + # ipython = py-prev.ipython.overridePythonAttrs (upstream: { + # # > FAILED IPython/core/tests/test_debugger.py::test_xmode_skip - pexpect.exceptions.TIMEOUT: Timeout exceeded. + # # > FAILED IPython/core/tests/test_debugger.py::test_decorator_skip - pexpect.exceptions.TIMEOUT: Timeout exceeded. + # # > FAILED IPython/core/tests/test_debugger.py::test_decorator_skip_disabled - pexpect.exceptions.TIMEOUT: Timeout exceeded. + # # > FAILED IPython/core/tests/test_debugger.py::test_decorator_skip_with_breakpoint - pexpect.exceptions.TIMEOUT: Timeout exceeded. + # # > FAILED IPython/core/tests/test_debugger.py::test_where_erase_value - pexpect.exceptions.TIMEOUT: Timeout exceeded. + # # > FAILED IPython/terminal/tests/test_debug_magic.py::test_debug_magic_passes_through_generators - pexpect.exceptions.TIMEOUT: Timeout exceeded. + # # > FAILED IPython/terminal/tests/test_embed.py::test_nest_embed - pexpect.exceptions.TIMEOUT: Timeout exceeded. + # disabledTestPaths = upstream.disabledTestPaths or [] ++ [ + # "IPython/core/tests/test_debugger.py" + # "IPython/terminal/tests/test_debug_magic.py" + # "IPython/terminal/tests/test_embed.py" + # ]; + # }); + pyarrow = py-prev.pyarrow.overridePythonAttrs (upstream: { + # 2023/04/02 + # disabledTests = upstream.disabledTests ++ [ "test_generic_options" ]; disabledTestPaths = upstream.disabledTestPaths or [] ++ [ - "IPython/core/tests/test_debugger.py" - "IPython/terminal/tests/test_debug_magic.py" - "IPython/terminal/tests/test_embed.py" + "pyarrow/tests/test_flight.py" ]; }); - pytest-xdist = py-prev.pytest-xdist.overridePythonAttrs (upstream: { - # 2023/02/19 - # 4 tests fail: - # - FAILED: testing/test_remote.py::TestWorkInteractor::* - execnet.gateway_base.TimeoutError: no item after 10.0 seconds - # doCheck = false; - disabledTestPaths = upstream.disabledTestPaths or [] ++ [ - "testing/test_remote.py" - ]; - # disabledTests = upstream.disabledTests or [] ++ [ - # "test_basic_collect_and_runtests" - # "test_remote_collect_fail" - # "test_remote_collect_skip" - # "test_runtests_all" - # ]; - }); - twisted = py-prev.twisted.overridePythonAttrs (upstream: { - # 2023/02/25 - # ``` - # [ERROR] - # Traceback (most recent call last): - # File "/nix/store/dcnsxrn8rsfk1dghah7md5glbbnfysq3-python3.10-twisted-22.10.0/lib/python3.10/site-packages/twisted/test/test_udp.py", line 645, in test_interface - # self.assertEqual(self.client.transport.getOutgoingInterface(), "0.0.0.0") - # File "/nix/store/dcnsxrn8rsfk1dghah7md5glbbnfysq3-python3.10-twisted-22.10.0/lib/python3.10/site-packages/twisted/internet/udp.py", line 449, in getOutgoingInterface - # i = self.socket.getsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF) - # builtins.OSError: [Errno 92] Protocol not available - # - # twisted.test.test_udp.MulticastTests.test_interface - # ``` - postPatch = upstream.postPatch + '' - echo 'MulticastTests.test_interface.skip = "Protocol not available"'>> src/twisted/test/test_udp.py - ''; - }); + # pytest-xdist = py-prev.pytest-xdist.overridePythonAttrs (upstream: { + # # 2023/02/19 + # # 4 tests fail: + # # - FAILED: testing/test_remote.py::TestWorkInteractor::* - execnet.gateway_base.TimeoutError: no item after 10.0 seconds + # # doCheck = false; + # disabledTestPaths = upstream.disabledTestPaths or [] ++ [ + # "testing/test_remote.py" + # ]; + # # disabledTests = upstream.disabledTests or [] ++ [ + # # "test_basic_collect_and_runtests" + # # "test_remote_collect_fail" + # # "test_remote_collect_skip" + # # "test_runtests_all" + # # ]; + # }); + # twisted = py-prev.twisted.overridePythonAttrs (upstream: { + # # 2023/02/25 + # # ``` + # # [ERROR] + # # Traceback (most recent call last): + # # File "/nix/store/dcnsxrn8rsfk1dghah7md5glbbnfysq3-python3.10-twisted-22.10.0/lib/python3.10/site-packages/twisted/test/test_udp.py", line 645, in test_interface + # # self.assertEqual(self.client.transport.getOutgoingInterface(), "0.0.0.0") + # # File "/nix/store/dcnsxrn8rsfk1dghah7md5glbbnfysq3-python3.10-twisted-22.10.0/lib/python3.10/site-packages/twisted/internet/udp.py", line 449, in getOutgoingInterface + # # i = self.socket.getsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF) + # # builtins.OSError: [Errno 92] Protocol not available + # # + # # twisted.test.test_udp.MulticastTests.test_interface + # # ``` + # postPatch = upstream.postPatch + '' + # echo 'MulticastTests.test_interface.skip = "Protocol not available"'>> src/twisted/test/test_udp.py + # ''; + # }); }) ]; - strp = prev.srtp.overrideAttrs (_upstream: { - # 2023/02/11 - # roc_driver test times out after 30s - doCheck = false; - }); + + # strp = prev.srtp.overrideAttrs (_upstream: { + # # 2023/02/11 + # # roc_driver test times out after 30s + # doCheck = false; + # }); tracker = prev.tracker.overrideAttrs (_upstream: { # 2023/02/22 # "27/37 tracker:core / service TIMEOUT 60.37s killed by signal 15 SIGTERM" doCheck = false; }); - udisks2 = prev.udisks2.overrideAttrs (_upstream: { - # 2023/02/25 - # "udisks-test:ERROR:test.c:61:on_completed_expect_failure: assertion failed (message == expected_message): ("Command-line `./udisks-test-helper 4' was signaled with signal SIGSEGV (11):\nstdout: `OK, deliberately causing a segfault\n'\nstderr: `qemu: uncaught target signal 11 (Segmentation fault) - core dumped\n'" == "Command-line `./udisks-test-helper 4' was signaled with signal SIGSEGV (11): OK, deliberately causing a segfault\n")" - doCheck = false; - }); - upower = prev.upower.overrideAttrs (_upstream: { - # 2023/02/25 - # "Tests.test_battery_state_guessing TIMEOUT 60.80s killed by signal 15 SIGTERM" - doCheck = false; - }); + # udisks2 = prev.udisks2.overrideAttrs (_upstream: { + # # 2023/02/25 + # # "udisks-test:ERROR:test.c:61:on_completed_expect_failure: assertion failed (message == expected_message): ("Command-line `./udisks-test-helper 4' was signaled with signal SIGSEGV (11):\nstdout: `OK, deliberately causing a segfault\n'\nstderr: `qemu: uncaught target signal 11 (Segmentation fault) - core dumped\n'" == "Command-line `./udisks-test-helper 4' was signaled with signal SIGSEGV (11): OK, deliberately causing a segfault\n")" + # doCheck = false; + # }); + # upower = prev.upower.overrideAttrs (_upstream: { + # # 2023/02/25 + # # "Tests.test_battery_state_guessing TIMEOUT 60.80s killed by signal 15 SIGTERM" + # doCheck = false; + # }); })