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