xref: /openbmc/qemu/tests/qemu-iotests/088 (revision 5e71dfad)
1*5e71dfadSKevin Wolf#!/bin/bash
2*5e71dfadSKevin Wolf#
3*5e71dfadSKevin Wolf# vpc (VHD) format input validation tests
4*5e71dfadSKevin Wolf#
5*5e71dfadSKevin Wolf# Copyright (C) 2014 Red Hat, Inc.
6*5e71dfadSKevin Wolf#
7*5e71dfadSKevin Wolf# This program is free software; you can redistribute it and/or modify
8*5e71dfadSKevin Wolf# it under the terms of the GNU General Public License as published by
9*5e71dfadSKevin Wolf# the Free Software Foundation; either version 2 of the License, or
10*5e71dfadSKevin Wolf# (at your option) any later version.
11*5e71dfadSKevin Wolf#
12*5e71dfadSKevin Wolf# This program is distributed in the hope that it will be useful,
13*5e71dfadSKevin Wolf# but WITHOUT ANY WARRANTY; without even the implied warranty of
14*5e71dfadSKevin Wolf# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15*5e71dfadSKevin Wolf# GNU General Public License for more details.
16*5e71dfadSKevin Wolf#
17*5e71dfadSKevin Wolf# You should have received a copy of the GNU General Public License
18*5e71dfadSKevin Wolf# along with this program.  If not, see <http://www.gnu.org/licenses/>.
19*5e71dfadSKevin Wolf#
20*5e71dfadSKevin Wolf
21*5e71dfadSKevin Wolf# creator
22*5e71dfadSKevin Wolfowner=kwolf@redhat.com
23*5e71dfadSKevin Wolf
24*5e71dfadSKevin Wolfseq=`basename $0`
25*5e71dfadSKevin Wolfecho "QA output created by $seq"
26*5e71dfadSKevin Wolf
27*5e71dfadSKevin Wolfhere=`pwd`
28*5e71dfadSKevin Wolftmp=/tmp/$$
29*5e71dfadSKevin Wolfstatus=1	# failure is the default!
30*5e71dfadSKevin Wolf
31*5e71dfadSKevin Wolf_cleanup()
32*5e71dfadSKevin Wolf{
33*5e71dfadSKevin Wolf    rm -f $TEST_IMG.snap
34*5e71dfadSKevin Wolf    _cleanup_test_img
35*5e71dfadSKevin Wolf}
36*5e71dfadSKevin Wolftrap "_cleanup; exit \$status" 0 1 2 3 15
37*5e71dfadSKevin Wolf
38*5e71dfadSKevin Wolf# get standard environment, filters and checks
39*5e71dfadSKevin Wolf. ./common.rc
40*5e71dfadSKevin Wolf. ./common.filter
41*5e71dfadSKevin Wolf
42*5e71dfadSKevin Wolf_supported_fmt vpc
43*5e71dfadSKevin Wolf_supported_proto generic
44*5e71dfadSKevin Wolf_supported_os Linux
45*5e71dfadSKevin Wolf
46*5e71dfadSKevin Wolfoffset_block_size=$((512 + 32))
47*5e71dfadSKevin Wolf
48*5e71dfadSKevin Wolfecho
49*5e71dfadSKevin Wolfecho "== Invalid block size =="
50*5e71dfadSKevin Wolf_make_test_img 64M
51*5e71dfadSKevin Wolfpoke_file "$TEST_IMG" "$offset_block_size" "\x00\x00\x00\x00"
52*5e71dfadSKevin Wolf{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
53*5e71dfadSKevin Wolf{ $QEMU_IO -c "write 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
54*5e71dfadSKevin Wolfpoke_file "$TEST_IMG" "$offset_block_size" "\x00\x00\x00\x80"
55*5e71dfadSKevin Wolf{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
56*5e71dfadSKevin Wolf{ $QEMU_IO -c "write 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
57*5e71dfadSKevin Wolfpoke_file "$TEST_IMG" "$offset_block_size" "\x12\x34\x56\x78"
58*5e71dfadSKevin Wolf{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
59*5e71dfadSKevin Wolf{ $QEMU_IO -c "write 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
60*5e71dfadSKevin Wolf
61*5e71dfadSKevin Wolf# success, all done
62*5e71dfadSKevin Wolfecho "*** done"
63*5e71dfadSKevin Wolfrm -f $seq.full
64*5e71dfadSKevin Wolfstatus=0
65