qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

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 
     22 seq=`basename $0`
     23 echo "QA output created by $seq"
     24 
     25 status=1 # failure is the default!
     26 
     27 _cleanup()
     28 {
     29     _cleanup_test_img
     30     _rm_test_img "$TEST_IMG.qcow2"
     31 }
     32 trap "_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 
     42 size=32M
     43 
     44 echo
     45 echo "== qcow backed by qcow =="
     46 
     47 TEST_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 
     52 echo
     53 echo "== 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
     57 echo
     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
     61 echo
     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 
     67 echo
     68 echo "== qcow backed by raw =="
     69 
     70 rm "$TEST_IMG.base"
     71 truncate --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 
     76 echo
     77 echo "== commit cannot change type of raw backing file =="
     78 TEST_IMG="$TEST_IMG.qcow2" IMGFMT=qcow2 _make_test_img $size
     79 truncate --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"
     82 TEST_IMG="$TEST_IMG.base" _img_info
     83 
     84 # success, all done
     85 echo "*** done"
     86 rm -f $seq.full
     87 status=0