]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
TEST-74-AUX-UTILS: Support running on UEFI systems
authorRichard Maw <richard.maw@codethink.co.uk>
Thu, 22 Feb 2024 13:00:00 +0000 (13:00 +0000)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 6 May 2024 09:57:00 +0000 (11:57 +0200)
test/units/testsuite-74.bootctl.sh

index 133006e40a45895b0d4af12bf15154536bcc578e..78c0e6e5d9d93880c14cc716036774985fd4e03f 100755 (executable)
@@ -59,8 +59,8 @@ basic_tests() {
 }
 
 testcase_bootctl_basic() {
-    assert_eq "$(bootctl --print-esp-path)" "/efi"
-    assert_eq "$(bootctl --print-boot-path)" "/boot"
+    assert_in "$(bootctl --print-esp-path)" "^(/boot/|/efi)$"
+    assert_in "$(bootctl --print-boot-path)" "^(/boot/|/efi)$"
     bootctl --print-root-device
 
     basic_tests
@@ -266,10 +266,14 @@ EOF
 testcase_bootctl_varlink() {
     varlinkctl call --collect /run/systemd/io.systemd.BootControl io.systemd.BootControl.ListBootEntries '{}'
 
-    # We have no UEFI in the test environment, hence just check that this fails cleanly
-    ( SYSTEMD_LOG_TARGET=console varlinkctl call --json=short /run/systemd/io.systemd.BootControl io.systemd.BootControl.GetRebootToFirmware '{}' 2>&1 || true ) | grep -q io.systemd.BootControl.RebootToFirmwareNotSupported
-    ( SYSTEMD_LOG_TARGET=console varlinkctl call --json=short /run/systemd/io.systemd.BootControl io.systemd.BootControl.SetRebootToFirmware '{"state":true}' 2>&1 || true ) | grep -q io.systemd.BootControl.RebootToFirmwareNotSupported
-    ( SYSTEMD_LOG_TARGET=console varlinkctl call --json=short /run/systemd/io.systemd.BootControl io.systemd.BootControl.SetRebootToFirmware '{"state":false}' 2>&1 || true ) | grep -q io.systemd.BootControl.RebootToFirmwareNotSupported
+    # We may have UEFI in the test environment.
+    # If we don't have UEFI then we can test whether bootctl's varlink API fails cleanly.
+    # If we do have UEFI then the rest of the clean fail tests should be skipped.
+    if ! (SYSTEMD_LOG_TARGET=console varlinkctl call --json=short /run/systemd/io.systemd.BootControl io.systemd.BootControl.GetRebootToFirmware '{}' || true) |& grep -q io.systemd.BootControl.RebootToFirmwareNotSupported; then
+        return 0
+    fi
+    (SYSTEMD_LOG_TARGET=console varlinkctl call --json=short /run/systemd/io.systemd.BootControl io.systemd.BootControl.SetRebootToFirmware '{"state":true}' || true) |& grep -q io.systemd.BootControl.RebootToFirmwareNotSupported
+    (SYSTEMD_LOG_TARGET=console varlinkctl call --json=short /run/systemd/io.systemd.BootControl io.systemd.BootControl.SetRebootToFirmware '{"state":false}' || true) |& grep -q io.systemd.BootControl.RebootToFirmwareNotSupported
 }
 
 run_testcases