1*bb9f8dd0SDaniel P. Berrange#!/bin/bash 2*bb9f8dd0SDaniel P. Berrange# 3*bb9f8dd0SDaniel P. Berrange# Test encrypted read/write using backing files 4*bb9f8dd0SDaniel P. Berrange# 5*bb9f8dd0SDaniel P. Berrange# Copyright (C) 2015 Red Hat, Inc. 6*bb9f8dd0SDaniel P. Berrange# 7*bb9f8dd0SDaniel P. Berrange# This program is free software; you can redistribute it and/or modify 8*bb9f8dd0SDaniel P. Berrange# it under the terms of the GNU General Public License as published by 9*bb9f8dd0SDaniel P. Berrange# the Free Software Foundation; either version 2 of the License, or 10*bb9f8dd0SDaniel P. Berrange# (at your option) any later version. 11*bb9f8dd0SDaniel P. Berrange# 12*bb9f8dd0SDaniel P. Berrange# This program is distributed in the hope that it will be useful, 13*bb9f8dd0SDaniel P. Berrange# but WITHOUT ANY WARRANTY; without even the implied warranty of 14*bb9f8dd0SDaniel P. Berrange# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*bb9f8dd0SDaniel P. Berrange# GNU General Public License for more details. 16*bb9f8dd0SDaniel P. Berrange# 17*bb9f8dd0SDaniel P. Berrange# You should have received a copy of the GNU General Public License 18*bb9f8dd0SDaniel P. Berrange# along with this program. If not, see <http://www.gnu.org/licenses/>. 19*bb9f8dd0SDaniel P. Berrange# 20*bb9f8dd0SDaniel P. Berrange 21*bb9f8dd0SDaniel P. Berrange# creator 22*bb9f8dd0SDaniel P. Berrangeowner=berrange@redhat.com 23*bb9f8dd0SDaniel P. Berrange 24*bb9f8dd0SDaniel P. Berrangeseq=`basename $0` 25*bb9f8dd0SDaniel P. Berrangeecho "QA output created by $seq" 26*bb9f8dd0SDaniel P. Berrange 27*bb9f8dd0SDaniel P. Berrangehere=`pwd` 28*bb9f8dd0SDaniel P. Berrangestatus=1 # failure is the default! 29*bb9f8dd0SDaniel P. Berrange 30*bb9f8dd0SDaniel P. Berrange_cleanup() 31*bb9f8dd0SDaniel P. Berrange{ 32*bb9f8dd0SDaniel P. Berrange _cleanup_test_img 33*bb9f8dd0SDaniel P. Berrange} 34*bb9f8dd0SDaniel P. Berrangetrap "_cleanup; exit \$status" 0 1 2 3 15 35*bb9f8dd0SDaniel P. Berrange 36*bb9f8dd0SDaniel P. Berrange# get standard environment, filters and checks 37*bb9f8dd0SDaniel P. Berrange. ./common.rc 38*bb9f8dd0SDaniel P. Berrange. ./common.filter 39*bb9f8dd0SDaniel P. Berrange 40*bb9f8dd0SDaniel P. Berrange_supported_fmt qcow2 41*bb9f8dd0SDaniel P. Berrange_supported_proto generic 42*bb9f8dd0SDaniel P. Berrange_supported_os Linux 43*bb9f8dd0SDaniel P. Berrange 44*bb9f8dd0SDaniel P. Berrange 45*bb9f8dd0SDaniel P. Berrangesize=128M 46*bb9f8dd0SDaniel P. BerrangeTEST_IMG_BASE=$TEST_IMG.base 47*bb9f8dd0SDaniel P. Berrange 48*bb9f8dd0SDaniel P. BerrangeTEST_IMG_SAVE=$TEST_IMG 49*bb9f8dd0SDaniel P. BerrangeTEST_IMG=$TEST_IMG_BASE 50*bb9f8dd0SDaniel P. Berrangeecho "== create base ==" 51*bb9f8dd0SDaniel P. BerrangeIMGOPTS="encryption=on" _make_test_img $size 52*bb9f8dd0SDaniel P. BerrangeTEST_IMG=$TEST_IMG_SAVE 53*bb9f8dd0SDaniel P. Berrange 54*bb9f8dd0SDaniel P. Berrangeecho 55*bb9f8dd0SDaniel P. Berrangeecho "== writing whole image ==" 56*bb9f8dd0SDaniel P. Berrangeecho "astrochicken" | $QEMU_IO -c "write -P 0xa 0 $size" "$TEST_IMG_BASE" | _filter_qemu_io | _filter_testdir 57*bb9f8dd0SDaniel P. Berrange 58*bb9f8dd0SDaniel P. Berrangeecho 59*bb9f8dd0SDaniel P. Berrangeecho "== verify pattern ==" 60*bb9f8dd0SDaniel P. Berrangeecho "astrochicken" | $QEMU_IO -c "read -P 0xa 0 $size" "$TEST_IMG_BASE" | _filter_qemu_io | _filter_testdir 61*bb9f8dd0SDaniel P. Berrange 62*bb9f8dd0SDaniel P. Berrangeecho "== create overlay ==" 63*bb9f8dd0SDaniel P. BerrangeIMGOPTS="encryption=on" _make_test_img -b "$TEST_IMG_BASE" $size 64*bb9f8dd0SDaniel P. Berrange 65*bb9f8dd0SDaniel P. Berrangeecho 66*bb9f8dd0SDaniel P. Berrangeecho "== writing part of a cluster ==" 67*bb9f8dd0SDaniel P. Berrangeecho "astrochicken" | $QEMU_IO -c "write -P 0xe 0 1024" "$TEST_IMG" | _filter_qemu_io | _filter_testdir 68*bb9f8dd0SDaniel P. Berrange 69*bb9f8dd0SDaniel P. Berrangeecho 70*bb9f8dd0SDaniel P. Berrangeecho "== verify pattern ==" 71*bb9f8dd0SDaniel P. Berrangeecho "astrochicken" | $QEMU_IO -c "read -P 0xe 0 1024" "$TEST_IMG" | _filter_qemu_io | _filter_testdir 72*bb9f8dd0SDaniel P. Berrangeecho 73*bb9f8dd0SDaniel P. Berrangeecho "== verify pattern ==" 74*bb9f8dd0SDaniel P. Berrangeecho "astrochicken" | $QEMU_IO -c "read -P 0xa 1024 64512" "$TEST_IMG" | _filter_qemu_io | _filter_testdir 75*bb9f8dd0SDaniel P. Berrange 76*bb9f8dd0SDaniel P. Berrange 77*bb9f8dd0SDaniel P. Berrange# success, all done 78*bb9f8dd0SDaniel P. Berrangeecho "*** done" 79*bb9f8dd0SDaniel P. Berrangerm -f $seq.full 80*bb9f8dd0SDaniel P. Berrangestatus=0 81