111a82d14SPhilippe Mathieu-Daudé#!/usr/bin/env bash 2*9dd003a9SVladimir Sementsov-Ogievskiy# group: rw quick 35e71dfadSKevin Wolf# 45e71dfadSKevin Wolf# vpc (VHD) format input validation tests 55e71dfadSKevin Wolf# 65e71dfadSKevin Wolf# Copyright (C) 2014 Red Hat, Inc. 75e71dfadSKevin Wolf# 85e71dfadSKevin Wolf# This program is free software; you can redistribute it and/or modify 95e71dfadSKevin Wolf# it under the terms of the GNU General Public License as published by 105e71dfadSKevin Wolf# the Free Software Foundation; either version 2 of the License, or 115e71dfadSKevin Wolf# (at your option) any later version. 125e71dfadSKevin Wolf# 135e71dfadSKevin Wolf# This program is distributed in the hope that it will be useful, 145e71dfadSKevin Wolf# but WITHOUT ANY WARRANTY; without even the implied warranty of 155e71dfadSKevin Wolf# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 165e71dfadSKevin Wolf# GNU General Public License for more details. 175e71dfadSKevin Wolf# 185e71dfadSKevin Wolf# You should have received a copy of the GNU General Public License 195e71dfadSKevin Wolf# along with this program. If not, see <http://www.gnu.org/licenses/>. 205e71dfadSKevin Wolf# 215e71dfadSKevin Wolf 225e71dfadSKevin Wolf# creator 235e71dfadSKevin Wolfowner=kwolf@redhat.com 245e71dfadSKevin Wolf 255e71dfadSKevin Wolfseq=`basename $0` 265e71dfadSKevin Wolfecho "QA output created by $seq" 275e71dfadSKevin Wolf 285e71dfadSKevin Wolfstatus=1 # failure is the default! 295e71dfadSKevin Wolf 305e71dfadSKevin Wolf_cleanup() 315e71dfadSKevin Wolf{ 32f91ecbd7SMax Reitz _rm_test_img "$TEST_IMG.snap" 335e71dfadSKevin Wolf _cleanup_test_img 345e71dfadSKevin Wolf} 355e71dfadSKevin Wolftrap "_cleanup; exit \$status" 0 1 2 3 15 365e71dfadSKevin Wolf 375e71dfadSKevin Wolf# get standard environment, filters and checks 385e71dfadSKevin Wolf. ./common.rc 395e71dfadSKevin Wolf. ./common.filter 405e71dfadSKevin Wolf 415e71dfadSKevin Wolf_supported_fmt vpc 42c5f7c0afSPeter Lieven_supported_proto file 435e71dfadSKevin Wolf_supported_os Linux 445e71dfadSKevin Wolf 455e71dfadSKevin Wolfoffset_block_size=$((512 + 32)) 465e71dfadSKevin Wolf 475e71dfadSKevin Wolfecho 485e71dfadSKevin Wolfecho "== Invalid block size ==" 495e71dfadSKevin Wolf_make_test_img 64M 505e71dfadSKevin Wolfpoke_file "$TEST_IMG" "$offset_block_size" "\x00\x00\x00\x00" 515e71dfadSKevin Wolf{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir 525e71dfadSKevin Wolf{ $QEMU_IO -c "write 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir 535e71dfadSKevin Wolfpoke_file "$TEST_IMG" "$offset_block_size" "\x00\x00\x00\x80" 545e71dfadSKevin Wolf{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir 555e71dfadSKevin Wolf{ $QEMU_IO -c "write 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir 565e71dfadSKevin Wolfpoke_file "$TEST_IMG" "$offset_block_size" "\x12\x34\x56\x78" 575e71dfadSKevin Wolf{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir 585e71dfadSKevin Wolf{ $QEMU_IO -c "write 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir 595e71dfadSKevin Wolf 605e71dfadSKevin Wolf# success, all done 615e71dfadSKevin Wolfecho "*** done" 625e71dfadSKevin Wolfrm -f $seq.full 635e71dfadSKevin Wolfstatus=0 64