diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py index 1720e553d733..0372148cb33c 100755 --- a/nixos/lib/test-driver/test-driver.py +++ b/nixos/lib/test-driver/test-driver.py @@ -1029,10 +1029,11 @@ if __name__ == "__main__": args = arg_parser.parse_args() global test_script + testscript = pathlib.Path(args.testscript).read_text() def test_script() -> None: with log.nested("running the VM test script"): - exec(pathlib.Path(args.testscript).read_text(), globals()) + exec(testscript, globals()) log = Logger() @@ -1061,7 +1062,8 @@ if __name__ == "__main__": process.terminate() log.close() + interactive = args.interactive or (not bool(testscript)) tic = time.time() - run_tests(args.interactive) + run_tests(interactive) toc = time.time() print("test script finished in {:.2f}s".format(toc - tic)) diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix index 6369d6ef05d4..e95ebe16ecac 100644 --- a/nixos/lib/testing-python.nix +++ b/nixos/lib/testing-python.nix @@ -186,6 +186,14 @@ rec { --set startScripts "''${vmStartScripts[*]}" \ --set testScript "$out/test-script" \ --set vlans '${toString vlans}' + + ${lib.optionalString (testScript == "") '' + ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms + wrapProgram $out/bin/nixos-run-vms \ + --set startScripts "''${vmStartScripts[*]}" \ + --set testScript "${pkgs.writeText "start-all" "start_all(); join_all();"}" \ + --set vlans '${toString vlans}' + ''} ''); # Make a full-blown test