richardphibel / rpms / systemd

Forked from rpms/systemd a year ago
Clone
ac3a84
From d68d785ba0e3ecd59a2678fe00fbd7b1bde90622 Mon Sep 17 00:00:00 2001
ac3a84
From: Frantisek Sumsal <frantisek@sumsal.cz>
ac3a84
Date: Wed, 2 Nov 2022 17:51:51 +0100
ac3a84
Subject: [PATCH] test: add a sanity coverage for systemd-analyze verbs
ac3a84
ac3a84
(cherry picked from commit 6c83054c0133eb53245e479d71589dceff76cf74)
ac3a84
ac3a84
Related #2138081
ac3a84
---
ac3a84
 test/units/testsuite-65.sh | 108 +++++++++++++++++++++++++++++++++++++
ac3a84
 1 file changed, 108 insertions(+)
ac3a84
ac3a84
diff --git a/test/units/testsuite-65.sh b/test/units/testsuite-65.sh
ac3a84
index 64ce629f3b..ece6b8734e 100755
ac3a84
--- a/test/units/testsuite-65.sh
ac3a84
+++ b/test/units/testsuite-65.sh
ac3a84
@@ -9,6 +9,114 @@ set -eux
ac3a84
 systemd-analyze log-level debug
ac3a84
 export SYSTEMD_LOG_LEVEL=debug
ac3a84
 
