#!/bin/bash
#
# Test bdrv_load/save_vmstate using the usual patterns
#
# Copyright (C) 2009 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
# USA
#

# creator
owner=kwolf@redhat.com

seq=`basename $0`
echo "QA output created by $seq"

status=1	# failure is the default!

_cleanup()
{
	_cleanup_test_img
}
trap "_cleanup; exit \$status" 0 1 2 3 15

# get standard environment, filters and checks
. ./common.rc
. ./common.filter
. ./common.pattern

# Any format that supports snapshots
_supported_fmt qcow2
_supported_proto generic
_supported_os Linux

TEST_OFFSETS="10485760 4294967296"
CLUSTER_SIZE="4096"

_make_test_img 6G

echo "Testing empty image"
echo

for offset in $TEST_OFFSETS; do
    echo "At offset $offset:"
    io_test "write -b" $offset $CLUSTER_SIZE 8
    io_test "read -b" $offset $CLUSTER_SIZE 8
    _check_test_img
done

# success, all done
echo "*** done"
rm -f $seq.full
status=0
