#!/usr/bin/env bash
# group: rw quick
#
# qcow2 v3-exclusive error path testing
# (026 tests paths common to v2 and v3)
#
# 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_DIR/blkdebug.conf"
    rm -f "$TEST_IMG.data_file"
}
trap "_cleanup; exit \$status" 0 1 2 3 15

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

_supported_fmt qcow2
_supported_proto file fuse
# This is a v3-exclusive test;
# As for data_file, error paths often very much depend on whether
# there is an external data file or not; so we create one exactly when
# we want to test it
_unsupported_imgopts 'compat=0.10' data_file

echo
echo === Avoid freeing external data clusters on failure ===
echo

cat > "$TEST_DIR/blkdebug.conf" <<EOF
[inject-error]
event = "write_aio"
errno = "5"
once = "on"
EOF

# Test what happens when there is an error when writing to an external
# data file instead of when writing to a preallocated zero cluster
_make_test_img -o "data_file=$TEST_IMG.data_file" 64k

# Put blkdebug above the data-file, and a raw node on top of that so
# that blkdebug will see a write_aio event and emit an error.  This
# will then trigger the alloc abort code, which we want to test here.
$QEMU_IO -c "write 0 64k" \
    "json:{
         'driver': 'qcow2',
         'file': { 'driver': 'file', 'filename': '$TEST_IMG' },
         'data-file': {
             'driver': 'raw',
             'file': {
                 'driver': 'blkdebug',
                 'config': '$TEST_DIR/blkdebug.conf',
                 'image': {
                     'driver': 'file',
                     'filename': '$TEST_IMG.data_file'
                 }
             }
         }
     }" \
    | _filter_qemu_io

_check_test_img

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