~dannf/qemu-linaro/qemu-highbank-ppa

« back to all changes in this revision

Viewing changes to tests/qemu-iotests/013

  • Committer: Steve Langasek
  • Date: 2012-03-15 21:13:19 UTC
  • mfrom: (0.1.15)
  • Revision ID: steve.langasek@canonical.com-20120315211319-f1j3ot1ihx30b2s9
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/bash
 
2
#
 
3
# qcow2 pattern test, empty and compressed image - 4k cluster patterns
 
4
#
 
5
# Copyright (C) 2009 Red Hat, Inc.
 
6
#
 
7
# This program is free software; you can redistribute it and/or modify
 
8
# it under the terms of the GNU General Public License as published by
 
9
# the Free Software Foundation; either version 2 of the License, or
 
10
# (at your option) any later version.
 
11
#
 
12
# This program is distributed in the hope that it will be useful,
 
13
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
# GNU General Public License for more details.
 
16
#
 
17
# You should have received a copy of the GNU General Public License
 
18
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
19
#
 
20
 
 
21
# creator
 
22
owner=kwolf@redhat.com
 
23
 
 
24
seq=`basename $0`
 
25
echo "QA output created by $seq"
 
26
 
 
27
here=`pwd`
 
28
tmp=/tmp/$$
 
29
status=1        # failure is the default!
 
30
 
 
31
_cleanup()
 
32
{
 
33
        _cleanup_test_img
 
34
}
 
35
trap "_cleanup; exit \$status" 0 1 2 3 15
 
36
 
 
37
# get standard environment, filters and checks
 
38
. ./common.rc
 
39
. ./common.filter
 
40
. ./common.pattern
 
41
 
 
42
# much of this could be generic for any format supporting compression.
 
43
_supported_fmt qcow qcow2
 
44
_supported_proto generic
 
45
_supported_os Linux
 
46
 
 
47
TEST_OFFSETS="0 4294967296"
 
48
TEST_OPS="writev read write readv"
 
49
CLUSTER_SIZE=4096
 
50
 
 
51
_make_test_img 6G
 
52
 
 
53
echo "Testing empty image"
 
54
echo
 
55
 
 
56
for offset in $TEST_OFFSETS; do
 
57
    echo "At offset $offset:"
 
58
    for op in $TEST_OPS; do
 
59
        io_test $op $offset $CLUSTER_SIZE 8
 
60
    done
 
61
    _check_test_img
 
62
done
 
63
 
 
64
 
 
65
echo "Compressing image"
 
66
echo
 
67
 
 
68
mv $TEST_IMG $TEST_IMG.orig
 
69
$QEMU_IMG convert -f $IMGFMT -O $IMGFMT -c $TEST_IMG.orig $TEST_IMG
 
70
 
 
71
echo "Testing compressed image"
 
72
echo
 
73
 
 
74
for offset in $TEST_OFFSETS; do
 
75
    echo "With offset $offset:"
 
76
    for op in read readv; do
 
77
        io_test $op $offset $CLUSTER_SIZE 8
 
78
    done
 
79
    _check_test_img
 
80
done
 
81
 
 
82
echo "Testing compressed image with odd offsets"
 
83
echo
 
84
for offset in $TEST_OFFSETS; do
 
85
    # Some odd offset (1 sector), so tests will write to areas occupied partly
 
86
    # by old (compressed) data and empty clusters
 
87
    offset=$((offset + 512))
 
88
    echo "With offset $offset:"
 
89
    for op in $TEST_OPS; do
 
90
        io_test $op $offset $CLUSTER_SIZE 8
 
91
    done
 
92
    _check_test_img
 
93
done
 
94
 
 
95
# success, all done
 
96
echo "*** done"
 
97
rm -f $seq.full
 
98
status=0