1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-03-06 12:58:22 +03:00

test: wait for loop device to be removed

Follow-up for bca762ce1abafd24016eba7310fdd38c758419f8.

Fixes #24450.

(cherry picked from commit 1a0e065e9f154f46fd68cd45f46310bc7df7a51c)
This commit is contained in:
Yu Watanabe 2022-08-26 06:33:49 +09:00 committed by Luca Boccassi
parent f5c2be99bc
commit 9243b88b55

View File

@ -187,6 +187,7 @@ if [ "${HAVE_OPENSSL}" -eq 1 ]; then
sfdisk --part-label "${image}.gpt" 3 "Signature Partition"
fi
loop="$(losetup --show -P -f "${image}.gpt")"
# kernel sometimes(?) does not emit add uevent for partitions, let's wait for the whole block device.
udevadm wait --timeout 60 --settle "${loop:?}"
dd if="${image}.raw" of="${loop}p1"
dd if="${image}.verity" of="${loop}p2"
@ -194,6 +195,11 @@ if [ "${HAVE_OPENSSL}" -eq 1 ]; then
dd if="${image}.verity-sig" of="${loop}p3"
fi
losetup -d "${loop}"
# Interestingly, kernel does not emit remove uevent for the whole block device, but does for partitions.
udevadm wait --timeout 60 --settle --removed "${loop}p1" "${loop}p2"
if [ "${HAVE_OPENSSL}" -eq 1 ]; then
udevadm wait --timeout 60 --settle --removed "${loop}p3"
fi
# Derive partition UUIDs from root hash, in UUID syntax
ROOT_UUID="$(systemd-id128 -u show "$(head -c 32 "${image}.roothash")" -u | tail -n 1 | cut -b 6-)"