]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: disable pipefail when testing interactive firstboot
authorFrantisek Sumsal <frantisek@sumsal.cz>
Wed, 1 Feb 2023 12:54:21 +0000 (13:54 +0100)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Mon, 20 Feb 2023 09:48:32 +0000 (10:48 +0100)
Otherwise we might get unexpected test fails due to SIGPIPE:

```
[   14.334917] testsuite-74.sh[565]: + grep -q '^root:.*:0:0:.*:/bin/fooshell$' test-root/etc/passwd
[   14.335670] testsuite-74.sh[681]: + systemd-firstboot --root=test-root --prompt-root-shell
[   14.336382] testsuite-74.sh[680]: + echo -ne '\n/bin/barshell\n'
[   14.336980] testsuite-74.sh[680]: .//usr/lib/systemd/tests/testdata/units/testsuite-74.firstboot.sh: line 166: echo: write error: Broken pipe
```

test/units/testsuite-74.firstboot.sh

index c3be8f1cf6c1bc53961932c0dabc1ddcc309252f..92a607501b7a1f9c9165e66d7f71319f4fd6aeb1 100755 (executable)
@@ -143,6 +143,8 @@ diff <(awk -F: '/^root/ { print $2; }' /etc/shadow) <(awk -F: '/^root/ { print $
 rm -fr "$ROOT"
 mkdir -p "$ROOT/bin"
 touch "$ROOT/bin/fooshell" "$ROOT/bin/barshell"
+# Temporarily disable pipefail to avoid `echo: write error: Broken pipe
+set +o pipefail
 # We can do only limited testing here, since it's all an interactive stuff,
 # so --prompt and --prompt-root-password are skipped on purpose
 echo -ne "\nfoo\nbar\n" | systemd-firstboot --root="$ROOT" --prompt-locale
@@ -168,6 +170,8 @@ grep -q "^root:.*:0:0:.*:/bin/fooshell$" "$ROOT/etc/passwd"
 # Now without the welcome screen but with force
 echo -ne "/bin/barshell\n" | systemd-firstboot --root="$ROOT" --force --prompt-root-shell --welcome=no
 grep -q "^root:.*:0:0:.*:/bin/barshell$" "$ROOT/etc/passwd"
+# Re-enable pipefail
+set -o pipefail
 
 # Assorted tests
 rm -fr "$ROOT"