1#!/usr/bin/env bash 2# group: backing quick 3# 4# Test multiple blockdev-snapshot calls with 'backing': null 5# 6# Copyright (C) 2019 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} 31trap "_cleanup; exit \$status" 0 1 2 3 15 32 33# get standard environment, filters and checks 34. ./common.rc 35. ./common.filter 36 37# This is a qcow2 regression test 38_supported_fmt qcow2 39_supported_proto file fuse 40_supported_os Linux 41# External data files would add nodes to the block graph, so it would 42# not match the reference output 43_unsupported_imgopts data_file 44 45do_run_qemu() 46{ 47 echo Testing: "$@" 48 $QEMU -nographic -qmp-pretty stdio -nodefaults "$@" 49 echo 50} 51 52run_qemu() 53{ 54 do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qemu | _filter_qmp | 55 _filter_generated_node_ids | _filter_imgfmt | 56 _filter_actual_image_size | _filter_img_info 57} 58 59TEST_IMG="$TEST_IMG.base" _make_test_img 64M 60TEST_IMG="$TEST_IMG.mid" _make_test_img -b "$TEST_IMG.base" -F $IMGFMT 61_make_test_img -b "$TEST_IMG.mid" -F $IMGFMT 62 63run_qemu \ 64 -blockdev file,node-name=base,filename="$TEST_IMG.base" \ 65 -blockdev file,node-name=midf,filename="$TEST_IMG.mid" \ 66 -blockdev '{"driver":"qcow2","node-name":"mid","file":"midf","backing":null}' \ 67 -blockdev file,node-name=topf,filename="$TEST_IMG" \ 68 -blockdev '{"driver":"qcow2","file":"topf","node-name":"top","backing":null}' \ 69<<EOF 70{"execute":"qmp_capabilities"} 71{"execute":"blockdev-snapshot","arguments":{"node":"base","overlay":"mid"}} 72{"execute":"blockdev-snapshot","arguments":{"node":"mid","overlay":"top"}} 73{"execute":"query-named-block-nodes"} 74{"execute":"x-debug-query-block-graph"} 75{"execute":"quit"} 76EOF 77 78# success, all done 79echo "*** done" 80rm -f $seq.full 81status=0 82