xref: /openbmc/qemu/tests/qemu-iotests/050 (revision acbf30ec)
1*acbf30ecSPaolo Bonzini#!/bin/bash
2*acbf30ecSPaolo Bonzini#
3*acbf30ecSPaolo Bonzini# Test qemu-img rebase with zero clusters
4*acbf30ecSPaolo Bonzini#
5*acbf30ecSPaolo Bonzini# Copyright (C) 2013 Red Hat, Inc.
6*acbf30ecSPaolo Bonzini#
7*acbf30ecSPaolo Bonzini# This program is free software; you can redistribute it and/or modify
8*acbf30ecSPaolo Bonzini# it under the terms of the GNU General Public License as published by
9*acbf30ecSPaolo Bonzini# the Free Software Foundation; either version 2 of the License, or
10*acbf30ecSPaolo Bonzini# (at your option) any later version.
11*acbf30ecSPaolo Bonzini#
12*acbf30ecSPaolo Bonzini# This program is distributed in the hope that it will be useful,
13*acbf30ecSPaolo Bonzini# but WITHOUT ANY WARRANTY; without even the implied warranty of
14*acbf30ecSPaolo Bonzini# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15*acbf30ecSPaolo Bonzini# GNU General Public License for more details.
16*acbf30ecSPaolo Bonzini#
17*acbf30ecSPaolo Bonzini# You should have received a copy of the GNU General Public License
18*acbf30ecSPaolo Bonzini# along with this program.  If not, see <http://www.gnu.org/licenses/>.
19*acbf30ecSPaolo Bonzini#
20*acbf30ecSPaolo Bonzini
21*acbf30ecSPaolo Bonzini# creator
22*acbf30ecSPaolo Bonziniowner=pbonzini@redhat.com
23*acbf30ecSPaolo Bonzini
24*acbf30ecSPaolo Bonziniseq=`basename $0`
25*acbf30ecSPaolo Bonziniecho "QA output created by $seq"
26*acbf30ecSPaolo Bonzini
27*acbf30ecSPaolo Bonzinihere=`pwd`
28*acbf30ecSPaolo Bonzinitmp=/tmp/$$
29*acbf30ecSPaolo Bonzinistatus=1	# failure is the default!
30*acbf30ecSPaolo Bonzini
31*acbf30ecSPaolo Bonzini_cleanup()
32*acbf30ecSPaolo Bonzini{
33*acbf30ecSPaolo Bonzini    _cleanup_test_img
34*acbf30ecSPaolo Bonzini    rm -f $TEST_IMG.old
35*acbf30ecSPaolo Bonzini    rm -f $TEST_IMG.new
36*acbf30ecSPaolo Bonzini}
37*acbf30ecSPaolo Bonzinitrap "_cleanup; exit \$status" 0 1 2 3 15
38*acbf30ecSPaolo Bonzini
39*acbf30ecSPaolo Bonzini# get standard environment, filters and checks
40*acbf30ecSPaolo Bonzini. ./common.rc
41*acbf30ecSPaolo Bonzini. ./common.filter
42*acbf30ecSPaolo Bonzini
43*acbf30ecSPaolo Bonzini_supported_fmt qcow2 qed
44*acbf30ecSPaolo Bonzini_supported_proto file
45*acbf30ecSPaolo Bonzini_supported_os Linux
46*acbf30ecSPaolo Bonzini
47*acbf30ecSPaolo Bonziniif test "$IMGFMT" = qcow2 && test $IMGOPTS = ""; then
48*acbf30ecSPaolo Bonzini  IMGOPTS=compat=1.1
49*acbf30ecSPaolo Bonzinifi
50*acbf30ecSPaolo Bonzini
51*acbf30ecSPaolo Bonziniecho
52*acbf30ecSPaolo Bonziniecho "== Creating images =="
53*acbf30ecSPaolo Bonzini
54*acbf30ecSPaolo Bonzinisize=10M
55*acbf30ecSPaolo Bonzini_make_test_img $size
56*acbf30ecSPaolo Bonzini$QEMU_IO -c "write -P 0x40 0 1048576" $TEST_IMG | _filter_qemu_io
57*acbf30ecSPaolo Bonzinimv $TEST_IMG $TEST_IMG.old
58*acbf30ecSPaolo Bonzini
59*acbf30ecSPaolo Bonzini_make_test_img $size
60*acbf30ecSPaolo Bonzini$QEMU_IO -c "write -P 0x5a 0 1048576" $TEST_IMG | _filter_qemu_io
61*acbf30ecSPaolo Bonzinimv $TEST_IMG $TEST_IMG.new
62*acbf30ecSPaolo Bonzini
63*acbf30ecSPaolo Bonzini_make_test_img -b $TEST_IMG.old $size
64*acbf30ecSPaolo Bonzini$QEMU_IO -c "write -z 0 1048576" $TEST_IMG | _filter_qemu_io
65*acbf30ecSPaolo Bonzini
66*acbf30ecSPaolo Bonziniecho
67*acbf30ecSPaolo Bonziniecho "== Rebasing the image =="
68*acbf30ecSPaolo Bonzini
69*acbf30ecSPaolo Bonzini$QEMU_IMG rebase -b $TEST_IMG.new $TEST_IMG
70*acbf30ecSPaolo Bonzini$QEMU_IO -c "read -P 0x00 0 1048576" $TEST_IMG | _filter_qemu_io
71*acbf30ecSPaolo Bonzini
72*acbf30ecSPaolo Bonzini# success, all done
73*acbf30ecSPaolo Bonziniecho "*** done"
74*acbf30ecSPaolo Bonzinirm -f $seq.full
75*acbf30ecSPaolo Bonzinistatus=0
76