05bba0
From daca4d834e727c73565aa0659da6fab52ab7cc6b Mon Sep 17 00:00:00 2001
05bba0
From: Fam Zheng <famz@redhat.com>
05bba0
Date: Mon, 25 May 2015 04:45:57 +0200
05bba0
Subject: [PATCH 5/6] qemu-iotests: Test unaligned sub-block zero write
05bba0
05bba0
Message-id: <1432529157-20381-4-git-send-email-famz@redhat.com>
05bba0
Patchwork-id: 65121
05bba0
O-Subject: [RHEL-7.2 qemu-kvm PATCH v2 3/3] qemu-iotests: Test unaligned sub-block zero write
05bba0
Bugzilla: 1200295
05bba0
RH-Acked-by: Max Reitz <mreitz@redhat.com>
05bba0
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
05bba0
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
05bba0
05bba0
Test zero write in byte range 512~1024 for 4k alignment.
05bba0
05bba0
Signed-off-by: Fam Zheng <famz@redhat.com>
05bba0
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
05bba0
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
05bba0
Message-id: 1431522721-3266-4-git-send-email-famz@redhat.com
05bba0
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
05bba0
(cherry picked from commit ab53c44718305d3fde3d9d2251889f1cab694be2)
05bba0
Signed-off-by: Fam Zheng <famz@redhat.com>
05bba0
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
05bba0
---
05bba0
 tests/qemu-iotests/033     | 13 +++++++++++++
05bba0
 tests/qemu-iotests/033.out | 30 ++++++++++++++++++++++++++++++
05bba0
 2 files changed, 43 insertions(+)
05bba0
05bba0
diff --git a/tests/qemu-iotests/033 b/tests/qemu-iotests/033
05bba0
index 4008f10..a61d8ce 100755
05bba0
--- a/tests/qemu-iotests/033
05bba0
+++ b/tests/qemu-iotests/033
05bba0
@@ -78,6 +78,19 @@ for align in 512 4k; do
05bba0
 	echo
05bba0
 	echo "== verifying patterns (2) =="
05bba0
 	do_test $align "read -P 0x0 0x400 0x20000" "$TEST_IMG" | _filter_qemu_io
05bba0
+
05bba0
+	echo
05bba0
+	echo "== rewriting unaligned zeroes =="
05bba0
+	do_test $align "write -P 0xb 0x0 0x1000" "$TEST_IMG" | _filter_qemu_io
05bba0
+	do_test $align "write -z 0x200 0x200" "$TEST_IMG" | _filter_qemu_io
05bba0
+
05bba0
+	echo
05bba0
+	echo "== verifying patterns (3) =="
05bba0
+	do_test $align "read -P 0xb 0x0 0x200" "$TEST_IMG" | _filter_qemu_io
05bba0
+	do_test $align "read -P 0x0 0x200 0x200" "$TEST_IMG" | _filter_qemu_io
05bba0
+	do_test $align "read -P 0xb 0x400 0xc00" "$TEST_IMG" | _filter_qemu_io
05bba0
+
05bba0
+	echo
05bba0
 done
05bba0
 
05bba0
 # success, all done
05bba0
diff --git a/tests/qemu-iotests/033.out b/tests/qemu-iotests/033.out
05bba0
index 344065f..6896d73 100644
05bba0
--- a/tests/qemu-iotests/033.out
05bba0
+++ b/tests/qemu-iotests/033.out
05bba0
@@ -27,6 +27,21 @@ wrote 65536/65536 bytes at offset 65536
05bba0
 read 131072/131072 bytes at offset 1024
05bba0
 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
 
05bba0
+== rewriting unaligned zeroes ==
05bba0
+wrote 4096/4096 bytes at offset 0
05bba0
+4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+wrote 512/512 bytes at offset 512
05bba0
+512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+
05bba0
+== verifying patterns (3) ==
05bba0
+read 512/512 bytes at offset 0
05bba0
+512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+read 512/512 bytes at offset 512
05bba0
+512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+read 3072/3072 bytes at offset 1024
05bba0
+3 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+
05bba0
+
05bba0
 == preparing image ==
05bba0
 wrote 1024/1024 bytes at offset 512
05bba0
 1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
@@ -52,4 +67,19 @@ wrote 65536/65536 bytes at offset 65536
05bba0
 == verifying patterns (2) ==
05bba0
 read 131072/131072 bytes at offset 1024
05bba0
 128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+
05bba0
+== rewriting unaligned zeroes ==
05bba0
+wrote 4096/4096 bytes at offset 0
05bba0
+4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+wrote 512/512 bytes at offset 512
05bba0
+512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+
05bba0
+== verifying patterns (3) ==
05bba0
+read 512/512 bytes at offset 0
05bba0
+512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+read 512/512 bytes at offset 512
05bba0
+512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+read 3072/3072 bytes at offset 1024
05bba0
+3 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
05bba0
+
05bba0
 *** done
05bba0
-- 
05bba0
1.8.3.1
05bba0