test/portable: Ensure ExtensionImages is set for any dep

The previous commit made portablectl attach add a drop-in for any
extension image. Let's add a test for that too.
This commit is contained in:
Rodrigo Campos
2026-03-03 09:38:36 +01:00
parent 5a04e542c2
commit 9c56f3020d
2 changed files with 25 additions and 0 deletions
+13
View File
@@ -212,6 +212,19 @@ portablectl inspect --force --cat --extension /tmp/app0.raw --extension /tmp/con
portablectl detach --now --runtime --extension /tmp/app0.raw --extension /tmp/conf0.raw /usr/share/minimal_0.raw app0
# Ensure that ExtensionImages= is added to the drop-in even when the extension has no unit files
# (all units come from the base image).
portablectl "${ARGS[@]}" attach --force --now --runtime --extension /tmp/app-data-only.raw /usr/share/minimal_0.raw minimal-app0
systemctl is-active minimal-app0.service
status="$(portablectl is-attached --extension app-data-only minimal_0)"
[[ "${status}" == "running-runtime" ]]
grep -q -F "ExtensionImages=/tmp/app-data-only.raw" /run/systemd/system.attached/minimal-app0.service.d/20-portable.conf
grep -q -F "LogExtraFields=PORTABLE_EXTENSION=app-data-only.raw" /run/systemd/system.attached/minimal-app0.service.d/20-portable.conf
portablectl detach --now --runtime --extension /tmp/app-data-only.raw /usr/share/minimal_0.raw minimal-app0
# Ensure that mixed mode copies the images and units (client-owned) but symlinks the profile (OS owned)
portablectl "${ARGS[@]}" attach --copy=mixed --runtime --extension /tmp/app0.raw /usr/share/minimal_0.raw app0
test -f /run/portables/app0.raw
+12
View File
@@ -401,6 +401,18 @@ EOF
echo MARKER=1 >"$initdir/usr/lib/systemd/system/other_file"
mksquashfs "$initdir" /tmp/app1.raw -noappend
# Create a data-only extension image (no unit files) to test that
# ExtensionImages= is added to the drop-in even when the extension
# does not carry any units.
initdir="/var/tmp/app-data-only"
mkdir -p "$initdir/usr/lib/extension-release.d" "$initdir/opt"
(
echo "ID=_any"
echo "ARCHITECTURE=_any"
) >"$initdir/usr/lib/extension-release.d/extension-release.app-data-only"
echo "MARKER_DATA_ONLY=1" >"$initdir/opt/data-file"
mksquashfs "$initdir" /tmp/app-data-only.raw -noappend
initdir="/var/tmp/app-nodistro"
mkdir -p "$initdir/usr/lib/extension-release.d" "$initdir/usr/lib/systemd/system"
(