tests: recurse into more attrs

This makes it so that our ci evals more tests and that hydra builds them, making it possible to catch more regressions.
This commit is contained in:
jopejoe1 2025-05-09 21:52:50 +02:00
parent 72a87bc217
commit 33964ab8ba
3 changed files with 54 additions and 44 deletions

View file

@ -456,7 +456,7 @@ recurseIntoAttrs {
); );
}; };
data = { data = recurseIntoAttrs {
json = expectDataEqual { json = expectDataEqual {
file = writeJSON "data.json" { hello = "world"; }; file = writeJSON "data.json" { hello = "world"; };
expected = '' expected = ''

View file

@ -71,9 +71,10 @@ let
mapMultiPlatformTest = mapMultiPlatformTest =
crossSystemFun: test: crossSystemFun: test:
lib.recurseIntoAttrs (
lib.mapAttrs ( lib.mapAttrs (
name: system: name: system:
test rec { lib.recurseIntoAttrs (test rec {
crossPkgs = import pkgs.path { crossPkgs = import pkgs.path {
localSystem = { inherit (pkgs.stdenv.hostPlatform) config; }; localSystem = { inherit (pkgs.stdenv.hostPlatform) config; };
crossSystem = crossSystemFun system; crossSystem = crossSystemFun system;
@ -93,8 +94,9 @@ let
} }
else else
pkg; pkg;
} })
) testedSystems; ) testedSystems
);
tests = { tests = {
@ -214,8 +216,12 @@ let
in in
{ {
gcc = (lib.mapAttrs (_: mapMultiPlatformTest (system: system // { useLLVM = false; })) tests); gcc = lib.recurseIntoAttrs (
llvm = (lib.mapAttrs (_: mapMultiPlatformTest (system: system // { useLLVM = true; })) tests); lib.mapAttrs (_: mapMultiPlatformTest (system: system // { useLLVM = false; })) tests
);
llvm = lib.recurseIntoAttrs (
lib.mapAttrs (_: mapMultiPlatformTest (system: system // { useLLVM = true; })) tests
);
inherit mbuffer sanity; inherit mbuffer sanity;
} }

View file

@ -87,13 +87,13 @@ with pkgs;
}; };
llvmTests = recurseIntoAttrs llvmTests; llvmTests = recurseIntoAttrs llvmTests;
inherit gccTests; gccTests = recurseIntoAttrs gccTests;
}; };
devShellTools = callPackage ../build-support/dev-shell-tools/tests { }; devShellTools = callPackage ../build-support/dev-shell-tools/tests { };
stdenv-inputs = callPackage ./stdenv-inputs { }; stdenv-inputs = callPackage ./stdenv-inputs { };
stdenv = callPackage ./stdenv { }; stdenv = recurseIntoAttrs (callPackage ./stdenv { });
hardeningFlags = recurseIntoAttrs (callPackage ./cc-wrapper/hardening.nix { }); hardeningFlags = recurseIntoAttrs (callPackage ./cc-wrapper/hardening.nix { });
hardeningFlags-gcc = recurseIntoAttrs ( hardeningFlags-gcc = recurseIntoAttrs (
@ -113,24 +113,28 @@ with pkgs;
haskell = callPackage ./haskell { }; haskell = callPackage ./haskell { };
hooks = callPackage ./hooks { }; hooks = recurseIntoAttrs (callPackage ./hooks { });
cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; }; cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; }; cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; };
compress-drv = callPackage ../build-support/compress-drv/test.nix { }; compress-drv = callPackage ../build-support/compress-drv/test.nix { };
fetchurl = callPackages ../build-support/fetchurl/tests.nix { }; fetchurl = recurseIntoAttrs (callPackages ../build-support/fetchurl/tests.nix { });
fetchtorrent = callPackages ../build-support/fetchtorrent/tests.nix { }; fetchtorrent = recurseIntoAttrs (callPackages ../build-support/fetchtorrent/tests.nix { });
fetchpatch = callPackages ../build-support/fetchpatch/tests.nix { }; fetchpatch = recurseIntoAttrs (callPackages ../build-support/fetchpatch/tests.nix { });
fetchpatch2 = callPackages ../build-support/fetchpatch/tests.nix { fetchpatch = fetchpatch2; }; fetchpatch2 = recurseIntoAttrs (
fetchDebianPatch = callPackages ../build-support/fetchdebianpatch/tests.nix { }; callPackages ../build-support/fetchpatch/tests.nix { fetchpatch = fetchpatch2; }
fetchzip = callPackages ../build-support/fetchzip/tests.nix { }; );
fetchgit = callPackages ../build-support/fetchgit/tests.nix { }; fetchDebianPatch = recurseIntoAttrs (callPackages ../build-support/fetchdebianpatch/tests.nix { });
fetchFirefoxAddon = callPackages ../build-support/fetchfirefoxaddon/tests.nix { }; fetchzip = recurseIntoAttrs (callPackages ../build-support/fetchzip/tests.nix { });
fetchPypiLegacy = callPackages ../build-support/fetchpypilegacy/tests.nix { }; fetchgit = recurseIntoAttrs (callPackages ../build-support/fetchgit/tests.nix { });
fetchFirefoxAddon = recurseIntoAttrs (
callPackages ../build-support/fetchfirefoxaddon/tests.nix { }
);
fetchPypiLegacy = recurseIntoAttrs (callPackages ../build-support/fetchpypilegacy/tests.nix { });
install-shell-files = callPackage ./install-shell-files { }; install-shell-files = recurseIntoAttrs (callPackage ./install-shell-files { });
checkpointBuildTools = callPackage ./checkpointBuild { }; checkpointBuildTools = callPackage ./checkpointBuild { };
@ -138,7 +142,7 @@ with pkgs;
ld-library-path = callPackage ./ld-library-path { }; ld-library-path = callPackage ./ld-library-path { };
cross = callPackage ./cross { }; cross = recurseIntoAttrs (callPackage ./cross { });
php = recurseIntoAttrs (callPackages ./php { }); php = recurseIntoAttrs (callPackages ./php { });
@ -146,18 +150,18 @@ with pkgs;
__recurseIntoDerivationForReleaseJobs = true; __recurseIntoDerivationForReleaseJobs = true;
}; };
buildRustCrate = callPackage ../build-support/rust/build-rust-crate/test { }; buildRustCrate = recurseIntoAttrs (callPackage ../build-support/rust/build-rust-crate/test { });
importCargoLock = callPackage ../build-support/rust/test/import-cargo-lock { }; importCargoLock = recurseIntoAttrs (callPackage ../build-support/rust/test/import-cargo-lock { });
vim = callPackage ./vim { }; vim = callPackage ./vim { };
nixos-functions = callPackage ./nixos-functions { }; nixos-functions = callPackage ./nixos-functions { };
nixosOptionsDoc = callPackage ../../nixos/lib/make-options-doc/tests.nix { }; nixosOptionsDoc = recurseIntoAttrs (callPackage ../../nixos/lib/make-options-doc/tests.nix { });
overriding = callPackage ./overriding.nix { }; overriding = callPackage ./overriding.nix { };
texlive = callPackage ./texlive { }; texlive = recurseIntoAttrs (callPackage ./texlive { });
cuda = callPackage ./cuda { }; cuda = callPackage ./cuda { };
@ -175,7 +179,7 @@ with pkgs;
dotnet = recurseIntoAttrs (callPackages ./dotnet { }); dotnet = recurseIntoAttrs (callPackages ./dotnet { });
makeHardcodeGsettingsPatch = callPackage ./make-hardcode-gsettings-patch { }; makeHardcodeGsettingsPatch = recurseIntoAttrs (callPackage ./make-hardcode-gsettings-patch { });
makeWrapper = callPackage ./make-wrapper { }; makeWrapper = callPackage ./make-wrapper { };
makeBinaryWrapper = callPackage ./make-binary-wrapper { makeBinaryWrapper = callPackage ./make-binary-wrapper {