From d4dc638d77fc31aaa3000090e50a69fa6096fb86 Mon Sep 17 00:00:00 2001 From: Patrick Hilhorst Date: Sun, 2 Jan 2022 23:48:56 +0100 Subject: [PATCH] nixos/test-driver: also passthru driverInteractive --- .../running-nixos-tests-interactively.section.md | 14 +++++++------- .../running-nixos-tests-interactively.section.xml | 14 +++++++------- nixos/lib/testing-python.nix | 6 +++--- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/nixos/doc/manual/development/running-nixos-tests-interactively.section.md b/nixos/doc/manual/development/running-nixos-tests-interactively.section.md index f87298201791..4c399586eb52 100644 --- a/nixos/doc/manual/development/running-nixos-tests-interactively.section.md +++ b/nixos/doc/manual/development/running-nixos-tests-interactively.section.md @@ -4,19 +4,19 @@ The test itself can be run interactively. This is particularly useful when developing or debugging a test: ```ShellSession -$ nix-build nixos/tests/login.nix -A driverInteractive +$ nix-build . -A nixosTests.login.driverInteractive $ ./result/bin/nixos-test-driver --interactive -starting VDE switch for network 1 -> +[...] +>>> ``` You can then take any Python statement, e.g. ```py -> start_all() -> test_script() -> machine.succeed("touch /tmp/foo") -> print(machine.succeed("pwd")) # Show stdout of command +>>> start_all() +>>> test_script() +>>> machine.succeed("touch /tmp/foo") +>>> print(machine.succeed("pwd")) # Show stdout of command ``` The function `test_script` executes the entire test script and drops you diff --git a/nixos/doc/manual/from_md/development/running-nixos-tests-interactively.section.xml b/nixos/doc/manual/from_md/development/running-nixos-tests-interactively.section.xml index 17003cbcbfdc..8348ab56deb3 100644 --- a/nixos/doc/manual/from_md/development/running-nixos-tests-interactively.section.xml +++ b/nixos/doc/manual/from_md/development/running-nixos-tests-interactively.section.xml @@ -5,19 +5,19 @@ useful when developing or debugging a test: -$ nix-build nixos/tests/login.nix -A driverInteractive +$ nix-build . -A nixosTests.login.driverInteractive $ ./result/bin/nixos-test-driver --interactive -starting VDE switch for network 1 -> +[...] +>>> You can then take any Python statement, e.g. -> start_all() -> test_script() -> machine.succeed("touch /tmp/foo") -> print(machine.succeed("pwd")) # Show stdout of command +>>> start_all() +>>> test_script() +>>> machine.succeed("touch /tmp/foo") +>>> print(machine.succeed("pwd")) # Show stdout of command The function test_script executes the entire test diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix index 365e22714573..a67040468136 100644 --- a/nixos/lib/testing-python.nix +++ b/nixos/lib/testing-python.nix @@ -17,7 +17,7 @@ rec { inherit pkgs; # Run an automated test suite in the given virtual network. - runTests = { driver, pos }: + runTests = { driver, driverInteractive, pos }: stdenv.mkDerivation { name = "vm-test-run-${driver.testName}"; @@ -34,7 +34,7 @@ rec { ''; passthru = driver.passthru // { - inherit driver; + inherit driver driverInteractive; }; inherit pos; # for better debugging @@ -224,7 +224,7 @@ rec { passMeta = drv: drv // lib.optionalAttrs (t ? meta) { meta = (drv.meta or { }) // t.meta; }; - in passMeta (runTests { inherit driver pos; }); + in passMeta (runTests { inherit driver pos driverInteractive; }); in test // {