nixosTest: fix meta.position

This commit is contained in:
Robert Hensing 2021-02-09 12:02:35 +01:00
parent 4787a38c70
commit cda907d895

View file

@ -55,7 +55,7 @@ rec {
# Run an automated test suite in the given virtual network. # Run an automated test suite in the given virtual network.
# `driver' is the script that runs the network. # `driver' is the script that runs the network.
runTests = driver: runTests = { driver, pos }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "vm-test-run-${driver.testName}"; name = "vm-test-run-${driver.testName}";
@ -69,6 +69,8 @@ rec {
''; '';
passthru = driver.passthru; passthru = driver.passthru;
inherit pos;
}; };
@ -79,6 +81,11 @@ rec {
# Skip linting (mainly intended for faster dev cycles) # Skip linting (mainly intended for faster dev cycles)
, skipLint ? false , skipLint ? false
, passthru ? {} , passthru ? {}
, # 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
else builtins.unsafeGetAttrPos "testScript" t)
, ... , ...
} @ t: } @ t:
let let
@ -176,7 +183,7 @@ rec {
driver = mkDriver null; driver = mkDriver null;
driverInteractive = mkDriver pkgs.qemu; driverInteractive = mkDriver pkgs.qemu;
test = passMeta (runTests driver); test = passMeta (runTests { inherit driver pos; });
nodeNames = builtins.attrNames driver.nodes; nodeNames = builtins.attrNames driver.nodes;
invalidNodeNames = lib.filter invalidNodeNames = lib.filter