1*c75203c8SKevin Wolf#!/bin/bash 2*c75203c8SKevin Wolf# 3*c75203c8SKevin Wolf# Test unsupported blockdev-add cases 4*c75203c8SKevin Wolf# 5*c75203c8SKevin Wolf# Copyright (C) 2014 Red Hat, Inc. 6*c75203c8SKevin Wolf# 7*c75203c8SKevin Wolf# This program is free software; you can redistribute it and/or modify 8*c75203c8SKevin Wolf# it under the terms of the GNU General Public License as published by 9*c75203c8SKevin Wolf# the Free Software Foundation; either version 2 of the License, or 10*c75203c8SKevin Wolf# (at your option) any later version. 11*c75203c8SKevin Wolf# 12*c75203c8SKevin Wolf# This program is distributed in the hope that it will be useful, 13*c75203c8SKevin Wolf# but WITHOUT ANY WARRANTY; without even the implied warranty of 14*c75203c8SKevin Wolf# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*c75203c8SKevin Wolf# GNU General Public License for more details. 16*c75203c8SKevin Wolf# 17*c75203c8SKevin Wolf# You should have received a copy of the GNU General Public License 18*c75203c8SKevin Wolf# along with this program. If not, see <http://www.gnu.org/licenses/>. 19*c75203c8SKevin Wolf# 20*c75203c8SKevin Wolf 21*c75203c8SKevin Wolf# creator 22*c75203c8SKevin Wolfowner=kwolf@redhat.com 23*c75203c8SKevin Wolf 24*c75203c8SKevin Wolfseq=`basename $0` 25*c75203c8SKevin Wolfecho "QA output created by $seq" 26*c75203c8SKevin Wolf 27*c75203c8SKevin Wolfhere=`pwd` 28*c75203c8SKevin Wolftmp=/tmp/$$ 29*c75203c8SKevin Wolfstatus=1 # failure is the default! 30*c75203c8SKevin Wolf 31*c75203c8SKevin Wolf# get standard environment, filters and checks 32*c75203c8SKevin Wolf. ./common.rc 33*c75203c8SKevin Wolf. ./common.filter 34*c75203c8SKevin Wolf 35*c75203c8SKevin Wolf_supported_fmt qcow2 36*c75203c8SKevin Wolf_supported_proto file 37*c75203c8SKevin Wolf_supported_os Linux 38*c75203c8SKevin Wolf 39*c75203c8SKevin Wolffunction do_run_qemu() 40*c75203c8SKevin Wolf{ 41*c75203c8SKevin Wolf echo Testing: "$@" 42*c75203c8SKevin Wolf $QEMU -nographic -qmp stdio -serial none "$@" 43*c75203c8SKevin Wolf echo 44*c75203c8SKevin Wolf} 45*c75203c8SKevin Wolf 46*c75203c8SKevin Wolffunction run_qemu() 47*c75203c8SKevin Wolf{ 48*c75203c8SKevin Wolf do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp | sed -e 's/\("actual-size":\s*\)[0-9]\+/\1SIZE/g' 49*c75203c8SKevin Wolf} 50*c75203c8SKevin Wolf 51*c75203c8SKevin Wolfsize=128M 52*c75203c8SKevin Wolf 53*c75203c8SKevin Wolf_make_test_img $size 54*c75203c8SKevin Wolf 55*c75203c8SKevin Wolfecho 56*c75203c8SKevin Wolfecho === Missing ID === 57*c75203c8SKevin Wolfecho 58*c75203c8SKevin Wolf 59*c75203c8SKevin Wolfrun_qemu <<EOF 60*c75203c8SKevin Wolf{ "execute": "qmp_capabilities" } 61*c75203c8SKevin Wolf{ "execute": "blockdev-add", 62*c75203c8SKevin Wolf "arguments": { 63*c75203c8SKevin Wolf "options": { 64*c75203c8SKevin Wolf "driver": "$IMGFMT", 65*c75203c8SKevin Wolf "file": { 66*c75203c8SKevin Wolf "driver": "file", 67*c75203c8SKevin Wolf "filename": "$TEST_IMG" 68*c75203c8SKevin Wolf } 69*c75203c8SKevin Wolf } 70*c75203c8SKevin Wolf } 71*c75203c8SKevin Wolf } 72*c75203c8SKevin Wolf{ "execute": "quit" } 73*c75203c8SKevin WolfEOF 74*c75203c8SKevin Wolf 75*c75203c8SKevin Wolfecho 76*c75203c8SKevin Wolfecho === aio=native without O_DIRECT === 77*c75203c8SKevin Wolfecho 78*c75203c8SKevin Wolf 79*c75203c8SKevin Wolfrun_qemu <<EOF 80*c75203c8SKevin Wolf{ "execute": "qmp_capabilities" } 81*c75203c8SKevin Wolf{ "execute": "blockdev-add", 82*c75203c8SKevin Wolf "arguments": { 83*c75203c8SKevin Wolf "options": { 84*c75203c8SKevin Wolf "driver": "$IMGFMT", 85*c75203c8SKevin Wolf "id": "disk", 86*c75203c8SKevin Wolf "aio": "native", 87*c75203c8SKevin Wolf "file": { 88*c75203c8SKevin Wolf "driver": "file", 89*c75203c8SKevin Wolf "filename": "$TEST_IMG" 90*c75203c8SKevin Wolf } 91*c75203c8SKevin Wolf } 92*c75203c8SKevin Wolf } 93*c75203c8SKevin Wolf } 94*c75203c8SKevin Wolf{ "execute": "quit" } 95*c75203c8SKevin WolfEOF 96*c75203c8SKevin Wolf 97*c75203c8SKevin Wolfecho 98*c75203c8SKevin Wolfecho === Encrypted image === 99*c75203c8SKevin Wolfecho 100*c75203c8SKevin Wolf 101*c75203c8SKevin Wolf_make_test_img -o encryption=on $size 102*c75203c8SKevin Wolfrun_qemu <<EOF 103*c75203c8SKevin Wolf{ "execute": "qmp_capabilities" } 104*c75203c8SKevin Wolf{ "execute": "blockdev-add", 105*c75203c8SKevin Wolf "arguments": { 106*c75203c8SKevin Wolf "options": { 107*c75203c8SKevin Wolf "driver": "$IMGFMT", 108*c75203c8SKevin Wolf "id": "disk", 109*c75203c8SKevin Wolf "file": { 110*c75203c8SKevin Wolf "driver": "file", 111*c75203c8SKevin Wolf "filename": "$TEST_IMG" 112*c75203c8SKevin Wolf } 113*c75203c8SKevin Wolf } 114*c75203c8SKevin Wolf } 115*c75203c8SKevin Wolf } 116*c75203c8SKevin Wolf{ "execute": "quit" } 117*c75203c8SKevin WolfEOF 118*c75203c8SKevin Wolf 119*c75203c8SKevin Wolf# success, all done 120*c75203c8SKevin Wolfecho "*** done" 121*c75203c8SKevin Wolfrm -f $seq.full 122*c75203c8SKevin Wolfstatus=0 123