qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

014 (1977B)


      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
     25 owner=kwolf@redhat.com
     26 
     27 seq=`basename $0`
     28 echo "QA output created by $seq"
     29 
     30 status=1	# failure is the default!
     31 
     32 _cleanup()
     33 {
     34 	_cleanup_test_img
     35 }
     36 trap "_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 
     50 TEST_OFFSETS="0 4294967296"
     51 TEST_OPS="writev read write readv"
     52 CLUSTER_SIZE=4096
     53 
     54 _make_test_img 6G
     55 
     56 echo "Testing empty image:"
     57 for offset in $TEST_OFFSETS; do
     58     echo test2: With offset $offset
     59     io_test2 $offset $CLUSTER_SIZE 256
     60     _check_test_img
     61 done
     62 
     63 # With snapshots
     64 for 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
     73 done
     74 
     75 # success, all done
     76 echo "*** done"
     77 rm -f $seq.full
     78 status=0