]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: use udevadm lock when partitioning block devices
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 6 Apr 2022 16:35:26 +0000 (01:35 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 6 Apr 2022 16:42:44 +0000 (01:42 +0900)
We can use `sfdisk --lock` for these cases, but some CI environments
have old sfdisk which does not support `--lock` option.

test/units/testsuite-64.sh

index 44f362ec6f3ca37aa85aa1bcd6635eca773e0e7c..5f50131dd5db0399856bd5538b98653f66649d2d 100755 (executable)
@@ -168,7 +168,7 @@ $(printf 'name="test%d", size=2M\n' {1..50})
 EOF
 
     # Initial partition table
-    sfdisk -q -X gpt "$blockdev" <"$partscript"
+    udevadm lock --device="$blockdev" sfdisk -q -X gpt "$blockdev" <"$partscript"
 
     # Delete the partitions, immediately recreate them, wait for udev to settle
     # down, and then check if we have any dangling symlinks in /dev/disk/. Rinse
@@ -177,8 +177,8 @@ EOF
     # On unpatched udev versions the delete-recreate cycle may trigger a race
     # leading to dead symlinks in /dev/disk/
     for i in {1..100}; do
-        sfdisk -q --delete "$blockdev"
-        sfdisk -q -X gpt "$blockdev" <"$partscript"
+        udevadm lock --device="$blockdev" sfdisk -q --delete "$blockdev"
+        udevadm lock --device="$blockdev" sfdisk -q -X gpt "$blockdev" <"$partscript"
 
         if ((i % 10 == 0)); then
             udevadm wait --settle --timeout=30 "$blockdev"
@@ -281,7 +281,7 @@ testcase_btrfs_basic() {
     echo "Multiple devices: using partitions, data: single, metadata: raid1"
     uuid="deadbeef-dead-dead-beef-000000000001"
     label="btrfs_mpart"
-    sfdisk --wipe=always "${devices[0]}" <<EOF
+    udevadm lock --device="${devices[0]}" sfdisk --wipe=always "${devices[0]}" <<EOF
 label: gpt
 
 name="diskpart1", size=85M