xref: /openbmc/qemu/tests/qemu-iotests/052 (revision f95e26ddf526a025aa1334bbe527739397970443)
1*f95e26ddSStefan Hajnoczi#!/bin/bash
2*f95e26ddSStefan Hajnoczi#
3*f95e26ddSStefan Hajnoczi# Test bdrv_read/bdrv_write using BDRV_O_SNAPSHOT
4*f95e26ddSStefan Hajnoczi#
5*f95e26ddSStefan Hajnoczi# Copyright (C) 2013 Red Hat, Inc.
6*f95e26ddSStefan Hajnoczi#
7*f95e26ddSStefan Hajnoczi# This program is free software; you can redistribute it and/or modify
8*f95e26ddSStefan Hajnoczi# it under the terms of the GNU General Public License as published by
9*f95e26ddSStefan Hajnoczi# the Free Software Foundation; either version 2 of the License, or
10*f95e26ddSStefan Hajnoczi# (at your option) any later version.
11*f95e26ddSStefan Hajnoczi#
12*f95e26ddSStefan Hajnoczi# This program is distributed in the hope that it will be useful,
13*f95e26ddSStefan Hajnoczi# but WITHOUT ANY WARRANTY; without even the implied warranty of
14*f95e26ddSStefan Hajnoczi# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15*f95e26ddSStefan Hajnoczi# GNU General Public License for more details.
16*f95e26ddSStefan Hajnoczi#
17*f95e26ddSStefan Hajnoczi# You should have received a copy of the GNU General Public License
18*f95e26ddSStefan Hajnoczi# along with this program.  If not, see <http://www.gnu.org/licenses/>.
19*f95e26ddSStefan Hajnoczi#
20*f95e26ddSStefan Hajnoczi
21*f95e26ddSStefan Hajnoczi# creator
22*f95e26ddSStefan Hajnocziowner=stefanha@redhat.com
23*f95e26ddSStefan Hajnoczi
24*f95e26ddSStefan Hajnocziseq=`basename $0`
25*f95e26ddSStefan Hajnocziecho "QA output created by $seq"
26*f95e26ddSStefan Hajnoczi
27*f95e26ddSStefan Hajnoczihere=`pwd`
28*f95e26ddSStefan Hajnoczitmp=/tmp/$$
29*f95e26ddSStefan Hajnoczistatus=1	# failure is the default!
30*f95e26ddSStefan Hajnoczi
31*f95e26ddSStefan Hajnoczi_cleanup()
32*f95e26ddSStefan Hajnoczi{
33*f95e26ddSStefan Hajnoczi	_cleanup_test_img
34*f95e26ddSStefan Hajnoczi}
35*f95e26ddSStefan Hajnoczitrap "_cleanup; exit \$status" 0 1 2 3 15
36*f95e26ddSStefan Hajnoczi
37*f95e26ddSStefan Hajnoczi# get standard environment, filters and checks
38*f95e26ddSStefan Hajnoczi. ./common.rc
39*f95e26ddSStefan Hajnoczi. ./common.filter
40*f95e26ddSStefan Hajnoczi
41*f95e26ddSStefan Hajnoczi_supported_fmt generic
42*f95e26ddSStefan Hajnoczi_supported_proto generic
43*f95e26ddSStefan Hajnoczi_supported_os Linux
44*f95e26ddSStefan Hajnoczi
45*f95e26ddSStefan Hajnoczi
46*f95e26ddSStefan Hajnoczisize=128M
47*f95e26ddSStefan Hajnoczi_make_test_img $size
48*f95e26ddSStefan Hajnoczi
49*f95e26ddSStefan Hajnocziecho
50*f95e26ddSStefan Hajnocziecho "== reading whole image =="
51*f95e26ddSStefan Hajnoczi$QEMU_IO -s -c "read 0 $size" $TEST_IMG | _filter_qemu_io
52*f95e26ddSStefan Hajnoczi
53*f95e26ddSStefan Hajnocziecho
54*f95e26ddSStefan Hajnocziecho "== writing whole image does not modify image =="
55*f95e26ddSStefan Hajnoczi$QEMU_IO -s -c "write -P 0xa 0 $size" $TEST_IMG | _filter_qemu_io
56*f95e26ddSStefan Hajnoczi$QEMU_IO -c "read -P 0 0 $size" $TEST_IMG | _filter_qemu_io
57*f95e26ddSStefan Hajnoczi
58*f95e26ddSStefan Hajnoczi# success, all done
59*f95e26ddSStefan Hajnocziecho "*** done"
60*f95e26ddSStefan Hajnoczirm -f $seq.full
61*f95e26ddSStefan Hajnoczistatus=0
62