diff mbox series

[4/4] iotests/detect-zeroes-registered-buf: add new test

Message ID 20230126201401.348845-5-stefanha@redhat.com (mailing list archive)
State New, archived
Headers show
Series block: fix detect-zeroes= with BDRV_REQ_REGISTERED_BUF | expand

Commit Message

Stefan Hajnoczi Jan. 26, 2023, 8:14 p.m. UTC
This regression test demonstrates that detect-zeroes works with
registered buffers. Bug details:
https://gitlab.com/qemu-project/qemu/-/issues/1404

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 .../tests/detect-zeroes-registered-buf        | 58 +++++++++++++++++++
 .../tests/detect-zeroes-registered-buf.out    |  7 +++
 2 files changed, 65 insertions(+)
 create mode 100755 tests/qemu-iotests/tests/detect-zeroes-registered-buf
 create mode 100644 tests/qemu-iotests/tests/detect-zeroes-registered-buf.out

Comments

Eric Blake Jan. 27, 2023, 11:25 p.m. UTC | #1
On Thu, Jan 26, 2023 at 03:14:01PM -0500, Stefan Hajnoczi wrote:
> This regression test demonstrates that detect-zeroes works with
> registered buffers. Bug details:
> https://gitlab.com/qemu-project/qemu/-/issues/1404
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  .../tests/detect-zeroes-registered-buf        | 58 +++++++++++++++++++
>  .../tests/detect-zeroes-registered-buf.out    |  7 +++
>  2 files changed, 65 insertions(+)
>  create mode 100755 tests/qemu-iotests/tests/detect-zeroes-registered-buf
>  create mode 100644 tests/qemu-iotests/tests/detect-zeroes-registered-buf.out
> 
> diff --git a/tests/qemu-iotests/tests/detect-zeroes-registered-buf b/tests/qemu-iotests/tests/detect-zeroes-registered-buf
> new file mode 100755
> index 0000000000..edb5f2cee5
> --- /dev/null
> +++ b/tests/qemu-iotests/tests/detect-zeroes-registered-buf
> @@ -0,0 +1,58 @@
> +#!/usr/bin/env bash
> +# group: rw auto quick
> +#
> +# Check that detect-zeroes=unmap works on writes with registered I/O buffers.
> +# This is a regression test for
> +# https://gitlab.com/qemu-project/qemu/-/issues/1404 where I/O requests failed
> +# unexpectedly.
> +#
> +# Copyright Red Hat

Do you need a year or a (C) or similar?

Otherwise,

Reviewed-by: Eric Blake <eblake@redhat.com>
Stefan Hajnoczi Jan. 30, 2023, 8:46 p.m. UTC | #2
On Fri, Jan 27, 2023 at 05:25:48PM -0600, Eric Blake wrote:
> On Thu, Jan 26, 2023 at 03:14:01PM -0500, Stefan Hajnoczi wrote:
> > This regression test demonstrates that detect-zeroes works with
> > registered buffers. Bug details:
> > https://gitlab.com/qemu-project/qemu/-/issues/1404
> > 
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > ---
> >  .../tests/detect-zeroes-registered-buf        | 58 +++++++++++++++++++
> >  .../tests/detect-zeroes-registered-buf.out    |  7 +++
> >  2 files changed, 65 insertions(+)
> >  create mode 100755 tests/qemu-iotests/tests/detect-zeroes-registered-buf
> >  create mode 100644 tests/qemu-iotests/tests/detect-zeroes-registered-buf.out
> > 
> > diff --git a/tests/qemu-iotests/tests/detect-zeroes-registered-buf b/tests/qemu-iotests/tests/detect-zeroes-registered-buf
> > new file mode 100755
> > index 0000000000..edb5f2cee5
> > --- /dev/null
> > +++ b/tests/qemu-iotests/tests/detect-zeroes-registered-buf
> > @@ -0,0 +1,58 @@
> > +#!/usr/bin/env bash
> > +# group: rw auto quick
> > +#
> > +# Check that detect-zeroes=unmap works on writes with registered I/O buffers.
> > +# This is a regression test for
> > +# https://gitlab.com/qemu-project/qemu/-/issues/1404 where I/O requests failed
> > +# unexpectedly.
> > +#
> > +# Copyright Red Hat
> 
> Do you need a year or a (C) or similar?

No, this is the cool new copyright style that Red Hat legal recommends!
:)

I'll send you the details in a separate email.

Stefan
diff mbox series

Patch

diff --git a/tests/qemu-iotests/tests/detect-zeroes-registered-buf b/tests/qemu-iotests/tests/detect-zeroes-registered-buf
new file mode 100755
index 0000000000..edb5f2cee5
--- /dev/null
+++ b/tests/qemu-iotests/tests/detect-zeroes-registered-buf
@@ -0,0 +1,58 @@ 
+#!/usr/bin/env bash
+# group: rw auto quick
+#
+# Check that detect-zeroes=unmap works on writes with registered I/O buffers.
+# This is a regression test for
+# https://gitlab.com/qemu-project/qemu/-/issues/1404 where I/O requests failed
+# unexpectedly.
+#
+# Copyright Red Hat
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+
+# creator
+owner=stefanha@redhat.com
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+status=1	# failure is the default!
+
+_cleanup()
+{
+	_cleanup_test_img
+}
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+cd ..
+. ./common.rc
+. ./common.filter
+
+_supported_fmt qcow2
+_supported_proto generic
+
+size=128M
+_make_test_img $size
+IMGSPEC="driver=$IMGFMT,file.filename=$TEST_IMG,discard=unmap,detect-zeroes=unmap"
+
+echo
+echo "== writing zero buffer to image =="
+QEMU_IO_OPTIONS="$QEMU_IO_OPTIONS_NO_FMT" $QEMU_IO -c "write -r -P 0 0 4k" --image-opts "$IMGSPEC" | _filter_qemu_io
+
+# success, all done
+echo "*** done"
+rm -f $seq.full
+status=0
diff --git a/tests/qemu-iotests/tests/detect-zeroes-registered-buf.out b/tests/qemu-iotests/tests/detect-zeroes-registered-buf.out
new file mode 100644
index 0000000000..42c56fcc8d
--- /dev/null
+++ b/tests/qemu-iotests/tests/detect-zeroes-registered-buf.out
@@ -0,0 +1,7 @@ 
+QA output created by detect-zeroes-registered-buf
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
+
+== writing zero buffer to image ==
+wrote 4096/4096 bytes at offset 0
+4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+*** done