qemu/tests/qemu-iotests/014
<<
>>
Prefs
   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