]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
iotests: validate dmsetup result in test 128
authorDaniel P. Berrangé <berrange@redhat.com>
Mon, 12 Jan 2026 16:33:00 +0000 (16:33 +0000)
committerDaniel P. Berrangé <berrange@redhat.com>
Thu, 21 May 2026 11:39:54 +0000 (12:39 +0100)
The I/O test 128 uses 'dmsetup create' to create a device, optionally
using sudo to elevate privileges.

This dmsetup command works in GitLab CI, however, the test then fails
with a missing device name:

  1..1
  # running raw 128
  not ok raw 128
  ----------------------------------- stderr -----------------------------------
  --- /builds/berrange/qemu/tests/qemu-iotests/128.out
  +++ /builds/berrange/qemu/build/scratch/raw-file-128/128.out.bad
  @@ -1,5 +1,5 @@
   QA output created by 128

   == reading from error device ==
  -read failed: Input/output error
  +qemu-io: can't open device /dev/mapper/eiodev16546: Could not open '/dev/mapper/eiodev16546': No such file or directory
   *** done

  (test program exited with status code 1)

It is believed that this is due to the build env using a manually
populated /dev, such that the device mapper node won't ever appear.
It is not a race, since a test adding a sleep did not result in the
device appearing.

Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
tests/qemu-iotests/128

index d0e00d24b1d0ef0ca3c0d8dee965e6a508ed1c9c..d75b1a451a06f2d1ea051859b646af42479229bb 100755 (executable)
@@ -42,6 +42,12 @@ _setup_eiodev()
                echo "0 $((1024 * 1024 * 1024 / 512)) error" | \
                        $cmd dmsetup create "$devname" 2>/dev/null
                if [ "$?" -eq 0 ]; then
+                       DEV="/dev/mapper/$devname"
+                       if ! -e $DEV
+                       then
+                               _notrun "Device $DEV not appearing"
+                       fi
+
                        sudo="$cmd"
                        return
                fi