Message ID | f6c072bfb4476b11d6ce568fb05407080eb2fac0.1380110346.git.jcody@redhat.com |
---|---|
State | New |
Headers | show |
On Wed, 09/25 08:12, Jeff Cody wrote: > This adds the VHDX format to the qemu-iotests format, and adds > a read test. The test reads from an existing sample image, that > was created with Hyper-V under Windwos Server 2012. s/Windwos/Windows/ Fam > > The image file is a 1GB dynamic image, with 32MB blocks. > > The pattern 0xa5 exists from 0MB-33MB (past a block size boundary) > > The pattern 0x96 exists from 33MB-66MB (past another block boundary, > and leaving a partial blank block) > > From 66MB-1024MB, all reads should return 0. > > Although 1GB dynamic image with 66MB of data, the bzip2'ed image > file size is only 874 bytes. > > Signed-off-by: Jeff Cody <jcody@redhat.com> > Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> > --- > tests/qemu-iotests/064 | 62 +++++++++++++++++++++ > tests/qemu-iotests/064.out | 14 +++++ > tests/qemu-iotests/common | 6 ++ > tests/qemu-iotests/group | 1 + > .../sample_images/iotest-dynamic-1G.vhdx.bz2 | Bin 0 -> 874 bytes > 5 files changed, 83 insertions(+) > create mode 100755 tests/qemu-iotests/064 > create mode 100644 tests/qemu-iotests/064.out > create mode 100644 tests/qemu-iotests/sample_images/iotest-dynamic-1G.vhdx.bz2 > > diff --git a/tests/qemu-iotests/064 b/tests/qemu-iotests/064 > new file mode 100755 > index 0000000..18a2e7a > --- /dev/null > +++ b/tests/qemu-iotests/064 > @@ -0,0 +1,62 @@ > +#!/bin/bash > +# > +# Test VHDX read/write from a sample image created with Hyper-V > +# > +# Copyright (C) 2013 Red Hat, Inc. > +# > +# 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=jcody@redhat.com > + > +seq=`basename $0` > +echo "QA output created by $seq" > + > +here=`pwd` > +tmp=/tmp/$$ > +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 > +. ./common.rc > +. ./common.filter > + > +_supported_fmt vhdx > +_supported_proto generic > +_supported_os Linux > + > +_use_sample_img iotest-dynamic-1G.vhdx.bz2 > + > +echo > +echo "=== Verify pattern 0xa5, 0 - 33MB ===" > +$QEMU_IO -c "read -pP 0xa5 0 33M" "$TEST_IMG" | _filter_qemu_io > + > +echo > +echo "=== Verify pattern 0x96, 33M - 66M ===" > +$QEMU_IO -c "read -pP 0x96 33M 33M" "$TEST_IMG" | _filter_qemu_io > + > +echo > +echo "=== Verify pattern 0x00, 66M - 1024M ===" > +$QEMU_IO -c "read -pP 0x00 66M 958M" "$TEST_IMG" | _filter_qemu_io > + > +# success, all done > +echo "*** done" > +rm -f $seq.full > +status=0 > diff --git a/tests/qemu-iotests/064.out b/tests/qemu-iotests/064.out > new file mode 100644 > index 0000000..b9e8e4a > --- /dev/null > +++ b/tests/qemu-iotests/064.out > @@ -0,0 +1,14 @@ > +QA output created by 064 > + > +=== Verify pattern 0xa5, 0 - 33MB === > +read 34603008/34603008 bytes at offset 0 > +33 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > + > +=== Verify pattern 0x96, 33M - 66M === > +read 34603008/34603008 bytes at offset 34603008 > +33 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > + > +=== Verify pattern 0x00, 66M - 1024M === > +read 1004535808/1004535808 bytes at offset 69206016 > +958 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +*** done > diff --git a/tests/qemu-iotests/common b/tests/qemu-iotests/common > index fecaf85..311c9e4 100644 > --- a/tests/qemu-iotests/common > +++ b/tests/qemu-iotests/common > @@ -133,6 +133,7 @@ check options > -qed test qed > -vdi test vdi > -vpc test vpc > + -vhdx test vhdx > -vmdk test vmdk > -rbd test rbd > -sheepdog test sheepdog > @@ -195,6 +196,11 @@ testlist options > xpand=false > ;; > > + -vhdx) > + IMGFMT=vhdx > + xpand=false > + ;; > + > -rbd) > IMGPROTO=rbd > xpand=false > diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group > index 1ad02e5..9e950fd 100644 > --- a/tests/qemu-iotests/group > +++ b/tests/qemu-iotests/group > @@ -69,3 +69,4 @@ > 061 rw auto > 062 rw auto > 063 rw auto > +064 rw auto > diff --git a/tests/qemu-iotests/sample_images/iotest-dynamic-1G.vhdx.bz2 b/tests/qemu-iotests/sample_images/iotest-dynamic-1G.vhdx.bz2 > new file mode 100644 > index 0000000000000000000000000000000000000000..77d97a0bae2e45b84ad489a77788084cc09331e0 > GIT binary patch > literal 874 > zcmV-w1C{(jT4*^jL0KkKS)@Vdf&hZIfB*mY_ijz2|NMXYGlTE%z2+coecwBIyV?7? > zRYF<0^&db2mkJrM&`P9@s2TtO0000000001paz-%27#ae0017K&}e8HN-(1kVrigg > z13&{nXwU!#fB~QY0000000001pg_pcpwKcJX_G+7gwSGQGHB2;7>oqbhyZB84Gbd_ > zCQULjF*ML*U`z^<ku<01QIpj3N(ZFK)6~-=)Mx+=JwOB0G|{FZpglkU8fXAC(dh%q > zHq|us0A%$&Lxl0c7NkVLFGMRq07UW*2)3emj1{>kK$s^jUBKR?z~CteOe$Qc!=`MK > zpppgLEo&~>A_R+6h=@Ddl1ZgN7+7*hWL09_s<d&+mMmjjw<LrCx2PjFk~{@nV^|kz > z6;cuaQLw8m>{bL}swE6xrU?On8VxK`u45pSB}p6^9?4@FBo_q60jNQ8)7nwfo~p{X > z21&Hu-QCr>IEs=a0NK%&p{HE(oeD(TehV85d6fuURBs<`t5K&|m^Maoo0fjdi=f}{ > z>E$yWvA4r~wZiNcLm<7lTF>T|a9Q1JFM7G$o)?hwxePeOZq}`A`za=Z)W^WEd#*Qp > z#kZ!X0!i<$>Ta+f8L@u+=r$sPWWhg>cfbk7O*y(bhdvqNE8G<%ccZNIDKSnW9b)lr > z?+BB(@#_SGMX@o$bqc@{OqyW;7?h|wi9+N-4D|@7-dVn6g4ihCM|pt2A}N5VGk<5? > z{FoRKTsV)8P`B0_=}2A^fU(eP{;OfF)7siztdO#@z6*HnA0O+ly16Hl#BjL02H~Lm > zU#o1s*F84YWNZGN7x>n4q>?0voA1&{kdPzmvi42q4UHtuzRJ>PzbPk0x?j$@OjIC3 > z291dl2@(l)mGJeNMy5-7djC|iYdFpGgRa2BeV-I!Lj_~=H)^bLy>S7`E*Kbz7L6m% > z!pI?M^X|&xFCh=b`Ky@r+f7T@9xGSDdF)KJ&1d`VHFb7cxH1v|W<-)Ch@CnRAp<+? > z+_Yc$iVDdxn#!(cW8fGi)&T|p2nYZGK>!1RnrIY~H<Tz)=_E*(j#5Pu)m2EUIYNaE > zB#I@zVuG?vrm|0*DoOy!8h{0W000C45I_K7m<m%&lp-yPP>8%;$rRy2Ky^V+T-`Z@ > A&j0`b > > literal 0 > HcmV?d00001 > > -- > 1.8.3.1 > >
diff --git a/tests/qemu-iotests/064 b/tests/qemu-iotests/064 new file mode 100755 index 0000000..18a2e7a --- /dev/null +++ b/tests/qemu-iotests/064 @@ -0,0 +1,62 @@ +#!/bin/bash +# +# Test VHDX read/write from a sample image created with Hyper-V +# +# Copyright (C) 2013 Red Hat, Inc. +# +# 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=jcody@redhat.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +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 +. ./common.rc +. ./common.filter + +_supported_fmt vhdx +_supported_proto generic +_supported_os Linux + +_use_sample_img iotest-dynamic-1G.vhdx.bz2 + +echo +echo "=== Verify pattern 0xa5, 0 - 33MB ===" +$QEMU_IO -c "read -pP 0xa5 0 33M" "$TEST_IMG" | _filter_qemu_io + +echo +echo "=== Verify pattern 0x96, 33M - 66M ===" +$QEMU_IO -c "read -pP 0x96 33M 33M" "$TEST_IMG" | _filter_qemu_io + +echo +echo "=== Verify pattern 0x00, 66M - 1024M ===" +$QEMU_IO -c "read -pP 0x00 66M 958M" "$TEST_IMG" | _filter_qemu_io + +# success, all done +echo "*** done" +rm -f $seq.full +status=0 diff --git a/tests/qemu-iotests/064.out b/tests/qemu-iotests/064.out new file mode 100644 index 0000000..b9e8e4a --- /dev/null +++ b/tests/qemu-iotests/064.out @@ -0,0 +1,14 @@ +QA output created by 064 + +=== Verify pattern 0xa5, 0 - 33MB === +read 34603008/34603008 bytes at offset 0 +33 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +=== Verify pattern 0x96, 33M - 66M === +read 34603008/34603008 bytes at offset 34603008 +33 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +=== Verify pattern 0x00, 66M - 1024M === +read 1004535808/1004535808 bytes at offset 69206016 +958 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +*** done diff --git a/tests/qemu-iotests/common b/tests/qemu-iotests/common index fecaf85..311c9e4 100644 --- a/tests/qemu-iotests/common +++ b/tests/qemu-iotests/common @@ -133,6 +133,7 @@ check options -qed test qed -vdi test vdi -vpc test vpc + -vhdx test vhdx -vmdk test vmdk -rbd test rbd -sheepdog test sheepdog @@ -195,6 +196,11 @@ testlist options xpand=false ;; + -vhdx) + IMGFMT=vhdx + xpand=false + ;; + -rbd) IMGPROTO=rbd xpand=false diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group index 1ad02e5..9e950fd 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group @@ -69,3 +69,4 @@ 061 rw auto 062 rw auto 063 rw auto +064 rw auto