1#!/usr/bin/env bash 2# group: rw 3# 4# qcow2 pattern test, complex patterns including compression and snapshots 5# Using patterns for 4k cluster size. 6# 7# 8# Copyright (C) 2009 Red Hat, Inc. 9# 10# This program is free software; you can redistribute it and/or modify 11# it under the terms of the GNU General Public License as published by 12# the Free Software Foundation; either version 2 of the License, or 13# (at your option) any later version. 14# 15# This program is distributed in the hope that it will be useful, 16# but WITHOUT ANY WARRANTY; without even the implied warranty of 17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18# GNU General Public License for more details. 19# 20# You should have received a copy of the GNU General Public License 21# along with this program. If not, see <http://www.gnu.org/licenses/>. 22# 23 24# creator 25owner=kwolf@redhat.com 26 27seq=`basename $0` 28echo "QA output created by $seq" 29 30status=1 # failure is the default! 31 32_cleanup() 33{ 34 _cleanup_test_img 35} 36trap "_cleanup; exit \$status" 0 1 2 3 15 37 38# get standard environment, filters and checks 39. ./common.rc 40. ./common.filter 41. ./common.pattern 42 43# much of this could be generic for any format supporting snapshots 44_supported_fmt qcow2 45_supported_proto file 46_supported_os Linux 47# Compression and snapshots do not work with external data files 48_unsupported_imgopts data_file 49 50TEST_OFFSETS="0 4294967296" 51TEST_OPS="writev read write readv" 52CLUSTER_SIZE=4096 53 54_make_test_img 6G 55 56echo "Testing empty image:" 57for offset in $TEST_OFFSETS; do 58 echo test2: With offset $offset 59 io_test2 $offset $CLUSTER_SIZE 256 60 _check_test_img 61done 62 63# With snapshots 64for i in `seq 1 3`; do 65 $QEMU_IMG snapshot -c test$i "$TEST_IMG" 66 for offset in $TEST_OFFSETS; do 67 echo With snapshot test$i, offset $offset 68 for op in $TEST_OPS; do 69 io_test $op $offset $CLUSTER_SIZE 8 70 done 71 _check_test_img 72 done 73done 74 75# success, all done 76echo "*** done" 77rm -f $seq.full 78status=0 79