]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: wait for loop/backing_file attribute being removed
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 21 May 2024 10:10:49 +0000 (19:10 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 21 May 2024 14:13:38 +0000 (23:13 +0900)
Hopefully fixes issue like
https://github.com/systemd/systemd/issues/32680#issuecomment-2120959238
https://github.com/systemd/systemd/issues/32680#issuecomment-2122074805

test/units/TEST-74-AUX-UTILS.mount.sh

index 5bba5a3ac50850aae1d67827424304ec06c0c25f..98c388a272c6aa7b8697b601d49d97fce722bd68 100755 (executable)
@@ -145,7 +145,12 @@ test -e /run/media/system/simple.img/foo.bar
 # systemd-mount --list and systemd-umount require the loopback block device is initialized by udevd.
 udevadm settle --timeout 30
 assert_in "/dev/loop.* ext4 +sd-mount-test" "$(systemd-mount --list --full)"
+LOOP_AUTO=$(systemd-mount --list --full --no-legend | awk '$6 == "sd-mount-test" { print $1 }')
+LOOP_AUTO_DEVPATH=$(udevadm info --query property --property DEVPATH --value "$LOOP_AUTO")
 systemd-umount "$WORK_DIR/simple.img"
+# Wait for 'change' uevent for the device with DISK_MEDIA_CHANGE=1.
+# After the event, the backing_file attribute should be removed.
+timeout 60 bash -c "while [[ -e /sys/$LOOP_AUTO_DEVPATH/loop/backing_file ]]; do sleep 1; done"
 
 # --owner + vfat
 #