qemu/tests/qemu-iotests/004
Christoph Hellwig e8c212d682 qemu-iotests: replace FSF postal addresses with www.gnu.org links
Blue Swirl notices that we were using the old FSF post address in the
license boilerplates.  Replace both the old and new address with links
to the gnu.org licenses homepage as suggested by Ben Pfaff.

Signed-off-by: Christoph Hellwig <hch@lst.de>
2012-02-22 16:17:02 +01:00

104 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
#
# Make sure we can't read and write outside of the image size.
#
# 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, see <http://www.gnu.org/licenses/>.
#
# creator
owner=hch@lst.de
seq=`basename $0`
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
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
_supported_fmt generic
_supported_os Linux
size=128M
pre_offset=127M
past_offset=140M
_make_test_img $size
echo
echo "write before image boundary"
$QEMU_IO -c "write $pre_offset 1M" $TEST_IMG | _filter_qemu_io
echo
echo "write into image boundary"
$QEMU_IO -c "write $pre_offset 4M" $TEST_IMG
echo
echo "write at image boundary"
$QEMU_IO -c "write $size 4096" $TEST_IMG
echo
echo "write past image boundary"
$QEMU_IO -c "write $past_offset 4096" $TEST_IMG
echo
echo "pwrite past image boundary"
$QEMU_IO -c "write -p $past_offset 4096" $TEST_IMG
echo
echo "writev past image boundary"
$QEMU_IO -c "writev $past_offset 4096" $TEST_IMG
echo
echo "read before image boundary"
$QEMU_IO -c "read $pre_offset 1M" $TEST_IMG | _filter_qemu_io
echo
echo "read into image boundary"
$QEMU_IO -c "read $pre_offset 4M" $TEST_IMG
echo
echo "read at image boundary"
$QEMU_IO -c "read $size 4096" $TEST_IMG
echo
echo "read past image boundary"
$QEMU_IO -c "read $past_offset 4096" $TEST_IMG
echo
echo "pread past image boundary"
$QEMU_IO -c "read -p $past_offset 4096" $TEST_IMG
echo
echo "readv past image boundary"
$QEMU_IO -c "readv $past_offset 4096" $TEST_IMG
# success, all done
echo "*** done"
rm -f $seq.full
status=0