mirror of
https://github.com/systemd/systemd.git
synced 2026-08-09 01:20:53 +00:00
test-kernel-install: tests for entry_name_format=
Test that custom entry_name_format=%e_%v produces correctly-named BLS loader entries (the-token_1.1.4.conf) and UKI files (the-token_1.1.5.efi), verifying that the full add/remove cycle works with the new entry name.
This commit is contained in:
@@ -294,6 +294,99 @@ test ! -e "$BOOT_ROOT/hoge/1.1.1"
|
||||
test -d "$BOOT_ROOT/hoge"
|
||||
rmdir "$BOOT_ROOT/hoge"
|
||||
|
||||
###########################################
|
||||
# tests for entry_name_format=
|
||||
###########################################
|
||||
|
||||
# Test inspect with custom entry_name_format
|
||||
cat >>"$D/sources/install.conf" <<EOF
|
||||
entry_name_format=%e_%v
|
||||
EOF
|
||||
|
||||
output="$("$kernel_install" -v --json=pretty inspect 1.1.1 "$D/sources/linux")"
|
||||
echo "$output" | grep -E '"EntryNameFormat" : "%e_%v"' >/dev/null
|
||||
echo "$output" | grep -E '"EntryName" : "the-token_1.1.1"' >/dev/null
|
||||
|
||||
# Test type#1 BLS entry with custom entry_name_format
|
||||
rm -f "$D/sources/tries"
|
||||
cat >"$D/sources/install.conf" <<EOF
|
||||
layout=bls
|
||||
initrd_generator=none
|
||||
entry_name_format=%e_%v
|
||||
EOF
|
||||
|
||||
KERNEL_INSTALL_PLUGINS="'${loaderentry_install}' '${uki_copy_install}'" \
|
||||
"$kernel_install" -v add 1.1.4 "$D/sources/linux" "$D/sources/initrd"
|
||||
entry="$BOOT_ROOT/loader/entries/the-token_1.1.4.conf"
|
||||
test -f "$entry"
|
||||
grep -qE '^version +1.1.4' "$entry"
|
||||
KERNEL_INSTALL_PLUGINS="'${loaderentry_install}' '${uki_copy_install}'" \
|
||||
"$kernel_install" -v remove 1.1.4
|
||||
test ! -e "$entry"
|
||||
rm -rf "$BOOT_ROOT/the-token"
|
||||
|
||||
# Test UKI with custom entry_name_format
|
||||
if [ -f "$ukify" ]; then
|
||||
cat >"$D/sources/install.conf" <<EOF
|
||||
layout=uki
|
||||
uki_generator=ukify
|
||||
initrd_generator=none
|
||||
entry_name_format=%e_%v
|
||||
EOF
|
||||
rm -f "$D/sources/tries"
|
||||
|
||||
KERNEL_INSTALL_PLUGINS="'${ukify_install}' '${loaderentry_install}' '${uki_copy_install}'" \
|
||||
"$kernel_install" -v add 1.1.5 "$D/sources/linux" "$D/sources/initrd"
|
||||
uki="${BOOT_ROOT}/EFI/Linux/the-token_1.1.5.efi"
|
||||
test -f "$uki"
|
||||
KERNEL_INSTALL_PLUGINS="'${ukify_install}' '${loaderentry_install}' '${uki_copy_install}'" \
|
||||
"$kernel_install" -v remove 1.1.5
|
||||
test ! -e "$uki"
|
||||
|
||||
# Test boot counting with custom entry_name_format
|
||||
echo '56' >"$D/sources/tries"
|
||||
KERNEL_INSTALL_PLUGINS="'${ukify_install}' '${loaderentry_install}' '${uki_copy_install}'" \
|
||||
"$kernel_install" -v add 1.1.5 "$D/sources/linux" "$D/sources/initrd"
|
||||
uki="${BOOT_ROOT}/EFI/Linux/the-token_1.1.5+56.efi"
|
||||
test -f "$uki"
|
||||
KERNEL_INSTALL_PLUGINS="'${ukify_install}' '${loaderentry_install}' '${uki_copy_install}'" \
|
||||
"$kernel_install" -v remove 1.1.5
|
||||
test ! -e "$uki"
|
||||
|
||||
rm -f "$D/sources/tries"
|
||||
fi
|
||||
|
||||
# Test add-all with custom entry_name_format (exercises context_copy)
|
||||
KVER="$(uname -r)"
|
||||
if test -f "/usr/lib/modules/$KVER/vmlinuz"; then
|
||||
rm -rf "$BOOT_ROOT"
|
||||
mkdir -p "$BOOT_ROOT"
|
||||
cat >"$D/sources/install.conf" <<EOF
|
||||
layout=bls
|
||||
initrd_generator=none
|
||||
entry_name_format=%e_%v
|
||||
EOF
|
||||
|
||||
KERNEL_INSTALL_PLUGINS="'${loaderentry_install}' '${uki_copy_install}'" \
|
||||
"$kernel_install" -v add-all
|
||||
entry="$BOOT_ROOT/loader/entries/the-token_${KVER}.conf"
|
||||
test -f "$entry"
|
||||
grep -qE "^version +${KVER}" "$entry"
|
||||
KERNEL_INSTALL_PLUGINS="'${loaderentry_install}' '${uki_copy_install}'" \
|
||||
"$kernel_install" -v remove "$KVER"
|
||||
test ! -e "$entry"
|
||||
rm -rf "$BOOT_ROOT/the-token"
|
||||
fi
|
||||
|
||||
# Restore install.conf and plugins
|
||||
cat >"$D/sources/install.conf" <<EOF
|
||||
initrd_generator=none
|
||||
# those are overridden by envvars
|
||||
BOOT_ROOT="$D/badboot"
|
||||
MACHINE_ID=badbadbadbadbadbad6abadbadbadbad
|
||||
EOF
|
||||
export KERNEL_INSTALL_PLUGINS="$D/00-skip.install"
|
||||
|
||||
###########################################
|
||||
# tests for --json=
|
||||
###########################################
|
||||
@@ -307,6 +400,8 @@ diff -u <(echo "$output") - >&2 <<EOF
|
||||
"BootRoot" : "$BOOT_ROOT",
|
||||
"EntryTokenType" : "literal",
|
||||
"EntryToken" : "the-token",
|
||||
"EntryNameFormat" : "%e-%v",
|
||||
"EntryName" : "the-token-1.1.1",
|
||||
"EntryDirectory" : "$BOOT_ROOT/the-token/1.1.1",
|
||||
"KernelVersion" : "1.1.1",
|
||||
"Kernel" : "$D/sources/linux",
|
||||
@@ -326,7 +421,8 @@ diff -u <(echo "$output") - >&2 <<EOF
|
||||
"KERNEL_INSTALL_LAYOUT=other",
|
||||
"KERNEL_INSTALL_INITRD_GENERATOR=none",
|
||||
"KERNEL_INSTALL_UKI_GENERATOR=",
|
||||
"KERNEL_INSTALL_STAGING_AREA=${TMPDIR:-/var/tmp}/kernel-install.staging.XXXXXX"
|
||||
"KERNEL_INSTALL_STAGING_AREA=${TMPDIR:-/var/tmp}/kernel-install.staging.XXXXXX",
|
||||
"KERNEL_INSTALL_ENTRY_NAME=the-token-1.1.1"
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
Reference in New Issue
Block a user