block: qemu-iotests - add check for multiplication overflow in vpc

This checks that VPC is able to successfully fail (without segfault)
on an image file with a max_table_entries that exceeds 0x40000000.

This table entry is within the valid range for VPC (although too large
for this sample image).

Cc: qemu-stable@nongnu.org
Signed-off-by: Jeff Cody <jcody@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit 77c102c26e)
Conflicts:
	tests/qemu-iotests/group

* removed context dependency on iotest not present in 2.3.0 group
  file

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
Jeff Cody 2015-07-24 10:26:52 -04:00 committed by Michael Roth
parent 358f0ee234
commit 0dc545e977
4 changed files with 60 additions and 0 deletions

54
tests/qemu-iotests/135 Executable file
View File

@ -0,0 +1,54 @@
#!/bin/bash
#
# Test VPC open of image with large Max Table Entries value.
#
# Copyright (C) 2015 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=jcody@redhat.com
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 vpc
_supported_proto generic
_supported_os Linux
_use_sample_img afl5.img.bz2
echo
echo "=== Verify image open and failure ===="
$QEMU_IMG info "$TEST_IMG" 2>&1| _filter_testdir
# success, all done
echo "*** done"
rm -f $seq.full
status=0

View File

@ -0,0 +1,5 @@
QA output created by 135
=== Verify image open and failure ====
qemu-img: Could not open 'TEST_DIR/afl5.img': Max Table Entries too large (1073741825)
*** done

View File

@ -126,3 +126,4 @@
128 rw auto quick 128 rw auto quick
130 rw auto quick 130 rw auto quick
132 rw auto quick 132 rw auto quick
135 rw auto

Binary file not shown.