diff options
Diffstat (limited to 'qemu/tests/qemu-iotests/028')
-rwxr-xr-x | qemu/tests/qemu-iotests/028 | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/qemu/tests/qemu-iotests/028 b/qemu/tests/qemu-iotests/028 deleted file mode 100755 index 7783e57c7..000000000 --- a/qemu/tests/qemu-iotests/028 +++ /dev/null @@ -1,139 +0,0 @@ -#!/bin/bash -# -# Test that backing files can be smaller than the image -# -# Copyright (C) 2010 IBM, Corp. -# -# Based on 017: -# 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, see <http://www.gnu.org/licenses/>. -# - -# creator -owner=stefanha@linux.vnet.ibm.com - -seq=`basename $0` -echo "QA output created by $seq" - -here=`pwd` -status=1 # failure is the default! - -_cleanup() -{ - rm -f "${TEST_IMG}.copy" - _cleanup_test_img -} -trap "_cleanup; exit \$status" 0 1 2 3 15 - -# get standard environment, filters and checks -. ./common.rc -. ./common.filter -. ./common.pattern -. ./common.qemu - -# Any format supporting backing files except vmdk and qcow which do not support -# smaller backing files. -_supported_fmt qcow2 qed -_supported_proto file -_supported_os Linux - -# Choose a size that is not necessarily a cluster size multiple for image -# formats that use clusters. This will ensure that the base image doesn't end -# precisely on a cluster boundary (the easy case). -image_size=$(( 4 * 1024 * 1024 * 1024 + 3 * 512 )) - -# The base image is smaller than the image file -base_size=$(( image_size - 1024 * 1024 * 1024 )) - -offset=$(( base_size - 32 * 1024 )) - -TEST_IMG_SAVE="$TEST_IMG" -TEST_IMG="$TEST_IMG.base" - -_make_test_img $base_size - -echo "Filling base image" -echo - -# Fill end of base image with a pattern, skipping every other sector -io writev $offset 512 1024 32 - -_check_test_img - -echo "Creating test image with backing file" -echo - -TEST_IMG="$TEST_IMG_SAVE" -_make_test_img -b "$TEST_IMG.base" $image_size - -echo "Filling test image" -echo - -# Write every other sector around where the base image ends -io writev $(( offset + 512 )) 512 1024 64 - -_check_test_img - -echo "Reading" -echo - -# Base image sectors -io readv $(( offset )) 512 1024 32 - -# Image sectors -io readv $(( offset + 512 )) 512 1024 64 - -# Zero sectors beyond end of base image -io_zero readv $(( offset + 32 * 1024 )) 512 1024 32 - -_check_test_img - -# Rebase it on top of its base image -$QEMU_IMG rebase -b "$TEST_IMG.base" "$TEST_IMG" - -echo -echo block-backup -echo - -qemu_comm_method="monitor" -_launch_qemu -drive file="${TEST_IMG}",cache=${CACHEMODE},id=disk -h=$QEMU_HANDLE -QEMU_COMM_TIMEOUT=1 - -# Silence output since it contains the disk image path and QEMU's readline -# character echoing makes it very hard to filter the output. Plus, there -# is no telling how many times the command will repeat before succeeding. -_send_qemu_cmd $h "drive_backup disk ${TEST_IMG}.copy" "(qemu)" >/dev/null -_send_qemu_cmd $h "" "Formatting" | _filter_img_create -qemu_cmd_repeat=20 _send_qemu_cmd $h "info block-jobs" "No active jobs" >/dev/null -_send_qemu_cmd $h "info block-jobs" "No active jobs" -_send_qemu_cmd $h 'quit' "" - -# Base image sectors -TEST_IMG="${TEST_IMG}.copy" io readv $(( offset )) 512 1024 32 - -# Image sectors -TEST_IMG="${TEST_IMG}.copy" io readv $(( offset + 512 )) 512 1024 64 - -# Zero sectors beyond end of base image -TEST_IMG="${TEST_IMG}.copy" io_zero readv $(( offset + 32 * 1024 )) 512 1024 32 - - -_check_test_img - -# success, all done -echo "*** done" -rm -f $seq.full -status=0 |