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