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

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