#!/usr/bin/env bash
#
# Test qemu-img command line parsing
#
# Copyright (C) 2014 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=kwolf@redhat.com

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

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 qcow2
_supported_proto file nfs
_require_drivers bochs

run_qemu_img()
{
    echo
    echo Testing: "$@" | _filter_testdir
    "$QEMU_IMG" "$@" 2>&1 | _filter_testdir
}

size=128M

echo
echo === create: Options specified more than once ===

# Last -f should win
run_qemu_img create -f foo -f $IMGFMT "$TEST_IMG" $size
_img_info

# Multiple -o should be merged
run_qemu_img create -f $IMGFMT -o cluster_size=4k -o lazy_refcounts=on "$TEST_IMG" $size
_img_info --format-specific

# If the same -o key is specified more than once, the last one wins
run_qemu_img create -f $IMGFMT -o cluster_size=4k -o lazy_refcounts=on -o cluster_size=8k "$TEST_IMG" $size
_img_info --format-specific
run_qemu_img create -f $IMGFMT -o cluster_size=4k,cluster_size=8k "$TEST_IMG" $size
_img_info

echo
echo === create: help for -o ===

# Adding the help option to a command without other -o options
run_qemu_img create -f $IMGFMT -o help "$TEST_IMG" $size
run_qemu_img create -f $IMGFMT -o \? "$TEST_IMG" $size

# Adding the help option to the same -o option
run_qemu_img create -f $IMGFMT -o cluster_size=4k,help "$TEST_IMG" $size
run_qemu_img create -f $IMGFMT -o cluster_size=4k,\? "$TEST_IMG" $size
run_qemu_img create -f $IMGFMT -o help,cluster_size=4k "$TEST_IMG" $size
run_qemu_img create -f $IMGFMT -o \?,cluster_size=4k "$TEST_IMG" $size

# Adding the help option to a separate -o option
run_qemu_img create -f $IMGFMT -o cluster_size=4k -o help "$TEST_IMG" $size
run_qemu_img create -f $IMGFMT -o cluster_size=4k -o \? "$TEST_IMG" $size

# Looks like a help option, but is part of the backing file name
run_qemu_img create -f $IMGFMT -u -o backing_file="$TEST_IMG",,help "$TEST_IMG" $size
run_qemu_img create -f $IMGFMT -u -o backing_file="$TEST_IMG",,\? "$TEST_IMG" $size

# Try to trick qemu-img into creating escaped commas
run_qemu_img create -f $IMGFMT -o backing_file="$TEST_IMG", -o help "$TEST_IMG" $size
run_qemu_img create -f $IMGFMT -o backing_file="$TEST_IMG" -o ,help "$TEST_IMG" $size
run_qemu_img create -f $IMGFMT -o backing_file="$TEST_IMG" -o ,, -o help "$TEST_IMG" $size

# Leave out everything that isn't needed
run_qemu_img create -f $IMGFMT -o help
run_qemu_img create -o help

# Try help option for a format that does not support creation
run_qemu_img create -f bochs -o help

echo
echo === convert: Options specified more than once ===

# We need a valid source image
run_qemu_img create -f $IMGFMT "$TEST_IMG" $size

# Last -f should win
run_qemu_img convert -f foo -f $IMGFMT "$TEST_IMG" "$TEST_IMG".base
TEST_IMG="${TEST_IMG}.base" _img_info

# Last -O should win
run_qemu_img convert -O foo -O $IMGFMT "$TEST_IMG" "$TEST_IMG".base
TEST_IMG="${TEST_IMG}.base" _img_info

# Multiple -o should be merged
run_qemu_img convert -O $IMGFMT -o cluster_size=4k -o lazy_refcounts=on "$TEST_IMG" "$TEST_IMG".base
TEST_IMG="${TEST_IMG}.base" _img_info --format-specific

# If the same -o key is specified more than once, the last one wins
run_qemu_img convert -O $IMGFMT -o cluster_size=4k -o lazy_refcounts=on -o cluster_size=8k "$TEST_IMG" "$TEST_IMG".base
TEST_IMG="${TEST_IMG}.base" _img_info --format-specific
run_qemu_img convert -O $IMGFMT -o cluster_size=4k,cluster_size=8k "$TEST_IMG" "$TEST_IMG".base
TEST_IMG="${TEST_IMG}.base" _img_info

echo
echo === convert: help for -o ===

# Adding the help option to a command without other -o options
run_qemu_img convert -O $IMGFMT -o help "$TEST_IMG" "$TEST_IMG".base
run_qemu_img convert -O $IMGFMT -o \? "$TEST_IMG" "$TEST_IMG".base

# Adding the help option to the same -o option
run_qemu_img convert -O $IMGFMT -o cluster_size=4k,help "$TEST_IMG" "$TEST_IMG".base
run_qemu_img convert -O $IMGFMT -o cluster_size=4k,\? "$TEST_IMG" "$TEST_IMG".base
run_qemu_img convert -O $IMGFMT -o help,cluster_size=4k "$TEST_IMG" "$TEST_IMG".base
run_qemu_img convert -O $IMGFMT -o \?,cluster_size=4k "$TEST_IMG" "$TEST_IMG".base

