]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-64-udev-storage: partition disk inside testcase - testcase_virtio_scsi_identical...
authorSam Leonard <sam.leonard@codethink.co.uk>
Tue, 16 Apr 2024 15:17:59 +0000 (16:17 +0100)
committerSam Leonard <sam.leonard@codethink.co.uk>
Tue, 16 Apr 2024 15:18:55 +0000 (16:18 +0100)
test/TEST-64-UDEV-STORAGE/test.sh
test/units/testsuite-64.sh

index 2b4927db0743e933c7afd582e62798e92f6c8f3a..a5e491c22e91ade3fcc2f28dadfdc40f3caf647e 100755 (executable)
@@ -268,24 +268,15 @@ testcase_virtio_scsi_identically_named_partitions() {
     # and attach them to a virtio-scsi controller
     local qemu_opts=("-device virtio-scsi-pci,id=scsi0,num_queues=4")
     local diskpath="${TESTDIR:?}/namedpart0.img"
-    local i lodev num_disk num_part qemu_timeout
+    local i num_disk qemu_timeout
 
     if get_bool "${IS_BUILT_WITH_ASAN:=}" || ! get_bool "$QEMU_KVM"; then
         num_disk=4
-        num_part=4
     else
         num_disk=16
-        num_part=8
     fi
 
     dd if=/dev/zero of="$diskpath" bs=1M count=18
-    lodev="$(losetup --show -f -P "$diskpath")"
-    sfdisk "${lodev:?}" <<EOF
-label: gpt
-
-$(for ((i = 1; i <= num_part; i++)); do echo 'name="Hello world", size=2M'; done)
-EOF
-    losetup -d "$lodev"
 
     for ((i = 0; i < num_disk; i++)); do
         diskpath="${TESTDIR:?}/namedpart$i.img"
index fa823bce0c99499984bd64b04ae8c38e7047cc90..0e5a1d140bf1ffacb12bd31f698a29250431dbd5 100755 (executable)
@@ -239,16 +239,27 @@ testcase_nvme_subsystem() {
 }
 
 testcase_virtio_scsi_identically_named_partitions() {
-    local num
+    local num_part num_disk i j
+    local alphabet='abcdefghijklmnopqrstuvwxyz'
 
     if [[ -v ASAN_OPTIONS || "$(systemd-detect-virt -v)" == "qemu" ]]; then
-        num=$((4 * 4))
+        num_part=4
+        num_disk=4
     else
-        num=$((16 * 8))
+        num_part=8
+        num_disk=16
     fi
 
+    for ((i = 0; i < num_disk; i++)); do
+        sfdisk "/dev/sd${alphabet:$i:1}" <<EOF
+label: gpt
+
+$(for ((j = 1; j <= num_part; j++)); do echo 'name="Hello world", size=2M'; done)
+EOF
+    done
+
     lsblk --noheadings -a -o NAME,PARTLABEL
-    [[ "$(lsblk --noheadings -a -o NAME,PARTLABEL | grep -c "Hello world")" -eq "$num" ]]
+    [[ "$(lsblk --noheadings -a -o NAME,PARTLABEL | grep -c "Hello world")" -eq "$((num_part * num_disk))" ]]
 }
 
 testcase_multipath_basic_failover() {