]> git.ipfire.org Git - thirdparty/dracut-ng.git/commitdiff
test: drop index parameter from qemu_add_drive
authorBenjamin Drung <benjamin.drung@canonical.com>
Tue, 27 Jan 2026 22:09:07 +0000 (23:09 +0100)
committerLaszlo <laszlo.gombos@gmail.com>
Tue, 27 Jan 2026 23:12:41 +0000 (18:12 -0500)
Simplify `qemu_add_drive` by dropping the `index` parameter. Determine
the index dynamically from the content of `args`.

That way declaring `disk_index` is not needed any more and shellcheck is
happy.

18 files changed:
test/TEST-10-BASIC/test.sh
test/TEST-11-USR-MOUNT/test.sh
test/TEST-12-UEFI/test.sh
test/TEST-13-SYSROOT/test.sh
test/TEST-20-STORAGE/test.sh
test/TEST-26-ENC-RAID-LVM/test.sh
test/TEST-30-DMSQUASH/test.sh
test/TEST-40-SYSTEMD/test.sh
test/TEST-41-FULL-SYSTEMD/test.sh
test/TEST-42-SYSTEMD-INITRD/test.sh
test/TEST-43-KERNEL-INSTALL/test.sh
test/TEST-44-DRIVERS/test.sh
test/TEST-50-NETWORK/test.sh
test/TEST-60-NFS/test.sh
test/TEST-70-ISCSI/test.sh
test/TEST-71-ISCSI-MULTI/test.sh
test/TEST-72-NBD/test.sh
test/test-functions

