cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

025 (2070B)


      1#!/usr/bin/env bash
      2# group: rw auto quick
      3#
      4# Resizing images
      5#
      6# Copyright (C) 2010 IBM, Corp.
      7#
      8# This program is free software; you can redistribute it and/or modify
      9# it under the terms of the GNU General Public License as published by
     10# the Free Software Foundation; either version 2 of the License, or
     11# (at your option) any later version.
     12#
     13# This program is distributed in the hope that it will be useful,
     14# but WITHOUT ANY WARRANTY; without even the implied warranty of
     15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16# GNU General Public License for more details.
     17#
     18# You should have received a copy of the GNU General Public License
     19# along with this program.  If not, see <http://www.gnu.org/licenses/>.
     20#
     21
     22# creator
     23owner=stefanha@linux.vnet.ibm.com
     24
     25seq=`basename $0`
     26echo "QA output created by $seq"
     27
     28status=1	# failure is the default!
     29
     30_cleanup()
     31{
     32	_cleanup_test_img
     33}
     34trap "_cleanup; exit \$status" 0 1 2 3 15
     35
     36# get standard environment, filters and checks
     37. ./common.rc
     38. ./common.filter
     39. ./common.pattern
     40
     41_supported_fmt raw qcow2 qed luks
     42_supported_proto file rbd nfs fuse
     43
     44echo "=== Creating image"
     45echo
     46small_size=$((128 * 1024 * 1024))
     47big_size=$((384 * 1024 * 1024))
     48_make_test_img $small_size
     49
     50echo
     51echo "=== Writing whole image"
     52io_pattern write 0 $small_size 0 1 0xc5
     53_check_test_img
     54
     55echo
     56echo "=== Resizing image"
     57$QEMU_IO "$TEST_IMG" <<EOF | _filter_qemu_io
     58length
     59truncate $big_size
     60length
     61EOF
     62_check_test_img
     63
     64# bdrv_truncate() doesn't zero the new space, so we need to do that explicitly.
     65# We still want to test automatic zeroing for other formats even though
     66# bdrv_truncate() doesn't guarantee it.
     67if [ "$IMGFMT" == "luks" ]; then
     68    $QEMU_IO -c "write -z $small_size $((big_size - small_size))" "$TEST_IMG" > /dev/null
     69fi
     70
     71echo
     72echo "=== Verifying image size after reopen"
     73$QEMU_IO -c "length" "$TEST_IMG"
     74
     75echo
     76echo "=== Verifying resized image"
     77io_pattern read 0 $small_size 0 1 0xc5
     78io_pattern read $small_size $(($big_size - $small_size)) 0 1 0
     79
     80# success, all done
     81echo "*** done"
     82rm -f $seq.full
     83status=0