ac3a84
+# Sanity checks
ac3a84
+#
ac3a84
+# We can't really test time, blame, critical-chain and plot verbs here, as
ac3a84
+# the testsuite service is a part of the boot transaction, so let's assume
ac3a84
+# they fail
ac3a84
+systemd-analyze || :
ac3a84
+systemd-analyze time || :
ac3a84
+systemd-analyze blame || :
ac3a84
+systemd-analyze critical-chain || :
ac3a84
+systemd-analyze plot >/dev/null || :
ac3a84
+# dot
ac3a84
+systemd-analyze dot >/dev/null
ac3a84
+systemd-analyze dot systemd-journald.service >/dev/null
ac3a84
+systemd-analyze dot systemd-journald.service systemd-logind.service >/dev/null
ac3a84
+systemd-analyze dot --from-pattern="*" --from-pattern="*.service" systemd-journald.service >/dev/null
ac3a84
+systemd-analyze dot --to-pattern="*" --to-pattern="*.service" systemd-journald.service >/dev/null
ac3a84
+systemd-analyze dot --from-pattern="*.service" --to-pattern="*.service" systemd-journald.service >/dev/null
ac3a84
+systemd-analyze dot --order systemd-journald.service systemd-logind.service >/dev/null
ac3a84
+systemd-analyze dot --require systemd-journald.service systemd-logind.service >/dev/null
ac3a84
+systemd-analyze dot "systemd-*.service" >/dev/null
ac3a84
+(! systemd-analyze dot systemd-journald.service systemd-logind.service "*" bbb ccc)
ac3a84
+# dump
ac3a84
+systemd-analyze dump >/dev/null
ac3a84
+systemd-analyze dump "*" >/dev/null
ac3a84
+systemd-analyze dump "*.socket" >/dev/null
ac3a84
+systemd-analyze dump systemd-journald.service >/dev/null
ac3a84
+(! systemd-analyze dump "")
ac3a84
+# unit-paths
ac3a84
+systemd-analyze unit-paths
ac3a84
+systemd-analyze unit-paths --user
ac3a84
+systemd-analyze unit-paths --global
ac3a84
+# exist-status
ac3a84
+systemd-analyze exit-status
ac3a84
+systemd-analyze exit-status STDOUT BPF
ac3a84
+systemd-analyze exit-status 0 1 {63..65}
ac3a84
+(! systemd-analyze exit-status STDOUT BPF "hello*")
ac3a84
+# capability
ac3a84
+systemd-analyze capability
ac3a84
+systemd-analyze capability cap_chown CAP_KILL
ac3a84
+systemd-analyze capability 0 1 {30..32}
ac3a84
+(! systemd-analyze capability cap_chown CAP_KILL "hello*")
ac3a84
+# condition
ac3a84
+mkdir -p /run/systemd/system
ac3a84
+UNIT_NAME="analyze-condition-$RANDOM.service"
ac3a84
+cat >"/run/systemd/system/$UNIT_NAME" <
ac3a84
+[Unit]
ac3a84
+AssertPathExists=/etc/os-release
ac3a84
+AssertEnvironment=!FOOBAR
ac3a84
+ConditionKernelVersion=>1.0
ac3a84
+ConditionPathExists=/etc/os-release
ac3a84
+
ac3a84
+[Service]
ac3a84
+ExecStart=/bin/true
ac3a84
+EOF
ac3a84
+systemctl daemon-reload
ac3a84
+systemd-analyze condition --unit="$UNIT_NAME"
ac3a84
+systemd-analyze condition 'ConditionKernelVersion = ! <4.0' \
ac3a84
+                          'ConditionKernelVersion = >=3.1' \
ac3a84
+                          'ConditionACPower=|false' \
ac3a84
+                          'ConditionArchitecture=|!arm' \
ac3a84
+                          'AssertPathExists=/etc/os-release'
ac3a84
+(! systemd-analyze condition 'ConditionArchitecture=|!arm' 'AssertXYZ=foo')
ac3a84
+(! systemd-analyze condition 'ConditionKernelVersion=<1.0')
ac3a84
+(! systemd-analyze condition 'AssertKernelVersion=<1.0')
ac3a84
+# syscall-filter
ac3a84
+systemd-analyze syscall-filter >/dev/null
ac3a84
+systemd-analyze syscall-filter @chown @sync
ac3a84
+systemd-analyze syscall-filter @sync @sync @sync
ac3a84
+(! systemd-analyze syscall-filter @chown @sync @foobar)
ac3a84
+# filesystems (requires libbpf support)
ac3a84
+if systemctl --version | grep "+BPF_FRAMEWORK"; then
ac3a84
+    systemd-analyze filesystems >/dev/null
ac3a84
+    systemd-analyze filesystems @basic-api
ac3a84
+    systemd-analyze filesystems @basic-api @basic-api @basic-api
ac3a84
+    (! systemd-analyze filesystems @basic-api @basic-api @foobar @basic-api)
ac3a84
+fi
ac3a84
+# calendar
ac3a84
+systemd-analyze calendar '*-2-29 0:0:0'
ac3a84
+systemd-analyze calendar --iterations=5 '*-2-29 0:0:0'
ac3a84
+systemd-analyze calendar '*-* *:*:*'
ac3a84
+systemd-analyze calendar --iterations=5 '*-* *:*:*'
ac3a84
+systemd-analyze calendar --iterations=50 '*-* *:*:*'
ac3a84
+systemd-analyze calendar --iterations=0 '*-* *:*:*'
ac3a84
+systemd-analyze calendar --base-time=yesterday --iterations=5 '*-* *:*:*'
ac3a84
+(! systemd-analyze calendar --iterations=0 '*-* 99:*:*')
ac3a84
+(! systemd-analyze calendar --base-time=never '*-* *:*:*')
ac3a84
+(! systemd-analyze calendar 1)
ac3a84
+(! systemd-analyze calendar "")
ac3a84
+# timestamp
ac3a84
+systemd-analyze timestamp now
ac3a84
+systemd-analyze timestamp -- -1
ac3a84
+systemd-analyze timestamp yesterday now tomorrow
ac3a84
+(! systemd-analyze timestamp yesterday never tomorrow)
ac3a84
+(! systemd-analyze timestamp 1)
ac3a84
+(! systemd-analyze timestamp "")
ac3a84
+# timespan
ac3a84
+systemd-analyze timespan 1
ac3a84
+systemd-analyze timespan 1s 300s '1year 0.000001s'
ac3a84
+(! systemd-analyze timespan 1s 300s aaaaaa '1year 0.000001s')
ac3a84
+(! systemd-analyze timespan -- -1)
ac3a84
+(! systemd-analyze timespan "")
ac3a84
+# cat-config
ac3a84
+systemd-analyze cat-config systemd/system.conf >/dev/null
ac3a84
+systemd-analyze cat-config /etc/systemd/system.conf >/dev/null
ac3a84
+systemd-analyze cat-config systemd/system.conf systemd/journald.conf >/dev/null
ac3a84
+systemd-analyze cat-config systemd/system.conf foo/bar systemd/journald.conf >/dev/null
ac3a84
+systemd-analyze cat-config foo/bar
ac3a84
+
ac3a84
 mkdir -p /tmp/img/usr/lib/systemd/system/
ac3a84
 mkdir -p /tmp/img/opt/
ac3a84