Implement nixos-modules/static-page test
All checks were successful
CI / build (push) Successful in 2m40s
All checks were successful
CI / build (push) Successful in 2m40s
This commit is contained in:
parent
c3962b9738
commit
7930f9191d
10 changed files with 180 additions and 15 deletions
60
checks/nixos-modules/default.nix
Normal file
60
checks/nixos-modules/default.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
linkFarmFromDrvs,
|
||||
isFolderWithFile,
|
||||
getSubDirs,
|
||||
lib,
|
||||
testers,
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
filter
|
||||
path
|
||||
mkDefault
|
||||
readFile
|
||||
attrNames
|
||||
concatStringsSep
|
||||
pipe
|
||||
;
|
||||
modulesBaseDir = ../../nixos-modules;
|
||||
mkTest =
|
||||
name:
|
||||
let
|
||||
getFilePath = file: path.append modulesBaseDir "./${name}/${file}";
|
||||
in
|
||||
testers.runNixOSTest {
|
||||
inherit name;
|
||||
imports = [
|
||||
(import (getFilePath "test.nix") {
|
||||
inherit name;
|
||||
inherit lib;
|
||||
})
|
||||
];
|
||||
|
||||
defaults.imports = [ (getFilePath "default.nix") ];
|
||||
|
||||
# Calls a `test(...)` python function in the test's python file with the list of nodes and helper functions.
|
||||
# Helper symbols may be added as function args when needed and can be found in:
|
||||
# https://github.com/NixOS/nixpkgs/blob/master/nixos/lib/test-driver/src/test_driver/driver.py#L121
|
||||
testScript = mkDefault (
|
||||
{ nodes, ... }:
|
||||
let
|
||||
script = readFile (getFilePath "test.py");
|
||||
nodeArgs = pipe nodes [
|
||||
attrNames
|
||||
(map (val: "${val}=${val}"))
|
||||
(concatStringsSep ", ")
|
||||
];
|
||||
in
|
||||
''
|
||||
${script}
|
||||
test(${nodeArgs}, subtest=subtest)
|
||||
''
|
||||
);
|
||||
};
|
||||
in
|
||||
pipe modulesBaseDir [
|
||||
getSubDirs
|
||||
(filter (isFolderWithFile "test.nix" modulesBaseDir))
|
||||
(map mkTest)
|
||||
(linkFarmFromDrvs "nixos-modules")
|
||||
]
|
Loading…
Add table
Add a link
Reference in a new issue