Message ID | 1413984271-15471-4-git-send-email-mreitz@redhat.com |
---|---|
State | New |
Headers | show |
Am 22.10.2014 um 15:24 hat Max Reitz geschrieben: > Add a test for qemu-img map and qemu-io -c map on truncated files. > > Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> But how about adding a case for patch 2, too? Or is that one mostly theoretical (like the image file being modified in the background) and not reproducible reliably? Kevin
On 2014-10-22 at 15:51, Kevin Wolf wrote: > Am 22.10.2014 um 15:24 hat Max Reitz geschrieben: >> Add a test for qemu-img map and qemu-io -c map on truncated files. >> >> Signed-off-by: Max Reitz <mreitz@redhat.com> > Reviewed-by: Kevin Wolf <kwolf@redhat.com> > > But how about adding a case for patch 2, too? Or is that one mostly > theoretical (like the image file being modified in the background) and > not reproducible reliably? See the cover letter, I could not find a way to test patch 2 without triggering the changes introduced by patch 1. Yes, modifying the image in the background could be a way to do this. I could try, but I don't know if we really need a test for it. I'll give myself a couple of minutes and if it doesn't work, well, then this test stays the same in v3. Max
On 2014-10-22 at 15:54, Max Reitz wrote: > On 2014-10-22 at 15:51, Kevin Wolf wrote: >> Am 22.10.2014 um 15:24 hat Max Reitz geschrieben: >>> Add a test for qemu-img map and qemu-io -c map on truncated files. >>> >>> Signed-off-by: Max Reitz <mreitz@redhat.com> >> Reviewed-by: Kevin Wolf <kwolf@redhat.com> >> >> But how about adding a case for patch 2, too? Or is that one mostly >> theoretical (like the image file being modified in the background) and >> not reproducible reliably? > > See the cover letter, I could not find a way to test patch 2 without > triggering the changes introduced by patch 1. Yes, modifying the image > in the background could be a way to do this. I could try, but I don't > know if we really need a test for it. > > I'll give myself a couple of minutes and if it doesn't work, well, > then this test stays the same in v3. And I just realized that my series "raw-posix: Fix raw_co_get_block_status()" contains exactly such a test, which is also the reason why it doesn't work without this series. Max
On 2014-10-22 at 16:48, Max Reitz wrote: > On 2014-10-22 at 15:54, Max Reitz wrote: >> On 2014-10-22 at 15:51, Kevin Wolf wrote: >>> Am 22.10.2014 um 15:24 hat Max Reitz geschrieben: >>>> Add a test for qemu-img map and qemu-io -c map on truncated files. >>>> >>>> Signed-off-by: Max Reitz <mreitz@redhat.com> >>> Reviewed-by: Kevin Wolf <kwolf@redhat.com> >>> >>> But how about adding a case for patch 2, too? Or is that one mostly >>> theoretical (like the image file being modified in the background) and >>> not reproducible reliably? >> >> See the cover letter, I could not find a way to test patch 2 without >> triggering the changes introduced by patch 1. Yes, modifying the >> image in the background could be a way to do this. I could try, but I >> don't know if we really need a test for it. >> >> I'll give myself a couple of minutes and if it doesn't work, well, >> then this test stays the same in v3. > > And I just realized that my series "raw-posix: Fix > raw_co_get_block_status()" contains exactly such a test, which is also > the reason why it doesn't work without this series. And now I realized I hadn't sent out the latest version of that series, which includes this test, yet. Will do. Max
diff --git a/tests/qemu-iotests/102 b/tests/qemu-iotests/102 new file mode 100755 index 0000000..34b363f --- /dev/null +++ b/tests/qemu-iotests/102 @@ -0,0 +1,64 @@ +#!/bin/bash +# +# Test case for qemu-io -c map and qemu-img map +# +# Copyright (C) 2014 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=mreitz@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 qcow2 +_supported_proto file +_supported_os Linux + +IMG_SIZE=64K + +echo +echo '=== Testing map command on truncated image ===' +echo + +_make_test_img $IMG_SIZE +# Create cluster +$QEMU_IO -c 'write 0 64k' "$TEST_IMG" | _filter_qemu_io +# Remove data cluster from image (first cluster: image header, second: reftable, +# third: refblock, fourth: L1 table, fifth: L2 table) +truncate -s $((5 * 64 * 1024)) "$TEST_IMG" + +$QEMU_IO -c map "$TEST_IMG" +$QEMU_IMG map "$TEST_IMG" + +# success, all done +echo '*** done' +rm -f $seq.full +status=0 diff --git a/tests/qemu-iotests/102.out b/tests/qemu-iotests/102.out new file mode 100644 index 0000000..f0a91ed --- /dev/null +++ b/tests/qemu-iotests/102.out @@ -0,0 +1,10 @@ +QA output created by 102 + +=== Testing map command on truncated image === + +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=65536 +wrote 65536/65536 bytes at offset 0 +64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +[ 0] 128/ 128 sectors not allocated at offset 0 bytes (0) +Offset Length Mapped to File +*** done diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group index b230996..e4596b1 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group @@ -103,6 +103,7 @@ 099 rw auto quick 100 rw auto quick 101 rw auto quick +102 rw auto quick 103 rw auto quick 104 rw auto 105 rw auto quick
Add a test for qemu-img map and qemu-io -c map on truncated files. Signed-off-by: Max Reitz <mreitz@redhat.com> --- tests/qemu-iotests/102 | 64 ++++++++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/102.out | 10 ++++++++ tests/qemu-iotests/group | 1 + 3 files changed, 75 insertions(+) create mode 100755 tests/qemu-iotests/102 create mode 100644 tests/qemu-iotests/102.out