index c88256d33da67905fe70b1e752e566ae7c7b797e..d50ae24aead1c6e5629cbef1ced020160147e599 100755 (executable)
@@ -5,9 +5,7 @@ TEST_DESCRIPTION="root filesystem on ext4 filesystem"
 
 test_run() {
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root
+    qemu_add_drive disk_args "$TESTDIR"/root.img root
 
     "$testdir"/run-qemu -nic none \
         "${disk_args[@]}" \
index d6f9157f674a44932d9a73980dd78095fce18fa9..0c41c4d9d03151384c3603ad791c6c3c7a24a853 100755 (executable)
@@ -22,8 +22,7 @@ client_run() {
     client_test_start "$test_name"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.btrfs root
+    qemu_add_drive disk_args "$TESTDIR"/root.btrfs root
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
@@ -63,10 +62,8 @@ test_setup() {
 
     # Create the blank file to use as a root filesystem
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.btrfs root 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/root.btrfs root 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
index 6b0bb8d004e86d95194393bed9b321045e4ee8a5..b32d4eb936480dcbc7a3141e79cc5a6cb392411d 100755 (executable)
@@ -28,10 +28,8 @@ client_run() {
     client_test_start "$test_name"
 
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker
-    qemu_add_drive disk_index disk_args "$TESTDIR"/squashfs.img root
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker
+    qemu_add_drive disk_args "$TESTDIR"/squashfs.img root
 
     test_marker_reset
     "$testdir"/run-qemu "${disk_args[@]}" -net none \
index d6da1e268d37a2233e284a066664675b46c9bf34..1e92102110e2013696b1575d9fecf1ac0d474fe4 100755 (executable)
@@ -5,9 +5,7 @@ TEST_DESCRIPTION="initramfs created from sysroot"
 
 test_run() {
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root
+    qemu_add_drive disk_args "$TESTDIR"/root.img root
 
     "$testdir"/run-qemu -nic none \
         "${disk_args[@]}" \
index 28124d4adf5a48309fa3b389bacb32533c795ca3..630ddfd71f273ce8adc4a1e536322c896c45191c 100755 (executable)
@@ -34,12 +34,11 @@ client_run() {
     client_test_start "$test_name"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR/${disk}-1.img" disk1
+    qemu_add_drive disk_args "$TESTDIR/${disk}-1.img" disk1
 
     if ! grep -qF 'degraded' "$test_name"; then
         # only add disk2 if RAID is NOT degraded
-        qemu_add_drive disk_index disk_args "$TESTDIR/${disk}-2.img" disk2
+        qemu_add_drive disk_args "$TESTDIR/${disk}-2.img" disk2
     fi
 
     if [ "$TEST_FSTYPE" = "zfs" ]; then
@@ -96,11 +95,9 @@ test_makeroot() {
 
     # Create the blank files to use as a root filesystem
     declare -a disk_args=()
-    # shellcheck disable=SC2034
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR/${disk}-1.img" disk1 1
-    qemu_add_drive disk_index disk_args "$TESTDIR/${disk}-2.img" disk2 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR/${disk}-1.img" disk1 1
+    qemu_add_drive disk_args "$TESTDIR/${disk}-2.img" disk2 1
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
index 6f415f92e71140a749d54b6ba5be78850d02de3b..399ab6f05f6675a749126f4c03fdfaada266953a 100755 (executable)
@@ -26,9 +26,8 @@ test_run() {
     client_test_start "$LUKSARGS"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/disk-1.img disk1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/disk-2.img disk2
+    qemu_add_drive disk_args "$TESTDIR"/disk-1.img disk1
+    qemu_add_drive disk_args "$TESTDIR"/disk-2.img disk2
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
@@ -69,11 +68,9 @@ test_setup() {
 
     # Create the blank files to use as a root filesystem
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/disk-1.img disk1 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/disk-2.img disk2 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/disk-1.img disk1 1
+    qemu_add_drive disk_args "$TESTDIR"/disk-2.img disk2 1
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
index 581b26cf196c326073450187cd170b87380f8d33..5760da38dd9f88741a4891b2e0a57839642f1c62 100755 (executable)
@@ -24,10 +24,9 @@ client_run() {
     client_test_start "$test_name"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root_erofs.img root_erofs
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root_iso.img root_iso
+    qemu_add_drive disk_args "$TESTDIR"/root.img root
+    qemu_add_drive disk_args "$TESTDIR"/root_erofs.img root_erofs
+    qemu_add_drive disk_args "$TESTDIR"/root_iso.img root_iso
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
@@ -108,9 +107,7 @@ test_setup() {
 
     # Create the blank file to use as a root filesystem
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root 1
+    qemu_add_drive disk_args "$TESTDIR"/root.img root 1
 
     sfdisk "$TESTDIR"/root.img << EOF
 2048,652688
@@ -123,7 +120,7 @@ EOF
     dd if="$TESTDIR"/ext4.img of="$TESTDIR"/root.img bs=512 seek=2048 conv=noerror,notrunc
 
     # erofs drive
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root_erofs.img root_erofs 1
+    qemu_add_drive disk_args "$TESTDIR"/root_erofs.img root_erofs 1
 
     # Write the erofs compressed filesystem to the partition
     if command -v mkfs.erofs &> /dev/null; then
@@ -131,7 +128,7 @@ EOF
     fi
 
     # iso drive
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root_iso.img root_iso 1
+    qemu_add_drive disk_args "$TESTDIR"/root_iso.img root_iso 1
 
     # Write the iso to the partition
     if command -v xorriso &> /dev/null; then
index 55cca9c08e5bac8a19d3ed25c385b9a3d3968496..bad3975b7fe9e2bc2799df4e3ba0dd80d0293b57 100755 (executable)
@@ -11,8 +11,7 @@ test_check() {
 #DEBUGFAIL="rd.shell=1 rd.break=pre-mount"
 test_run() {
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root
+    qemu_add_drive disk_args "$TESTDIR"/root.img root
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
@@ -39,10 +38,8 @@ test_setup() {
         -f "$TESTDIR"/initramfs.makeroot
 
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/root.img root 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
index 71a9c662fc91ee8bbfd3255c866ad744600e4c57..aa5b980ca12aaab0d993945215d30b1e8341e88b 100755 (executable)
@@ -24,10 +24,9 @@ client_run() {
     client_test_start "$test_name"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.btrfs root
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root_crypt.btrfs root_crypt
-    qemu_add_drive disk_index disk_args "$TESTDIR"/usr.btrfs usr
+    qemu_add_drive disk_args "$TESTDIR"/root.btrfs root
+    qemu_add_drive disk_args "$TESTDIR"/root_crypt.btrfs root_crypt
+    qemu_add_drive disk_args "$TESTDIR"/usr.btrfs usr
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
@@ -101,12 +100,10 @@ test_setup() {
 
     # Create the blank file to use as a root filesystem
     declare -a disk_args=()
-    # shellcheck disable=SC2034
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.btrfs root 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root_crypt.btrfs root_crypt 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/usr.btrfs usr 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/root.btrfs root 1
+    qemu_add_drive disk_args "$TESTDIR"/root_crypt.btrfs root_crypt 1
+    qemu_add_drive disk_args "$TESTDIR"/usr.btrfs usr 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
index ecff07fa41bcbb9443300abe2da2034b7e938c5e..8ed222c76e9654aab88b5413d0cb45a8a57fa8d3 100755 (executable)
@@ -18,8 +18,7 @@ client_run() {
     client_test_start "$test_name"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root
+    qemu_add_drive disk_args "$TESTDIR"/root.img root
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
@@ -53,10 +52,8 @@ test_setup() {
         -f "$TESTDIR"/initramfs.makeroot
 
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/root.img root 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
index b438c7bdac34ce79ad52a0343a0a7f26d918d0c6..bfcc0342c0fdda8acc7131d755f1949e9a9f38b5 100755 (executable)
@@ -12,9 +12,7 @@ test_check() {
 
 test_run() {
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root
+    qemu_add_drive disk_args "$TESTDIR"/root.img root
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
index 08e46210b05fd17dcb6f022539d5d42362821c1f..9597fe4142bfef0e8ac600b69eff7c1f5ec8b755 100755 (executable)
@@ -19,9 +19,8 @@ test_check() {
 #DEBUGFAIL="rd.shell=1 rd.break=pre-mount"
 test_run() {
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root
-    qemu_add_drive disk_index disk_args "$TESTDIR"/mnt.img mnt
+    qemu_add_drive disk_args "$TESTDIR"/root.img root
+    qemu_add_drive disk_args "$TESTDIR"/mnt.img mnt
 
     # This test should fail if rd.driver.export is not passed at kernel command-line
     "$testdir"/run-qemu \
@@ -59,11 +58,9 @@ test_setup() {
         -f "$TESTDIR"/initramfs.makeroot
 
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/mnt.img mnt 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/root.img root 1
+    qemu_add_drive disk_args "$TESTDIR"/mnt.img mnt 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
index a6ad7ab0e0635d25ad6035275a361ba3aa64e7ee..e23e546f1a997ae55119a75447e6d0bcafad3101 100755 (executable)
@@ -8,9 +8,7 @@ TEST_DESCRIPTION="bring up network without netroot set with $USE_NETWORK"
 
 test_run() {
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/root.img root
+    qemu_add_drive disk_args "$TESTDIR"/root.img root
 
     "$testdir"/run-qemu \
         -device "virtio-net-pci,netdev=lan0" \
index 05385a4983f64c800a780a163aa915dc25e5de3c..198c7a720bc23039c8a7c17a1df97678ed08a261 100755 (executable)
@@ -24,9 +24,7 @@ run_server() {
     # Start server first
     echo "NFS TEST SETUP: Starting DHCP/NFS server"
     declare -a disk_args=()
-    # shellcheck disable=SC2034
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/server.img root 0 1
+    qemu_add_drive disk_args "$TESTDIR"/server.img root 0 1
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
@@ -58,10 +56,8 @@ client_test() {
 
     # Need this so kvm-qemu will boot (needs non-/dev/zero local disk)
     declare -a disk_args=()
-    # shellcheck disable=SC2034
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker2.img marker2 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/marker2.img marker2 1
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
index 4e926a32ad269ed6e80a34ffc0f0f4e4c2b851b9..8a404b0f6a04a687a49755b4b27c7b3d10ea6c70 100755 (executable)
@@ -15,11 +15,10 @@ run_server() {
     echo "iSCSI TEST SETUP: Starting DHCP/iSCSI server"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/server.img serverroot 0 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/singleroot.img singleroot
-    qemu_add_drive disk_index disk_args "$TESTDIR"/raid0-1.img raid0-1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/raid0-2.img raid0-2
+    qemu_add_drive disk_args "$TESTDIR"/server.img serverroot 0 1
+    qemu_add_drive disk_args "$TESTDIR"/singleroot.img singleroot
+    qemu_add_drive disk_args "$TESTDIR"/raid0-1.img raid0-1
+    qemu_add_drive disk_args "$TESTDIR"/raid0-2.img raid0-2
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
@@ -48,8 +47,7 @@ run_client() {
     client_test_start "$test_name"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker
 
     test_marker_reset
     "$testdir"/run-qemu \
@@ -148,11 +146,10 @@ test_setup() {
     rm -rf -- "$TESTDIR"/overlay
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/singleroot.img singleroot 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/raid0-1.img raid0-1 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/raid0-2.img raid0-2 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/singleroot.img singleroot 1
+    qemu_add_drive disk_args "$TESTDIR"/raid0-1.img raid0-1 1
+    qemu_add_drive disk_args "$TESTDIR"/raid0-2.img raid0-2 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
@@ -188,10 +185,8 @@ test_setup() {
     rm -rf -- "$TESTDIR"/overlay
 
     declare -a disk_args=()
-    # shellcheck disable=SC2034
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/server.img root 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/server.img root 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
index d5d497df8d63907dacfa717c552c386bf57b44ce..81f94910cc40497d8ca5320bfcab9727135857f9 100755 (executable)
@@ -15,11 +15,10 @@ run_server() {
     echo "iSCSI TEST SETUP: Starting DHCP/iSCSI server"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/server.img serverroot 0 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/singleroot.img singleroot
-    qemu_add_drive disk_index disk_args "$TESTDIR"/raid0-1.img raid0-1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/raid0-2.img raid0-2
+    qemu_add_drive disk_args "$TESTDIR"/server.img serverroot 0 1
+    qemu_add_drive disk_args "$TESTDIR"/singleroot.img singleroot
+    qemu_add_drive disk_args "$TESTDIR"/raid0-1.img raid0-1
+    qemu_add_drive disk_args "$TESTDIR"/raid0-2.img raid0-2
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
@@ -46,8 +45,7 @@ run_client() {
     client_test_start "$test_name"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker
 
     test_marker_reset
     "$testdir"/run-qemu \
@@ -157,11 +155,10 @@ test_setup() {
     rm -rf -- "$TESTDIR"/overlay
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/singleroot.img singleroot 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/raid0-1.img raid0-1 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/raid0-2.img raid0-2 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/singleroot.img singleroot 1
+    qemu_add_drive disk_args "$TESTDIR"/raid0-1.img raid0-1 1
+    qemu_add_drive disk_args "$TESTDIR"/raid0-2.img raid0-2 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
@@ -198,10 +195,8 @@ test_setup() {
     rm -rf -- "$TESTDIR"/overlay
 
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/server.img root 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/server.img root 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
index 3d2c6824117a079c1e51401daa01d80ca7100b2b..e639f87c04ef4a557bf1927d9dff00e77c09126d 100755 (executable)
@@ -26,10 +26,9 @@ run_server() {
     echo "NBD TEST SETUP: Starting DHCP/NBD server"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/unencrypted.img unencrypted
-    qemu_add_drive disk_index disk_args "$TESTDIR"/encrypted.img encrypted
-    qemu_add_drive disk_index disk_args "$TESTDIR"/server.img serverroot
+    qemu_add_drive disk_args "$TESTDIR"/unencrypted.img unencrypted
+    qemu_add_drive disk_args "$TESTDIR"/encrypted.img encrypted
+    qemu_add_drive disk_args "$TESTDIR"/server.img serverroot
 
     "$testdir"/run-qemu \
         "${disk_args[@]}" \
@@ -60,8 +59,7 @@ client_test() {
     client_test_start "$test_name"
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker
 
     test_marker_reset
     "$testdir"/run-qemu \
@@ -198,9 +196,8 @@ make_encrypted_root() {
     rm -rf -- "$TESTDIR"/overlay
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/encrypted.img root 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/encrypted.img root 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
@@ -232,9 +229,8 @@ make_client_root() {
         -f "$TESTDIR"/initramfs.makeroot
 
     declare -a disk_args=()
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/unencrypted.img root 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/unencrypted.img root 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
@@ -285,10 +281,8 @@ EOF
         -f "$TESTDIR"/initramfs.makeroot
 
     declare -a disk_args=()
-    # shellcheck disable=SC2034  # disk_index used in qemu_add_drive
-    declare -i disk_index=0
-    qemu_add_drive disk_index disk_args "$TESTDIR"/marker.img marker 1
-    qemu_add_drive disk_index disk_args "$TESTDIR"/server.img root 1
+    qemu_add_drive disk_args "$TESTDIR"/marker.img marker 1
+    qemu_add_drive disk_args "$TESTDIR"/server.img root 1
 
     # Invoke KVM and/or QEMU to actually create the target filesystem.
     "$testdir"/run-qemu \
index 2178173cc8eff2746b86e7c0bfc2e05b37eff8be..affa53a38ea41bcde5fca120fd7a5dc723020a09 100644 (file)
@@ -195,9 +195,8 @@ inst_init() {
 
 # generate qemu arguments for named raw disks
 #
-# qemu_add_drive <index> <args> <filename> <id-name> [<bootindex>]
+# qemu_add_drive <args> <filename> <id-name> [<bootindex>]
 #
-# index: name of the index variable (set to 0 at start)
 # args: name of the argument array variable (set to () at start)
 # filename: filename of the raw disk image
 # id-name: name of the disk in /dev/disk/by-id -> /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_$name
@@ -212,21 +211,24 @@ inst_init() {
 # # EXAMPLES
 # ```
 #   declare -a disk_args=()
-#   declare -i disk_index=0
-#   qemu_add_drive disk_index disk_args "$TESTDIR"/root.ext3 root 0 1
-#   qemu_add_drive disk_index disk_args "$TESTDIR"/client.img client
-#   qemu_add_drive disk_index disk_args "$TESTDIR"/iscsidisk2.img iscsidisk2
-#   qemu_add_drive disk_index disk_args "$TESTDIR"/iscsidisk3.img iscsidisk3
+#   qemu_add_drive disk_args "$TESTDIR"/root.ext3 root 0 1
+#   qemu_add_drive disk_args "$TESTDIR"/client.img client
+#   qemu_add_drive disk_args "$TESTDIR"/iscsidisk2.img iscsidisk2
+#   qemu_add_drive disk_args "$TESTDIR"/iscsidisk3.img iscsidisk3
 #   qemu "${disk_args[@]}"
 # ```
 qemu_add_drive() {
-    local index=${!1}
     # shellcheck disable=SC2178  # args is a nameref to an array
-    local -n args=$2
-    local file=$3
-    local name=$4
-    local size=${5:-0}
-    local bootindex=${6-}
+    local -n args=$1
+    local file=$2
+    local name=$3
+    local size=${4:-0}
+    local bootindex=${5-}
+
+    local index=0
+    while [[ ${args[*]} == *id=scsi${index}* ]]; do
+        index=$((index + 1))
+    done
 
     if [ "${size}" -ne 0 ]; then
         if [[ ${name} =~ "marker" ]]; then
@@ -244,8 +246,6 @@ qemu_add_drive() {
         -drive "if=none,format=raw,file=${file},id=drive-data${index}"
         -device "scsi-hd,bus=scsi${index}.0,drive=drive-data${index},id=data${index},${bootindex:+bootindex=$bootindex,}serial=${name}"
     )
-
-    : $(("${1}++"))
 }
 
 test_marker_reset() {