diff options
Diffstat (limited to 'nixos/doc/manual/from_md/development/running-nixos-tests-interactively.section.xml')
-rw-r--r-- | nixos/doc/manual/from_md/development/running-nixos-tests-interactively.section.xml | 104 |
1 files changed, 0 insertions, 104 deletions
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 deleted file mode 100644 index 30aa24f26e632..0000000000000 --- a/nixos/doc/manual/from_md/development/running-nixos-tests-interactively.section.xml +++ /dev/null @@ -1,104 +0,0 @@ -<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-running-nixos-tests-interactively"> - <title>Running Tests interactively</title> - <para> - The test itself can be run interactively. This is particularly - useful when developing or debugging a test: - </para> - <programlisting> -$ nix-build . -A nixosTests.login.driverInteractive -$ ./result/bin/nixos-test-driver -[...] ->>> -</programlisting> - <para> - You can then take any Python statement, e.g. - </para> - <programlisting language="python"> ->>> start_all() ->>> test_script() ->>> machine.succeed("touch /tmp/foo") ->>> print(machine.succeed("pwd")) # Show stdout of command -</programlisting> - <para> - The function <literal>test_script</literal> executes the entire test - script and drops you back into the test driver command line upon its - completion. This allows you to inspect the state of the VMs after - the test (e.g. to debug the test script). - </para> - <section xml:id="sec-nixos-test-shell-access"> - <title>Shell access in interactive mode</title> - <para> - The function - <literal><yourmachine>.shell_interact()</literal> grants - access to a shell running inside a virtual machine. To use it, - replace <literal><yourmachine></literal> with the name of a - virtual machine defined in the test, for example: - <literal>machine.shell_interact()</literal>. Keep in mind that - this shell may not display everything correctly as it is running - within an interactive Python REPL, and logging output from the - virtual machine may overwrite input and output from the guest - shell: - </para> - <programlisting language="python"> ->>> machine.shell_interact() -machine: Terminal is ready (there is no initial prompt): -$ hostname -machine -</programlisting> - <para> - As an alternative, you can proxy the guest shell to a local TCP - server by first starting a TCP server in a terminal using the - command: - </para> - <programlisting> -$ socat 'READLINE,PROMPT=$ ' tcp-listen:4444,reuseaddr` -</programlisting> - <para> - In the terminal where the test driver is running, connect to this - server by using: - </para> - <programlisting language="python"> ->>> machine.shell_interact("tcp:127.0.0.1:4444") -</programlisting> - <para> - Once the connection is established, you can enter commands in the - socat terminal where socat is running. - </para> - </section> - <section xml:id="sec-nixos-test-reuse-vm-state"> - <title>Reuse VM state</title> - <para> - You can re-use the VM states coming from a previous run by setting - the <literal>--keep-vm-state</literal> flag. - </para> - <programlisting> -$ ./result/bin/nixos-test-driver --keep-vm-state -</programlisting> - <para> - The machine state is stored in the - <literal>$TMPDIR/vm-state-machinename</literal> directory. - </para> - </section> - <section xml:id="sec-nixos-test-interactive-configuration"> - <title>Interactive-only test configuration</title> - <para> - The <literal>.driverInteractive</literal> attribute combines the - regular test configuration with definitions from the - <link linkend="test-opt-interactive"><literal>interactive</literal> - submodule</link>. This gives you a more usable, graphical, but - slightly different configuration. - </para> - <para> - You can add your own interactive-only test configuration by adding - extra configuration to the - <link linkend="test-opt-interactive"><literal>interactive</literal> - submodule</link>. - </para> - <para> - To interactively run only the regular configuration, build the - <literal><test>.driver</literal> attribute instead, and call - it with the flag - <literal>result/bin/nixos-test-driver --interactive</literal>. - </para> - </section> -</section> |