1*7da94ca7SStefan Hajnoczi#!/bin/bash 2*7da94ca7SStefan Hajnoczi# 3*7da94ca7SStefan Hajnoczi# Test qemu-img convert when image length is not a multiple of cluster size 4*7da94ca7SStefan Hajnoczi# 5*7da94ca7SStefan Hajnoczi# Copyright (C) 2013 Red Hat, Inc. 6*7da94ca7SStefan Hajnoczi# 7*7da94ca7SStefan Hajnoczi# This program is free software; you can redistribute it and/or modify 8*7da94ca7SStefan Hajnoczi# it under the terms of the GNU General Public License as published by 9*7da94ca7SStefan Hajnoczi# the Free Software Foundation; either version 2 of the License, or 10*7da94ca7SStefan Hajnoczi# (at your option) any later version. 11*7da94ca7SStefan Hajnoczi# 12*7da94ca7SStefan Hajnoczi# This program is distributed in the hope that it will be useful, 13*7da94ca7SStefan Hajnoczi# but WITHOUT ANY WARRANTY; without even the implied warranty of 14*7da94ca7SStefan Hajnoczi# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*7da94ca7SStefan Hajnoczi# GNU General Public License for more details. 16*7da94ca7SStefan Hajnoczi# 17*7da94ca7SStefan Hajnoczi# You should have received a copy of the GNU General Public License 18*7da94ca7SStefan Hajnoczi# along with this program. If not, see <http://www.gnu.org/licenses/>. 19*7da94ca7SStefan Hajnoczi# 20*7da94ca7SStefan Hajnoczi 21*7da94ca7SStefan Hajnoczi# creator 22*7da94ca7SStefan Hajnocziowner=stefanha@redhat.com 23*7da94ca7SStefan Hajnoczi 24*7da94ca7SStefan Hajnocziseq=`basename $0` 25*7da94ca7SStefan Hajnocziecho "QA output created by $seq" 26*7da94ca7SStefan Hajnoczi 27*7da94ca7SStefan Hajnoczihere=`pwd` 28*7da94ca7SStefan Hajnoczitmp=/tmp/$$ 29*7da94ca7SStefan Hajnoczistatus=1 # failure is the default! 30*7da94ca7SStefan Hajnoczi 31*7da94ca7SStefan Hajnoczi_cleanup() 32*7da94ca7SStefan Hajnoczi{ 33*7da94ca7SStefan Hajnoczi rm -f $TEST_IMG.orig 34*7da94ca7SStefan Hajnoczi _cleanup_test_img 35*7da94ca7SStefan Hajnoczi} 36*7da94ca7SStefan Hajnoczitrap "_cleanup; exit \$status" 0 1 2 3 15 37*7da94ca7SStefan Hajnoczi 38*7da94ca7SStefan Hajnoczi# get standard environment, filters and checks 39*7da94ca7SStefan Hajnoczi. ./common.rc 40*7da94ca7SStefan Hajnoczi. ./common.filter 41*7da94ca7SStefan Hajnoczi 42*7da94ca7SStefan Hajnoczi_supported_fmt qcow2 qcow 43*7da94ca7SStefan Hajnoczi_supported_proto file 44*7da94ca7SStefan Hajnoczi_supported_os Linux 45*7da94ca7SStefan Hajnoczi 46*7da94ca7SStefan Hajnocziecho 47*7da94ca7SStefan Hajnocziecho "== Creating single sector image ==" 48*7da94ca7SStefan Hajnoczi 49*7da94ca7SStefan Hajnoczi_make_test_img 512 50*7da94ca7SStefan Hajnoczi$QEMU_IO -c "write -P0xa 0 512" $TEST_IMG | _filter_qemu_io 51*7da94ca7SStefan Hajnoczimv $TEST_IMG $TEST_IMG.orig 52*7da94ca7SStefan Hajnoczi 53*7da94ca7SStefan Hajnocziecho 54*7da94ca7SStefan Hajnocziecho "== Converting the image, compressed ==" 55*7da94ca7SStefan Hajnoczi 56*7da94ca7SStefan Hajnoczi$QEMU_IMG convert -c -O $IMGFMT $TEST_IMG.orig $TEST_IMG 57*7da94ca7SStefan Hajnoczi_check_test_img 58*7da94ca7SStefan Hajnoczi 59*7da94ca7SStefan Hajnocziecho 60*7da94ca7SStefan Hajnocziecho "== Checking compressed image virtual disk size ==" 61*7da94ca7SStefan Hajnoczi 62*7da94ca7SStefan Hajnoczi_img_info | grep '^virtual size:' 63*7da94ca7SStefan Hajnoczi 64*7da94ca7SStefan Hajnocziecho 65*7da94ca7SStefan Hajnocziecho "== Verifying the compressed image ==" 66*7da94ca7SStefan Hajnoczi 67*7da94ca7SStefan Hajnoczi$QEMU_IO -c "read -P0xa 0 512" $TEST_IMG | _filter_qemu_io 68*7da94ca7SStefan Hajnoczi 69*7da94ca7SStefan Hajnoczi# success, all done 70*7da94ca7SStefan Hajnocziecho "*** done" 71*7da94ca7SStefan Hajnoczirm -f $seq.full 72*7da94ca7SStefan Hajnoczistatus=0 73*7da94ca7SStefan Hajnoczi 74