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

301 (2370B)


      1#!/usr/bin/env bash
      2# group: backing quick
      3#
      4# Test qcow backing file warnings
      5#
      6# Copyright (C) 2020-2021 Red Hat, Inc.
      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
     22seq=`basename $0`
     23echo "QA output created by $seq"
     24
     25status=1 # failure is the default!
     26
     27_cleanup()
     28{
     29    _cleanup_test_img
     30    _rm_test_img "$TEST_IMG.qcow2"
     31}
     32trap "_cleanup; exit \$status" 0 1 2 3 15
     33
     34# get standard environment, filters and checks
     35. ./common.rc
     36. ./common.filter
     37
     38_supported_fmt qcow
     39_supported_proto file
     40_supported_os Linux
     41
     42size=32M
     43
     44echo
     45echo "== qcow backed by qcow =="
     46
     47TEST_IMG="$TEST_IMG.base" _make_test_img $size
     48_make_test_img -b "$TEST_IMG.base" $size
     49_make_test_img -b "$TEST_IMG.base" -F $IMGFMT $size
     50_img_info
     51
     52echo
     53echo "== mismatched command line detection =="
     54
     55_make_test_img -b "$TEST_IMG.base" -F vmdk
     56_make_test_img -b "$TEST_IMG.base" -F vmdk $size
     57echo
     58# Use of -u bypasses the backing format sanity check
     59_make_test_img -u -b "$TEST_IMG.base" -F vmdk
     60_make_test_img -u -b "$TEST_IMG.base" -F vmdk $size
     61echo
     62# But the format must still be recognized
     63_make_test_img -b "$TEST_IMG.base" -F garbage $size
     64_make_test_img -u -b "$TEST_IMG.base" -F garbage $size
     65_img_info
     66
     67echo
     68echo "== qcow backed by raw =="
     69
     70rm "$TEST_IMG.base"
     71truncate --size=$size "$TEST_IMG.base"
     72_make_test_img -b "$TEST_IMG.base" $size
     73_make_test_img -b "$TEST_IMG.base" -F raw $size
     74_img_info
     75
     76echo
     77echo "== commit cannot change type of raw backing file =="
     78TEST_IMG="$TEST_IMG.qcow2" IMGFMT=qcow2 _make_test_img $size
     79truncate --size=$size "$TEST_IMG.qcow2"
     80$QEMU_IMG convert -n -f raw -O $IMGFMT "$TEST_IMG.qcow2" "$TEST_IMG"
     81$QEMU_IMG commit -f $IMGFMT "$TEST_IMG" && echo "unexpected success"
     82TEST_IMG="$TEST_IMG.base" _img_info
     83
     84# success, all done
     85echo "*** done"
     86rm -f $seq.full
     87status=0