101 lines
2.6 KiB
Nix
101 lines
2.6 KiB
Nix
args@{
|
|
system,
|
|
pkgs ? import ../.. { inherit system config; },
|
|
# Use a minimal kernel?
|
|
minimal ? false,
|
|
# Ignored
|
|
config ? { },
|
|
# !!! See comment about args in lib/modules.nix
|
|
specialArgs ? throw "legacy - do not use, see error below",
|
|
# Modules to add to each VM
|
|
extraConfigurations ? [ ],
|
|
}:
|
|
let
|
|
nixos-lib = import ./default.nix { inherit (pkgs) lib; };
|
|
in
|
|
|
|
pkgs.lib.throwIf (args ? specialArgs)
|
|
''
|
|
testing-python.nix: `specialArgs` is not supported anymore. If you're looking
|
|
for the public interface to the NixOS test framework, use `runTest`, and
|
|
`node.specialArgs`.
|
|
See https://nixos.org/manual/nixos/unstable/index.html#sec-calling-nixos-tests
|
|
and https://nixos.org/manual/nixos/unstable/index.html#test-opt-node.specialArgs
|
|
''
|
|
rec {
|
|
|
|
inherit pkgs;
|
|
|
|
evalTest =
|
|
module:
|
|
nixos-lib.evalTest {
|
|
imports = [
|
|
extraTestModule
|
|
module
|
|
];
|
|
};
|
|
runTest =
|
|
module:
|
|
nixos-lib.runTest {
|
|
imports = [
|
|
extraTestModule
|
|
module
|
|
];
|
|
};
|
|
|
|
extraTestModule = {
|
|
config = {
|
|
hostPkgs = pkgs;
|
|
};
|
|
};
|
|
|
|
# Make a full-blown test (legacy)
|
|
# For an official public interface to the tests, see
|
|
# https://nixos.org/manual/nixos/unstable/index.html#sec-calling-nixos-tests
|
|
makeTest =
|
|
{
|
|
machine ? null,
|
|
nodes ? { },
|
|
testScript,
|
|
enableOCR ? false,
|
|
globalTimeout ? (60 * 60),
|
|
name ? "unnamed",
|
|
skipTypeCheck ? false,
|
|
# Skip linting (mainly intended for faster dev cycles)
|
|
skipLint ? false,
|
|
passthru ? { },
|
|
meta ? { },
|
|
# For meta.position
|
|
pos ? # position used in error messages and for meta.position
|
|
(
|
|
if meta.description or null != null then
|
|
builtins.unsafeGetAttrPos "description" meta
|
|
else
|
|
builtins.unsafeGetAttrPos "testScript" t
|
|
),
|
|
extraPythonPackages ? (_: [ ]),
|
|
interactive ? { },
|
|
}@t:
|
|
let
|
|
testConfig =
|
|
(evalTest {
|
|
imports = [
|
|
{
|
|
_file = "makeTest parameters";
|
|
config = t;
|
|
}
|
|
{
|
|
defaults = {
|
|
_file = "makeTest: extraConfigurations";
|
|
imports = extraConfigurations;
|
|
};
|
|
}
|
|
];
|
|
}).config;
|
|
in
|
|
testConfig.test # For nix-build
|
|
// testConfig; # For all-tests.nix
|
|
|
|
simpleTest = as: (makeTest as).test;
|
|
|
|
}
|