diff options
Diffstat (limited to 'qemu/tests/qemu-iotests/038')
-rwxr-xr-x | qemu/tests/qemu-iotests/038 | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/qemu/tests/qemu-iotests/038 b/qemu/tests/qemu-iotests/038 deleted file mode 100755 index d99a1501d..000000000 --- a/qemu/tests/qemu-iotests/038 +++ /dev/null @@ -1,136 +0,0 @@ -#!/bin/bash -# -# Test COW from backing files with AIO -# -# Copyright (C) 2012 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=kwolf@redhat.com - -seq=`basename $0` -echo "QA output created by $seq" - -here=`pwd` -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 qed -_supported_proto file -_supported_os Linux - -CLUSTER_SIZE=2M -size=128M - -echo -echo "== creating backing file for COW tests ==" - -TEST_IMG_SAVE="$TEST_IMG" -TEST_IMG="$TEST_IMG.base" - -_make_test_img $size - -function backing_io() -{ - local offset=$1 - local sectors=$2 - local op=$3 - local pattern=0 - local cur_sec=0 - - for i in $(seq 0 $((sectors - 1))); do - cur_sec=$((offset / 65536 + i)) - pattern=$(( ( (cur_sec % 128) + (cur_sec / 128)) % 128 )) - - echo "$op -P $pattern $((cur_sec * 64))k 64k" - done -} - -backing_io 0 256 write | $QEMU_IO "$TEST_IMG" | _filter_qemu_io - -TEST_IMG="$TEST_IMG_SAVE" - -_make_test_img -b "$TEST_IMG.base" 6G - -echo -echo "== Some concurrent requests touching the same cluster ==" - -function overlay_io() -{ - # Start with a request touching two clusters - echo aio_write -P 0x80 2020k 80k - - # Then add some requests all over the place - for i in $(seq 0 15; seq 17 31; seq 33 47); do - echo aio_write -P $((0x81 + i)) $((i * 128))k 64k - done - - # Then backwards overwriting part of them - for i in $( (seq 0 15; seq 17 31; seq 33 47) | tac); do - echo aio_write -P $((0x81 + i)) $((i * 128 + 32))k 64k - done - - # And finally crossing the next cluster boundary - echo aio_write -P 0x90 4080k 80k -} - -overlay_io | $QEMU_IO "$TEST_IMG" | _filter_qemu_io |\ - sed -e 's/bytes at offset [0-9]*/bytes at offset XXX/g' \ - -e 's/qemu-io> //g' | paste - - | sort | tr '\t' '\n' - -echo -echo "== Verify image content ==" - -function verify_io() -{ - echo read -P 31 2016k 4k - echo read -P 0x80 2020k 80k - echo read -P 32 2100k 12k - echo read -P 33 2112k 64k - - echo read -P 63 4064k 16k - echo read -P 0x90 4080k 80k - echo read -P 65 4160k 64k - - for i in $(seq 0 15; seq 17 31; seq 33 47); do - echo read -P $((0x81 + i)) $((i * 128))k 96k - done - - for i in $(seq 0 14; seq 16 30; seq 32 47); do - local cur_sec=$(( i * 2 + 1 )) - local pattern=$(( ( (cur_sec % 128) + (cur_sec / 128)) % 128 )) - - echo read -P $pattern $((i * 128 + 96))k 32k - done -} - -verify_io | $QEMU_IO "$TEST_IMG" | _filter_qemu_io - -_check_test_img - -# success, all done -echo "*** done" -rm -f $seq.full -status=0 |