Merge pull request #176581 from hercules-ci/hydra-nixos.tests.allDrivers

nixos/release.nix: Add `nixos.tests.allDrivers`
This commit is contained in:
Robert Hensing 2022-06-06 20:22:26 +02:00 committed by GitHub
commit 0858b1f26b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 17 deletions

View File

@ -17,6 +17,7 @@ let
# Run the tests for each platform. You can run a test by doing
# e.g. nix-build -A tests.login.x86_64-linux, or equivalently,
# nix-build tests/login.nix -A result.
# See also nixosTests in pkgs/top-level/all-packages.nix
allTestsForSystem = system:
import ./tests/all-tests.nix {
inherit system;
@ -24,7 +25,19 @@ let
callTest = t: {
${system} = hydraJob t.test;
};
} // {
# for typechecking of the scripts and evaluation of
# the nodes, without running VMs.
allDrivers =
import ./tests/all-tests.nix {
inherit system;
pkgs = import ./.. { inherit system; };
callTest = t: {
${system} = hydraJob t.test.driver;
};
};
};
allTests =
foldAttrs recursiveUpdate {} (map allTestsForSystem supportedSystems);

View File

@ -27,21 +27,7 @@ let
};
evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; };
allDrivers = getDrivers tests;
getDrivers = ts:
if isDerivation ts
then ts.driver or null
else if isAttrs ts
then recurseIntoAttrs (mapAttrs (k: getDrivers) ts)
else null;
tests = {
# for typechecking of the scripts and evaluation of
# the nodes, without running VMs.
inherit allDrivers;
in {
_3proxy = handleTest ./3proxy.nix {};
acme = handleTest ./acme.nix {};
adguardhome = handleTest ./adguardhome.nix {};
@ -634,5 +620,4 @@ let
zookeeper = handleTest ./zookeeper.nix {};
zrepl = handleTest ./zrepl.nix {};
zsh-history = handleTest ./zsh-history.nix {};
};
in tests
}

View File

@ -133,10 +133,19 @@ with pkgs;
### Push NixOS tests inside the fixed point
# See also allTestsForSystem in nixos/release.nix
nixosTests = import ../../nixos/tests/all-tests.nix {
inherit pkgs;
system = stdenv.hostPlatform.system;
callTest = t: t.test;
} // {
# for typechecking of the scripts and evaluation of
# the nodes, without running VMs.
allDrivers = import ../../nixos/tests/all-tests.nix {
inherit pkgs;
system = stdenv.hostPlatform.system;
callTest = t: t.test.driver;
};
};
### BUILD SUPPORT