test: exit earlier when cgroup user xattr is not supported
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 1 Jun 2024 13:34:11 +0000 (22:34 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 1 Jun 2024 13:35:07 +0000 (22:35 +0900)
Also, use trap for cleaning up the test environment.

test/units/TEST-04-JOURNAL.LogFilterPatterns.sh

index 37fdd5f82bdccb5995f47ae89907f747b4b8bf27..ec99b8622674ac48310beada494e3df75d8b6fa9 100755 (executable)
@@ -3,6 +3,11 @@
 set -eux
 set -o pipefail
 
+if ! cgroupfs_supports_user_xattrs; then
+    echo "CGroup does not support user xattrs, skipping LogFilterPatterns= tests."
+    exit 0
+fi
+
 # shellcheck source=test/units/util.sh
 . "$(dirname "$0")"/util.sh
 
@@ -33,53 +38,56 @@ run_service_and_fetch_logs() {
     journalctl -q -u "$unit" -S "$start" -p notice
 }
 
-if cgroupfs_supports_user_xattrs; then
-    # Accept all log messages
-    add_logs_filtering_override "logs-filtering.service" "00-reset" ""
-    [[ -n $(run_service_and_fetch_logs "logs-filtering.service") ]]
+at_exit() {
+    rm -rf /run/systemd/system/{logs-filtering,delegated-cgroup-filtering}.service.d
+    systemctl daemon-reload
+}
 
-    add_logs_filtering_override "logs-filtering.service" "01-allow-all" ".*"
-    [[ -n $(run_service_and_fetch_logs "logs-filtering.service") ]]
+trap at_exit EXIT
 
-    # Discard all log messages
-    add_logs_filtering_override "logs-filtering.service" "02-discard-all" "~.*"
-    [[ -z $(run_service_and_fetch_logs "logs-filtering.service") ]]
+# Accept all log messages
+add_logs_filtering_override "logs-filtering.service" "00-reset" ""
+[[ -n $(run_service_and_fetch_logs "logs-filtering.service") ]]
 
-    # Accept all test messages
-    add_logs_filtering_override "logs-filtering.service" "03-reset" ""
-    [[ -n $(run_service_and_fetch_logs "logs-filtering.service") ]]
+add_logs_filtering_override "logs-filtering.service" "01-allow-all" ".*"
+[[ -n $(run_service_and_fetch_logs "logs-filtering.service") ]]
 
-    # Discard all test messages
-    add_logs_filtering_override "logs-filtering.service" "04-discard-gg" "~.*gg.*"
-    [[ -z $(run_service_and_fetch_logs "logs-filtering.service") ]]
+# Discard all log messages
+add_logs_filtering_override "logs-filtering.service" "02-discard-all" "~.*"
+[[ -z $(run_service_and_fetch_logs "logs-filtering.service") ]]
 
-    # Deny filter takes precedence
-    add_logs_filtering_override "logs-filtering.service" "05-allow-all-but-too-late" ".*"
-    [[ -z $(run_service_and_fetch_logs "logs-filtering.service") ]]
+# Accept all test messages
+add_logs_filtering_override "logs-filtering.service" "03-reset" ""
+[[ -n $(run_service_and_fetch_logs "logs-filtering.service") ]]
 
-    # Use tilde in a deny pattern
-    add_logs_filtering_override "logs-filtering.service" "06-reset" ""
-    add_logs_filtering_override "logs-filtering.service" "07-prevent-tilde" "~~more~"
-    [[ -z $(run_service_and_fetch_logs "logs-filtering.service") ]]
+# Discard all test messages
+add_logs_filtering_override "logs-filtering.service" "04-discard-gg" "~.*gg.*"
+[[ -z $(run_service_and_fetch_logs "logs-filtering.service") ]]
 
-    # Only allow a pattern that won't be matched
-    add_logs_filtering_override "logs-filtering.service" "08-reset" ""
-    add_logs_filtering_override "logs-filtering.service" "09-allow-only-non-existing" "non-existing string"
-    [[ -z $(run_service_and_fetch_logs "logs-filtering.service") ]]
+# Deny filter takes precedence
+add_logs_filtering_override "logs-filtering.service" "05-allow-all-but-too-late" ".*"
+[[ -z $(run_service_and_fetch_logs "logs-filtering.service") ]]
 
-    # Allow a pattern starting with a tilde
-    add_logs_filtering_override "logs-filtering.service" "10-allow-with-escape-char" "\\\\x7emore~"
-    [[ -n $(run_service_and_fetch_logs "logs-filtering.service") ]]
+# Use tilde in a deny pattern
+add_logs_filtering_override "logs-filtering.service" "06-reset" ""
+add_logs_filtering_override "logs-filtering.service" "07-prevent-tilde" "~~more~"
+[[ -z $(run_service_and_fetch_logs "logs-filtering.service") ]]
 
-    add_logs_filtering_override "logs-filtering.service" "11-reset" ""
-    add_logs_filtering_override "logs-filtering.service" "12-allow-with-spaces" "foo bar"
-    [[ -n $(run_service_and_fetch_logs "logs-filtering.service") ]]
+# Only allow a pattern that won't be matched
+add_logs_filtering_override "logs-filtering.service" "08-reset" ""
+add_logs_filtering_override "logs-filtering.service" "09-allow-only-non-existing" "non-existing string"
+[[ -z $(run_service_and_fetch_logs "logs-filtering.service") ]]
 
-    add_logs_filtering_override "delegated-cgroup-filtering.service" "00-allow-all" ".*"
-    [[ -n $(run_service_and_fetch_logs "delegated-cgroup-filtering.service") ]]
+# Allow a pattern starting with a tilde
+add_logs_filtering_override "logs-filtering.service" "10-allow-with-escape-char" "\\\\x7emore~"
+[[ -n $(run_service_and_fetch_logs "logs-filtering.service") ]]
 
-    add_logs_filtering_override "delegated-cgroup-filtering.service" "01-discard-hello" "~hello"
-    [[ -z $(run_service_and_fetch_logs "delegated-cgroup-filtering.service") ]]
+add_logs_filtering_override "logs-filtering.service" "11-reset" ""
+add_logs_filtering_override "logs-filtering.service" "12-allow-with-spaces" "foo bar"
+[[ -n $(run_service_and_fetch_logs "logs-filtering.service") ]]
 
-    rm -rf /run/systemd/system/{logs-filtering,delegated-cgroup-filtering}.service.d
-fi
+add_logs_filtering_override "delegated-cgroup-filtering.service" "00-allow-all" ".*"
+[[ -n $(run_service_and_fetch_logs "delegated-cgroup-filtering.service") ]]
+
+add_logs_filtering_override "delegated-cgroup-filtering.service" "01-discard-hello" "~hello"
+[[ -z $(run_service_and_fetch_logs "delegated-cgroup-filtering.service") ]]