]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: add test cases about plugin exit code 30095/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 20 Nov 2023 01:17:54 +0000 (10:17 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 20 Nov 2023 01:17:54 +0000 (10:17 +0900)
src/kernel-install/test-kernel-install.sh

index db412ec52497e4c461869f6304a99f8e7b061ceb..338d8119578aec2818cd712a55c57836d2ee349e 100755 (executable)
@@ -306,3 +306,28 @@ diff -u <(echo "$output") - <<EOF
        ]
 }
 EOF
+
+###########################################
+# tests for propagation of plugin failure (issue #30087)
+###########################################
+cat >"$D/00-plugin-skip" <<EOF
+#!/usr/bin/env bash
+exit 77
+EOF
+chmod +x "$D/00-plugin-skip"
+
+cat >"$D/10-plugin-fail" <<EOF
+#!/usr/bin/env bash
+exit 42
+EOF
+chmod +x "$D/10-plugin-fail"
+
+# Exit code 77 means remaining plugins will be skipped.
+KERNEL_INSTALL_PLUGINS="$D/00-plugin-skip $D/10-plugin-fail" "$kernel_install" -v add 1.1.1 "$D/sources/linux" "$D/sources/initrd"
+
+# Other non-zero exit code will be propagated.
+set +e
+KERNEL_INSTALL_PLUGINS="$D/10-plugin-fail" "$kernel_install" -v add 1.1.1 "$D/sources/linux" "$D/sources/initrd"
+ret=$?
+set -e
+test "$ret" -eq "42"