Merge pull request #9105 from Ericson2314/split-out-nixos-tests
Define NixOS tests in `tests/nixos/default.nix` rather than `flake.nix` (cherry picked from commit c29b8ba142a0650d1182ca838ddc1b2d273dcd2a) Change-Id: Ieae1b6476d95024485df7067e008013bc5542039
This commit is contained in:
parent
5bda6d9dc8
commit
2e1f5e2666
2 changed files with 62 additions and 53 deletions
74
flake.nix
74
flake.nix
|
@ -512,18 +512,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nixos-lib = import (nixpkgs + "/nixos/lib") { };
|
|
||||||
|
|
||||||
# https://nixos.org/manual/nixos/unstable/index.html#sec-calling-nixos-tests
|
|
||||||
runNixOSTestFor = system: test: nixos-lib.runTest {
|
|
||||||
imports = [ test ];
|
|
||||||
hostPkgs = nixpkgsFor.${system}.native;
|
|
||||||
defaults = {
|
|
||||||
nixpkgs.pkgs = nixpkgsFor.${system}.native;
|
|
||||||
};
|
|
||||||
_module.args.nixpkgs = nixpkgs;
|
|
||||||
};
|
|
||||||
|
|
||||||
in {
|
in {
|
||||||
# A Nixpkgs overlay that overrides the 'nix' and
|
# A Nixpkgs overlay that overrides the 'nix' and
|
||||||
# 'nix.perl-bindings' packages.
|
# 'nix.perl-bindings' packages.
|
||||||
|
@ -632,49 +620,29 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
# System tests.
|
# System tests.
|
||||||
tests.authorization = runNixOSTestFor "x86_64-linux" ./tests/nixos/authorization.nix;
|
tests = import ./tests/nixos { inherit lib nixpkgs nixpkgsFor; } // {
|
||||||
|
|
||||||
tests.remoteBuilds = runNixOSTestFor "x86_64-linux" ./tests/nixos/remote-builds.nix;
|
# Make sure that nix-env still produces the exact same result
|
||||||
|
# on a particular version of Nixpkgs.
|
||||||
|
evalNixpkgs =
|
||||||
|
with nixpkgsFor.x86_64-linux.native;
|
||||||
|
runCommand "eval-nixos" { buildInputs = [ nix ]; }
|
||||||
|
''
|
||||||
|
type -p nix-env
|
||||||
|
# Note: we're filtering out nixos-install-tools because https://github.com/NixOS/nixpkgs/pull/153594#issuecomment-1020530593.
|
||||||
|
time nix-env --store dummy:// -f ${nixpkgs-regression} -qaP --drv-path | sort | grep -v nixos-install-tools > packages
|
||||||
|
[[ $(sha1sum < packages | cut -c1-40) = ff451c521e61e4fe72bdbe2d0ca5d1809affa733 ]]
|
||||||
|
mkdir $out
|
||||||
|
'';
|
||||||
|
|
||||||
tests.nix-copy-closure = runNixOSTestFor "x86_64-linux" ./tests/nixos/nix-copy-closure.nix;
|
nixpkgsLibTests =
|
||||||
|
forAllSystems (system:
|
||||||
tests.nix-copy = runNixOSTestFor "x86_64-linux" ./tests/nixos/nix-copy.nix;
|
import (nixpkgs + "/lib/tests/release.nix")
|
||||||
|
{ pkgs = nixpkgsFor.${system}.native;
|
||||||
tests.nssPreload = runNixOSTestFor "x86_64-linux" ./tests/nixos/nss-preload.nix;
|
nixVersions = [ self.packages.${system}.nix ];
|
||||||
|
}
|
||||||
tests.githubFlakes = runNixOSTestFor "x86_64-linux" ./tests/nixos/github-flakes.nix;
|
);
|
||||||
|
};
|
||||||
tests.sourcehutFlakes = runNixOSTestFor "x86_64-linux" ./tests/nixos/sourcehut-flakes.nix;
|
|
||||||
|
|
||||||
tests.tarballFlakes = runNixOSTestFor "x86_64-linux" ./tests/nixos/tarball-flakes.nix;
|
|
||||||
|
|
||||||
tests.containers = runNixOSTestFor "x86_64-linux" ./tests/nixos/containers/containers.nix;
|
|
||||||
|
|
||||||
tests.setuid = lib.genAttrs
|
|
||||||
["i686-linux" "x86_64-linux"]
|
|
||||||
(system: runNixOSTestFor system ./tests/nixos/setuid.nix);
|
|
||||||
|
|
||||||
|
|
||||||
# Make sure that nix-env still produces the exact same result
|
|
||||||
# on a particular version of Nixpkgs.
|
|
||||||
tests.evalNixpkgs =
|
|
||||||
with nixpkgsFor.x86_64-linux.native;
|
|
||||||
runCommand "eval-nixos" { buildInputs = [ nix ]; }
|
|
||||||
''
|
|
||||||
type -p nix-env
|
|
||||||
# Note: we're filtering out nixos-install-tools because https://github.com/NixOS/nixpkgs/pull/153594#issuecomment-1020530593.
|
|
||||||
time nix-env --store dummy:// -f ${nixpkgs-regression} -qaP --drv-path | sort | grep -v nixos-install-tools > packages
|
|
||||||
[[ $(sha1sum < packages | cut -c1-40) = ff451c521e61e4fe72bdbe2d0ca5d1809affa733 ]]
|
|
||||||
mkdir $out
|
|
||||||
'';
|
|
||||||
|
|
||||||
tests.nixpkgsLibTests =
|
|
||||||
forAllSystems (system:
|
|
||||||
import (nixpkgs + "/lib/tests/release.nix")
|
|
||||||
{ pkgs = nixpkgsFor.${system}.native;
|
|
||||||
nixVersions = [ self.packages.${system}.nix ];
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
metrics.nixpkgs = import "${nixpkgs-regression}/pkgs/top-level/metrics.nix" {
|
metrics.nixpkgs = import "${nixpkgs-regression}/pkgs/top-level/metrics.nix" {
|
||||||
pkgs = nixpkgsFor.x86_64-linux.native;
|
pkgs = nixpkgsFor.x86_64-linux.native;
|
||||||
|
|
41
tests/nixos/default.nix
Normal file
41
tests/nixos/default.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{ lib, nixpkgs, nixpkgsFor }:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
nixos-lib = import (nixpkgs + "/nixos/lib") { };
|
||||||
|
|
||||||
|
# https://nixos.org/manual/nixos/unstable/index.html#sec-calling-nixos-tests
|
||||||
|
runNixOSTestFor = system: test: nixos-lib.runTest {
|
||||||
|
imports = [ test ];
|
||||||
|
hostPkgs = nixpkgsFor.${system}.native;
|
||||||
|
defaults = {
|
||||||
|
nixpkgs.pkgs = nixpkgsFor.${system}.native;
|
||||||
|
};
|
||||||
|
_module.args.nixpkgs = nixpkgs;
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
authorization = runNixOSTestFor "x86_64-linux" ./authorization.nix;
|
||||||
|
|
||||||
|
remoteBuilds = runNixOSTestFor "x86_64-linux" ./remote-builds.nix;
|
||||||
|
|
||||||
|
nix-copy-closure = runNixOSTestFor "x86_64-linux" ./nix-copy-closure.nix;
|
||||||
|
|
||||||
|
nix-copy = runNixOSTestFor "x86_64-linux" ./nix-copy.nix;
|
||||||
|
|
||||||
|
nssPreload = runNixOSTestFor "x86_64-linux" ./nss-preload.nix;
|
||||||
|
|
||||||
|
githubFlakes = runNixOSTestFor "x86_64-linux" ./github-flakes.nix;
|
||||||
|
|
||||||
|
sourcehutFlakes = runNixOSTestFor "x86_64-linux" ./sourcehut-flakes.nix;
|
||||||
|
|
||||||
|
tarballFlakes = runNixOSTestFor "x86_64-linux" ./tarball-flakes.nix;
|
||||||
|
|
||||||
|
containers = runNixOSTestFor "x86_64-linux" ./containers/containers.nix;
|
||||||
|
|
||||||
|
setuid = lib.genAttrs
|
||||||
|
["i686-linux" "x86_64-linux"]
|
||||||
|
(system: runNixOSTestFor system ./setuid.nix);
|
||||||
|
}
|
Loading…
Reference in a new issue