# Adding the help option to a separate -o option
run_qemu_img convert -O $IMGFMT -o cluster_size=4k -o help "$TEST_IMG" "$TEST_IMG".base
run_qemu_img convert -O $IMGFMT -o cluster_size=4k -o \? "$TEST_IMG" "$TEST_IMG".base

# Looks like a help option, but is part of the backing file name
run_qemu_img convert -O $IMGFMT -o backing_file="$TEST_IMG",,help "$TEST_IMG" "$TEST_IMG".base
run_qemu_img convert -O $IMGFMT -o backing_file="$TEST_IMG",,\? "$TEST_IMG" "$TEST_IMG".base

# Try to trick qemu-img into creating escaped commas
run_qemu_img convert -O $IMGFMT -o backing_file="$TEST_IMG", -o help "$TEST_IMG" "$TEST_IMG".base
run_qemu_img convert -O $IMGFMT -o backing_file="$TEST_IMG" -o ,help "$TEST_IMG" "$TEST_IMG".base
run_qemu_img convert -O $IMGFMT -o backing_file="$TEST_IMG" -o ,, -o help "$TEST_IMG" "$TEST_IMG".base

# Leave out everything that isn't needed
run_qemu_img convert -O $IMGFMT -o help
run_qemu_img convert -o help

# Try help option for a format that does not support creation
run_qemu_img convert -O bochs -o help

echo
echo === convert: -C and other options ===

# Adding the help option to a command without other -o options
run_qemu_img convert -C -S 4k -O $IMGFMT "$TEST_IMG" "$TEST_IMG".target
run_qemu_img convert -C -S 8k -O $IMGFMT "$TEST_IMG" "$TEST_IMG".target
run_qemu_img convert -C -c -O $IMGFMT "$TEST_IMG" "$TEST_IMG".target
run_qemu_img convert -C --salvage -O $IMGFMT "$TEST_IMG" "$TEST_IMG".target

echo
echo === amend: Options specified more than once ===

# Last -f should win
run_qemu_img amend -f foo -f $IMGFMT -o lazy_refcounts=on "$TEST_IMG"
_img_info --format-specific

# Multiple -o should be merged
run_qemu_img amend -f $IMGFMT -o size=130M -o lazy_refcounts=off "$TEST_IMG"
_img_info --format-specific

# If the same -o key is specified more than once, the last one wins
run_qemu_img amend -f $IMGFMT -o size=8M -o lazy_refcounts=on -o size=132M "$TEST_IMG"
_img_info --format-specific
run_qemu_img amend -f $IMGFMT -o size=4M,size=148M "$TEST_IMG"
_img_info

echo
echo === amend: help for -o ===

# Adding the help option to a command without other -o options
run_qemu_img amend -f $IMGFMT -o help "$TEST_IMG"
run_qemu_img amend -f $IMGFMT -o \? "$TEST_IMG"

# Adding the help option to the same -o option
run_qemu_img amend -f $IMGFMT -o cluster_size=4k,help "$TEST_IMG"
run_qemu_img amend -f $IMGFMT -o cluster_size=4k,\? "$TEST_IMG"
run_qemu_img amend -f $IMGFMT -o help,cluster_size=4k "$TEST_IMG"
run_qemu_img amend -f $IMGFMT -o \?,cluster_size=4k "$TEST_IMG"

# Adding the help option to a separate -o option
run_qemu_img amend -f $IMGFMT -o cluster_size=4k -o help "$TEST_IMG"
run_qemu_img amend -f $IMGFMT -o cluster_size=4k -o \? "$TEST_IMG"

# Looks like a help option, but is part of the backing file name
run_qemu_img amend -f $IMGFMT -o backing_file="$TEST_IMG",,help "$TEST_IMG"
run_qemu_img rebase -u -b "" -f $IMGFMT "$TEST_IMG"

run_qemu_img amend -f $IMGFMT -o backing_file="$TEST_IMG",,\? "$TEST_IMG"
run_qemu_img rebase -u -b "" -f $IMGFMT "$TEST_IMG"

# Try to trick qemu-img into creating escaped commas
run_qemu_img amend -f $IMGFMT -o backing_file="$TEST_IMG", -o help "$TEST_IMG"
run_qemu_img amend -f $IMGFMT -o backing_file="$TEST_IMG" -o ,help "$TEST_IMG"
run_qemu_img amend -f $IMGFMT -o backing_file="$TEST_IMG" -o ,, -o help "$TEST_IMG"

# Leave out everything that isn't needed
run_qemu_img amend -f $IMGFMT -o help

# amend requires specifying either a format explicitly, or a file
# which it can probe
run_qemu_img amend -o help

# Try help option for a format that does not support amendment
run_qemu_img amend -f bochs -o help

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