Browse Source
Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Christoph Hellwig <hch@lst.de>stable-1.1
3 changed files with 1186 additions and 0 deletions
@ -0,0 +1,107 @@ |
|||
#!/bin/sh |
|||
# |
|||
# Commit changes to backing file |
|||
# |
|||
# Copyright (C) 2009 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, write to the Free Software |
|||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 |
|||
# USA |
|||
# |
|||
|
|||
# creator |
|||
owner=kwolf@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 |
|||
rm -f $TEST_IMG.base |
|||
rm -f $TEST_IMG.orig |
|||
} |
|||
trap "_cleanup; exit \$status" 0 1 2 3 15 |
|||
|
|||
# get standard environment, filters and checks |
|||
. ./common.rc |
|||
. ./common.filter |
|||
. ./common.pattern |
|||
|
|||
# Any format supporting backing files |
|||
_supported_fmt qcow qcow2 vmdk |
|||
_supported_os Linux |
|||
|
|||
TEST_OFFSETS="0 4294967296" |
|||
|
|||
_make_test_img 6G |
|||
|
|||
echo "Filling base image" |
|||
echo |
|||
|
|||
for offset in $TEST_OFFSETS; do |
|||
# Some clusters with alternating backing file/image file reads |
|||
io writev $(( offset )) 512 1024 64 |
|||
|
|||
# Complete backing clusters |
|||
io writev $(( offset + 64 * 1024)) 65536 65536 1 |
|||
done |
|||
_check_test_img |
|||
|
|||
echo "Creating test image with backing file" |
|||
echo |
|||
|
|||
mv $TEST_IMG $TEST_IMG.base |
|||
_make_test_img -b $TEST_IMG.base 6G |
|||
|
|||
echo "Filling test image" |
|||
echo |
|||
|
|||
for offset in $TEST_OFFSETS; do |
|||
# Some clusters with alternating backing file/image file reads |
|||
io writev $(( offset + 512 )) 512 1024 64 |
|||
|
|||
# Complete test image clusters |
|||
io writev $(( offset + 64 * 1024 + 65536)) 65536 65536 1 |
|||
done |
|||
_check_test_img |
|||
|
|||
$QEMU_IMG commit $TEST_IMG |
|||
mv $TEST_IMG.base $TEST_IMG |
|||
|
|||
echo "Reading from the backing file" |
|||
echo |
|||
|
|||
for offset in $TEST_OFFSETS; do |
|||
# Some clusters with alternating backing file/image file reads |
|||
io readv $(( offset )) 512 1024 64 |
|||
io readv $(( offset + 512 )) 512 1024 64 |
|||
|
|||
# Complete test image clusters |
|||
io readv $(( offset + 64 * 1024)) 65536 65536 1 |
|||
io readv $(( offset + 64 * 1024 + 65536)) 65536 65536 1 |
|||
|
|||
# Empty sectors |
|||
io_zero readv $(( offset + 64 * 1024 + 65536 * 4 )) 65536 65536 1 |
|||
done |
|||
_check_test_img |
|||
|
|||
# success, all done |
|||
echo "*** done" |
|||
rm -f $seq.full |
|||
status=0 |
|||
File diff suppressed because it is too large
Loading…
Reference in new issue