Blame SOURCES/kvm-iotests-Add-test-221-to-catch-qemu-img-map-regressio.patch

383d26
From 267cb4b010be63dd4d8af995f496ae03cffe5f8f Mon Sep 17 00:00:00 2001
383d26
From: Max Reitz <mreitz@redhat.com>
383d26
Date: Mon, 6 Aug 2018 16:35:53 +0200
383d26
Subject: [PATCH 04/13] iotests: Add test 221 to catch qemu-img map regression
383d26
383d26
RH-Author: Max Reitz <mreitz@redhat.com>
383d26
Message-id: <20180806163553.13344-3-mreitz@redhat.com>
383d26
Patchwork-id: 81649
383d26
O-Subject: [RHV-7.6 qemu-kvm-rhev PATCH 2/2] iotests: Add test 221 to catch qemu-img map regression
383d26
Bugzilla: 1601310
383d26
RH-Acked-by: Eric Blake <eblake@redhat.com>
383d26
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
383d26
RH-Acked-by: John Snow <jsnow@redhat.com>
383d26
383d26
From: Eric Blake <eblake@redhat.com>
383d26
383d26
Although qemu-img creates aligned files (by rounding up), it
383d26
must also gracefully handle files that are not sector-aligned.
383d26
Test that the bug fixed in the previous patch does not recur.
383d26
383d26
It's a bit annoying that we can see the (implicit) hole past
383d26
the end of the file on to the next sector boundary, so if we
383d26
ever reach the point where we report a byte-accurate size rather
383d26
than our current behavior of always rounding up, this test will
383d26
probably need a slight modification.
383d26
383d26
Signed-off-by: Eric Blake <eblake@redhat.com>
383d26
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
383d26
(cherry picked from commit c6a9d2f6f9bc0c163b3a3073126464a2446bad5f)
383d26
Signed-off-by: Max Reitz <mreitz@redhat.com>
383d26
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
383d26
---
383d26
 tests/qemu-iotests/221     | 60 ++++++++++++++++++++++++++++++++++++++++++++++
383d26
 tests/qemu-iotests/221.out | 16 +++++++++++++
383d26
 tests/qemu-iotests/group   |  1 +
383d26
 3 files changed, 77 insertions(+)
383d26
 create mode 100755 tests/qemu-iotests/221
383d26
 create mode 100644 tests/qemu-iotests/221.out
383d26
383d26
diff --git a/tests/qemu-iotests/221 b/tests/qemu-iotests/221
383d26
new file mode 100755
383d26
index 0000000..41c4e4b
383d26
--- /dev/null
383d26
+++ b/tests/qemu-iotests/221
383d26
@@ -0,0 +1,60 @@
383d26
+#!/bin/bash
383d26
+#
383d26
+# Test qemu-img vs. unaligned images
383d26
+#
383d26
+# Copyright (C) 2018 Red Hat, Inc.
383d26
+#
383d26
+# This program is free software; you can redistribute it and/or modify
383d26
+# it under the terms of the GNU General Public License as published by
383d26
+# the Free Software Foundation; either version 2 of the License, or
383d26
+# (at your option) any later version.
383d26
+#
383d26
+# This program is distributed in the hope that it will be useful,
383d26
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
383d26
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
383d26
+# GNU General Public License for more details.
383d26
+#
383d26
+# You should have received a copy of the GNU General Public License
383d26
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
383d26
+#
383d26
+
383d26
+seq="$(basename $0)"
383d26
+echo "QA output created by $seq"
383d26
+
383d26
+here="$PWD"
383d26
+status=1 # failure is the default!
383d26
+
383d26
+_cleanup()
383d26
+{
383d26
+    _cleanup_test_img
383d26
+}
383d26
+trap "_cleanup; exit \$status" 0 1 2 3 15
383d26
+
383d26
+# get standard environment, filters and checks
383d26
+. ./common.rc
383d26
+. ./common.filter
383d26
+
383d26
+_supported_fmt raw
383d26
+_supported_proto file
383d26
+_supported_os Linux
383d26
+
383d26
+echo
383d26
+echo "=== Check mapping of unaligned raw image ==="
383d26
+echo
383d26
+
383d26
+_make_test_img 43009 # qemu-img create rounds size up
383d26
+$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
383d26
+
383d26
+truncate --size=43009 "$TEST_IMG" # so we resize it and check again
383d26
+$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
383d26
+
383d26
+$QEMU_IO -c 'w 43008 1' "$TEST_IMG" | _filter_qemu_io # writing also rounds up
383d26
+$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
383d26
+
383d26
+truncate --size=43009 "$TEST_IMG" # so we resize it and check again
383d26
+$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
383d26
+
383d26
+# success, all done
383d26
+echo '*** done'
383d26
+rm -f $seq.full
383d26
+status=0
383d26
diff --git a/tests/qemu-iotests/221.out b/tests/qemu-iotests/221.out
383d26
new file mode 100644
383d26
index 0000000..a9c0190
383d26
--- /dev/null
383d26
+++ b/tests/qemu-iotests/221.out
383d26
@@ -0,0 +1,16 @@
383d26
+QA output created by 221
383d26
+
383d26
+=== Check mapping of unaligned raw image ===
383d26
+
383d26
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=43009
383d26
+[{ "start": 0, "length": 43520, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
383d26
+[{ "start": 0, "length": 43520, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
383d26
+wrote 1/1 bytes at offset 43008
383d26
+1 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
383d26
+[{ "start": 0, "length": 40960, "depth": 0, "zero": true, "data": false, "offset": OFFSET},
383d26
+{ "start": 40960, "length": 2049, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
383d26
+{ "start": 43009, "length": 511, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
383d26
+[{ "start": 0, "length": 40960, "depth": 0, "zero": true, "data": false, "offset": OFFSET},
383d26
+{ "start": 40960, "length": 2049, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
383d26
+{ "start": 43009, "length": 511, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
383d26
+*** done
383d26
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
383d26
index 401258f..e479fe1 100644
383d26
--- a/tests/qemu-iotests/group
383d26
+++ b/tests/qemu-iotests/group
383d26
@@ -218,6 +218,7 @@
383d26
 217 rw auto quick
383d26
 218 rw auto quick
383d26
 219 rw auto
383d26
+221 rw auto quick
383d26
 222 rw auto quick
383d26
 223 rw auto quick
383d26
 226 auto quick
383d26
-- 
383d26
1.8.3.1
383d26