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

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