mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-23 17:34:00 +03:00
ffa328f060
"! test ..." does not cause the script to fail, even with set -e. IIUC, bash treats this command as part of an expression line, as it would if 'test ... && ...' was used. Failing expression lines do not terminate the script. This fixes the obvious cases by changing '! test' → 'test !'. Then the inversion happens internally in test and bash will propagate the failure.
39 lines
885 B
Bash
Executable File
39 lines
885 B
Bash
Executable File
#! /bin/bash
|
|
#
|
|
# Inspired by https://github.com/systemd/systemd/issues/9508
|
|
#
|
|
|
|
set -e
|
|
|
|
test_snippet() {
|
|
systemd-tmpfiles "$@" - <<EOF
|
|
d /var/tmp/foobar-test-06
|
|
d /var/tmp/foobar-test-06/important
|
|
R /var/tmp/foobar-test-06
|
|
EOF
|
|
}
|
|
|
|
test_snippet --create --remove
|
|
test -d /var/tmp/foobar-test-06
|
|
test -d /var/tmp/foobar-test-06/important
|
|
|
|
test_snippet --remove
|
|
test ! -f /var/tmp/foobar-test-06
|
|
test ! -f /var/tmp/foobar-test-06/important
|
|
|
|
test_snippet --create
|
|
test -d /var/tmp/foobar-test-06
|
|
test -d /var/tmp/foobar-test-06/important
|
|
|
|
touch /var/tmp/foobar-test-06/something-else
|
|
|
|
test_snippet --create
|
|
test -d /var/tmp/foobar-test-06
|
|
test -d /var/tmp/foobar-test-06/important
|
|
test -f /var/tmp/foobar-test-06/something-else
|
|
|
|
test_snippet --create --remove
|
|
test -d /var/tmp/foobar-test-06
|
|
test -d /var/tmp/foobar-test-06/important
|
|
test ! -f /var/tmp/foobar-test-06/something-else
|