summary refs log tree commit diff
path: root/nixos/doc/manual
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2021-11-06 13:05:12 +0100
committerRobert Hensing <robert@roberthensing.nl>2021-11-06 13:46:51 +0100
commit2a4d433b1f194595c819cec88361a1e402ebadb8 (patch)
treef882b1233cfc476cbb5763c39033fa0f0c7c09f1 /nixos/doc/manual
parentac971cdc544955ac1d590182aeb25c4c8cacd46e (diff)
downloadnixpkgs-2a4d433b1f194595c819cec88361a1e402ebadb8.tar
nixpkgs-2a4d433b1f194595c819cec88361a1e402ebadb8.tar.gz
nixpkgs-2a4d433b1f194595c819cec88361a1e402ebadb8.tar.bz2
nixpkgs-2a4d433b1f194595c819cec88361a1e402ebadb8.tar.lz
nixpkgs-2a4d433b1f194595c819cec88361a1e402ebadb8.tar.xz
nixpkgs-2a4d433b1f194595c819cec88361a1e402ebadb8.tar.zst
nixpkgs-2a4d433b1f194595c819cec88361a1e402ebadb8.zip
nixosTest: Add xclip as example of stdout blocker
Diffstat (limited to 'nixos/doc/manual')
-rw-r--r--nixos/doc/manual/development/writing-nixos-tests.section.md7
-rw-r--r--nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml11
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2111.section.xml7
-rw-r--r--nixos/doc/manual/release-notes/rl-2111.section.md2
4 files changed, 18 insertions, 9 deletions
diff --git a/nixos/doc/manual/development/writing-nixos-tests.section.md b/nixos/doc/manual/development/writing-nixos-tests.section.md
index a8c54aa6676..d9749d37da7 100644
--- a/nixos/doc/manual/development/writing-nixos-tests.section.md
+++ b/nixos/doc/manual/development/writing-nixos-tests.section.md
@@ -162,7 +162,9 @@ The following methods are available on machine objects:
     If the command detaches, it must close stdout, as `execute` will wait
     for this to consume all output reliably. This can be achieved by
     redirecting stdout to stderr `>&2`, to `/dev/console`, `/dev/null` or
-    a file.
+    a file. Examples of detaching commands are `sleep 365d &`, where the
+    shell forks a new process that can write to stdout and `xclip -i`, where
+    the `xclip` command itself forks without closing stdout.
     Takes an optional parameter `check_return` that defaults to `True`.
     Setting this parameter to `False` will not check for the return code
     and return -1 instead. This can be used for commands that shut down
@@ -183,7 +185,8 @@ The following methods are available on machine objects:
 
     -   Dereferencing unset variables fail the command.
 
-    -   It will wait for stdout to be closed. See `execute`.
+    -   It will wait for stdout to be closed. See `execute` for the
+        implications.
 
 `fail`
 
diff --git a/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml b/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
index e0fd90f2bac..0d523681b63 100644
--- a/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
+++ b/nixos/doc/manual/from_md/development/writing-nixos-tests.section.xml
@@ -271,8 +271,13 @@ start_all()
           for this to consume all output reliably. This can be achieved
           by redirecting stdout to stderr <literal>&gt;&amp;2</literal>,
           to <literal>/dev/console</literal>,
-          <literal>/dev/null</literal> or a file. Takes an optional
-          parameter <literal>check_return</literal> that defaults to
+          <literal>/dev/null</literal> or a file. Examples of detaching
+          commands are <literal>sleep 365d &amp;</literal>, where the
+          shell forks a new process that can write to stdout and
+          <literal>xclip -i</literal>, where the
+          <literal>xclip</literal> command itself forks without closing
+          stdout. Takes an optional parameter
+          <literal>check_return</literal> that defaults to
           <literal>True</literal>. Setting this parameter to
           <literal>False</literal> will not check for the return code
           and return -1 instead. This can be used for commands that shut
@@ -314,7 +319,7 @@ start_all()
           <listitem>
             <para>
               It will wait for stdout to be closed. See
-              <literal>execute</literal>.
+              <literal>execute</literal> for the implications.
             </para>
           </listitem>
         </itemizedlist>
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index 543f3d61980..e3cbb451acd 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -450,9 +450,10 @@
         <para>
           The NixOS VM test framework,
           <literal>pkgs.nixosTest</literal>/<literal>make-test-python.nix</literal>,
-          now requires non-terminating commands such as
-          <literal>succeed(&quot;foo &amp;&quot;)</literal> to close
-          stdout. This can be done with a redirect such as
+          now requires detaching commands such as
+          <literal>succeed(&quot;foo &amp;&quot;)</literal> and
+          <literal>succeed(&quot;foo | xclip -i&quot;)</literal> to
+          close stdout. This can be done with a redirect such as
           <literal>succeed(&quot;foo &gt;&amp;2 &amp;&quot;)</literal>.
           This breaking change was necessitated by a race condition
           causing tests to fail or hang. It applies to all methods that
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index 76e7f458d47..cb77c193042 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -133,7 +133,7 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 ## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
 
-- The NixOS VM test framework, `pkgs.nixosTest`/`make-test-python.nix`, now requires non-terminating commands such as `succeed("foo &")` to close stdout.
+- The NixOS VM test framework, `pkgs.nixosTest`/`make-test-python.nix`, now requires detaching commands such as `succeed("foo &")` and `succeed("foo | xclip -i")` to close stdout.
   This can be done with a redirect such as `succeed("foo >&2 &")`. This breaking change was necessitated by a race condition causing tests to fail or hang.
   It applies to all methods that invoke commands on the nodes, including `execute`, `succeed`, `fail`, `wait_until_succeeds`, `wait_until_fails`.