summaryrefslogtreecommitdiff
path: root/src/kernel-install
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-04-13 18:11:39 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-05-05 18:42:37 +0200
commitf9a6cb0e138ddeeebe767b2632a35fa933e53c5f (patch)
tree9be926186f19d49429939368d93381b10e978b1b /src/kernel-install
parentca1abaa5c4ffbd0f72f5bbbd98a70db925a82503 (diff)
downloadsystemd-f9a6cb0e138ddeeebe767b2632a35fa933e53c5f.tar.gz
test-kernel-install: test 60-ukify.install and 90-uki-copy.install
We install a kernel with layout=uki and uki_generator=ukify, and test that a UKI gets installed in the expected place. The two plugins cooperate, so it's easiest to test them together.
Diffstat (limited to 'src/kernel-install')
-rw-r--r--src/kernel-install/meson.build10
-rwxr-xr-xsrc/kernel-install/test-kernel-install.sh30
2 files changed, 33 insertions, 7 deletions
diff --git a/src/kernel-install/meson.build b/src/kernel-install/meson.build
index 95aa0d9497..744071b9e9 100644
--- a/src/kernel-install/meson.build
+++ b/src/kernel-install/meson.build
@@ -20,10 +20,12 @@ loaderentry_install = custom_target(
install_mode : 'rwxr-xr-x',
install_dir : kernelinstalldir)
-kernel_install_files = files(
- '50-depmod.install',
- '90-uki-copy.install',
-)
+uki_copy_install = files('90-uki-copy.install')
+
+kernel_install_files = [
+ files('50-depmod.install'),
+ uki_copy_install,
+]
if want_kernel_install
install_data(kernel_install_files,
diff --git a/src/kernel-install/test-kernel-install.sh b/src/kernel-install/test-kernel-install.sh
index 4cbf16f0df..c9d73ff8e3 100755
--- a/src/kernel-install/test-kernel-install.sh
+++ b/src/kernel-install/test-kernel-install.sh
@@ -7,7 +7,10 @@ set -o pipefail
export SYSTEMD_LOG_LEVEL=debug
kernel_install="${1:?}"
-plugin="${2:?}"
+loaderentry_install="${2:?}"
+uki_copy_install="${3:?}"
+ukify="${4:-}"
+ukify_install="${5:-}"
if [[ -d "${PROJECT_BUILD_ROOT:-}" ]]; then
bootctl="${PROJECT_BUILD_ROOT}/bootctl"
else
@@ -36,11 +39,14 @@ MACHINE_ID=badbadbadbadbadbad6abadbadbadbad
EOF
export KERNEL_INSTALL_CONF_ROOT="$D/sources"
-export KERNEL_INSTALL_PLUGINS="$plugin"
+# We "install" multiple plugins, but control which ones will be active via install.conf.
+export KERNEL_INSTALL_PLUGINS="${ukify_install} ${loaderentry_install} ${uki_copy_install}"
export BOOT_ROOT="$D/boot"
export BOOT_MNT="$D/boot"
export MACHINE_ID='3e0484f3634a418b8e6a39e8828b03e3'
+export KERNEL_INSTALL_UKIFY="$ukify"
+# Test type#1 installation
"$kernel_install" -v add 1.1.1 "$D/sources/linux" "$D/sources/initrd"
entry="$BOOT_ROOT/loader/entries/the-token-1.1.1.conf"
@@ -91,7 +97,25 @@ grep -qE '^initrd .*/the-token/1.1.1/initrd' "$entry"
grep -qE 'image' "$BOOT_ROOT/the-token/1.1.1/linux"
grep -qE 'initrd' "$BOOT_ROOT/the-token/1.1.1/initrd"
-if test -x "$bootctl"; then
+# Install UKI
+if [ -f "$ukify" ]; then
+ cat >>"$D/sources/install.conf" <<EOF
+layout=uki
+uki_generator=ukify
+EOF
+ "$kernel_install" -v add 1.1.3 "$D/sources/linux" "$D/sources/initrd"
+ uki="${BOOT_ROOT}/EFI/Linux/the-token-1.1.3+56.efi"
+ test -f "$uki"
+
+ if [ -x "$bootctl" ]; then
+ "$bootctl" kernel-inspect "$uki" | grep -qE 'Kernel Type: +uki$'
+ "$bootctl" kernel-inspect "$uki" | grep -qE 'Version: +1\.1\.3$'
+ "$bootctl" kernel-inspect "$uki" | grep -qE 'Cmdline: +opt1 opt2$'
+ fi
+fi
+
+# Test bootctl
+if [ -x "$bootctl" ]; then
echo "Testing bootctl"
e2="${entry%+*}_2.conf"
cp "$entry" "$e2"