forked from mirrors/nixpkgs
nixos/testing: restrict arguments to makeTest
Disallow passing arbitrary arguments to makeTest since they are not used; this can help catch mistakes.
This commit is contained in:
parent
9077b1a631
commit
79a234567c
|
@ -146,26 +146,28 @@ rec {
|
|||
|
||||
# Make a full-blown test
|
||||
makeTest =
|
||||
{ testScript
|
||||
{ machine ? null
|
||||
, nodes ? {}
|
||||
, testScript
|
||||
, enableOCR ? false
|
||||
, name ? "unnamed"
|
||||
# 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 t.meta.description or null != null
|
||||
then builtins.unsafeGetAttrPos "description" t.meta
|
||||
(if meta.description or null != null
|
||||
then builtins.unsafeGetAttrPos "description" meta
|
||||
else builtins.unsafeGetAttrPos "testScript" t)
|
||||
, ...
|
||||
} @ t:
|
||||
let
|
||||
nodes = qemu_pkg:
|
||||
mkNodes = qemu_pkg:
|
||||
let
|
||||
testScript' =
|
||||
# Call the test script with the computed nodes.
|
||||
if lib.isFunction testScript
|
||||
then testScript { nodes = nodes qemu_pkg; }
|
||||
then testScript { nodes = mkNodes qemu_pkg; }
|
||||
else testScript;
|
||||
|
||||
build-vms = import ./build-vms.nix {
|
||||
|
@ -205,33 +207,34 @@ rec {
|
|||
};
|
||||
in
|
||||
build-vms.buildVirtualNetwork (
|
||||
t.nodes or (if t ? machine then { machine = t.machine; } else { })
|
||||
nodes // lib.optionalAttrs (machine != null) { inherit machine; }
|
||||
);
|
||||
|
||||
driver = setupDriverForTest {
|
||||
inherit testScript enableOCR skipLint passthru;
|
||||
testName = name;
|
||||
qemu_pkg = pkgs.qemu_test;
|
||||
nodes = nodes pkgs.qemu_test;
|
||||
nodes = mkNodes pkgs.qemu_test;
|
||||
};
|
||||
driverInteractive = setupDriverForTest {
|
||||
inherit testScript enableOCR skipLint passthru;
|
||||
testName = name;
|
||||
qemu_pkg = pkgs.qemu;
|
||||
nodes = nodes pkgs.qemu;
|
||||
nodes = mkNodes pkgs.qemu;
|
||||
interactive = true;
|
||||
};
|
||||
|
||||
test =
|
||||
let
|
||||
passMeta = drv: drv // lib.optionalAttrs (t ? meta) {
|
||||
meta = (drv.meta or { }) // t.meta;
|
||||
passMeta = drv: drv // lib.optionalAttrs (meta != {}) {
|
||||
meta = (drv.meta or { }) // meta;
|
||||
};
|
||||
in passMeta (runTests { inherit driver pos driverInteractive; });
|
||||
|
||||
in
|
||||
test // {
|
||||
inherit test driver driverInteractive nodes;
|
||||
inherit test driver driverInteractive;
|
||||
inherit (driver) nodes;
|
||||
};
|
||||
|
||||
abortForFunction = functionName: abort ''The ${functionName} function was
|
||||
|
|
|
@ -33613,7 +33613,7 @@ with pkgs;
|
|||
then import test
|
||||
else test;
|
||||
calledTest = if lib.isFunction loadedTest
|
||||
then callPackage loadedTest {}
|
||||
then loadedTest { inherit pkgs lib; }
|
||||
else loadedTest;
|
||||
in
|
||||
nixosTesting.makeTest calledTest;
|
||||
|
|
Loading…
Reference in a new issue