#!/usr/bin/env bash
#
# Test qcow backing file warnings
#
# Copyright (C) 2020 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/>.
#

seq=`basename $0`
echo "QA output created by $seq"

status=1 # failure is the default!

_cleanup()
{
    _cleanup_test_img
    _rm_test_img "$TEST_IMG.qcow2"
}
trap "_cleanup; exit \$status" 0 1 2 3 15

# get standard environment, filters and checks
. ./common.rc
. ./common.filter

_supported_fmt qcow
_supported_proto file
_supported_os Linux

size=32M

echo
echo "== qcow backed by qcow =="

TEST_IMG="$TEST_IMG.base" _make_test_img $size
_make_test_img -b "$TEST_IMG.base" $size
_img_info
_make_test_img -b "$TEST_IMG.base" -F $IMGFMT $size
_img_info

echo
echo "== mismatched command line detection =="

_make_test_img -b "$TEST_IMG.base" -F vmdk
_make_test_img -b "$TEST_IMG.base" -F vmdk $size
echo
# Use of -u bypasses the backing format sanity check
_make_test_img -u -b "$TEST_IMG.base" -F vmdk
_make_test_img -u -b "$TEST_IMG.base" -F vmdk $size
echo
# But the format must still be recognized
_make_test_img -b "$TEST_IMG.base" -F garbage $size
_make_test_img -u -b "$TEST_IMG.base" -F garbage $size
_img_info

echo
echo "== qcow backed by raw =="

rm "$TEST_IMG.base"
truncate --size=$size "$TEST_IMG.base"
_make_test_img -b "$TEST_IMG.base" $size
_img_info
_make_test_img -b "$TEST_IMG.base" -F raw $size
_img_info

echo
echo "== commit cannot change type of raw backing file =="
TEST_IMG="$TEST_IMG.qcow2" IMGFMT=qcow2 _make_test_img $size
truncate --size=$size "$TEST_IMG.qcow2"
$QEMU_IMG convert -n -f raw -O $IMGFMT "$TEST_IMG.qcow2" "$TEST_IMG"
$QEMU_IMG commit -f $IMGFMT "$TEST_IMG" && echo "unexpected success"
TEST_IMG="$TEST_IMG.base" _img_info

# success, all done
echo "*** done"
rm -f $seq.full
status=0
