From: Yu Watanabe Date: Thu, 25 Aug 2022 21:33:49 +0000 (+0900) Subject: test: wait for loop device to be removed X-Git-Tag: v252-rc1~332 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1a0e065e9f154f46fd68cd45f46310bc7df7a51c;p=thirdparty%2Fsystemd.git test: wait for loop device to be removed Follow-up for bca762ce1abafd24016eba7310fdd38c758419f8. Fixes #24450. --- diff --git a/test/units/testsuite-50.sh b/test/units/testsuite-50.sh index 6170c8ab63f..d91eeaabe82 100755 --- a/test/units/testsuite-50.sh +++ b/test/units/testsuite-50.sh @@ -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-)"