summary refs log tree commit diff
path: root/nixos/doc/manual/from_md/development/running-nixos-tests-interactively.section.xml
diff options
context:
space:
mode:
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.xml104
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
-[...]
-&gt;&gt;&gt;
-</programlisting>
-  <para>
-    You can then take any Python statement, e.g.
-  </para>
-  <programlisting language="python">
-&gt;&gt;&gt; start_all()
-&gt;&gt;&gt; test_script()
-&gt;&gt;&gt; machine.succeed(&quot;touch /tmp/foo&quot;)
-&gt;&gt;&gt; print(machine.succeed(&quot;pwd&quot;)) # 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>&lt;yourmachine&gt;.shell_interact()</literal> grants
-      access to a shell running inside a virtual machine. To use it,
-      replace <literal>&lt;yourmachine&gt;</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">
-&gt;&gt;&gt; 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">
-&gt;&gt;&gt; machine.shell_interact(&quot;tcp:127.0.0.1:4444&quot;)
-</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>&lt;test&gt;.driver</literal> attribute instead, and call
-      it with the flag
-      <literal>result/bin/nixos-test-driver --interactive</literal>.
-    </para>
-  </section>
-</section>