1c13de3b3SStefan Hajnoczi#!/usr/bin/env bash 2*9dd003a9SVladimir Sementsov-Ogievskiy# group: quick 3c13de3b3SStefan Hajnoczi# 4c13de3b3SStefan Hajnoczi# qemu-img measure tests for LUKS images 5c13de3b3SStefan Hajnoczi# 6c13de3b3SStefan Hajnoczi# Copyright (C) 2020 Red Hat, Inc. 7c13de3b3SStefan Hajnoczi# 8c13de3b3SStefan Hajnoczi# This program is free software; you can redistribute it and/or modify 9c13de3b3SStefan Hajnoczi# it under the terms of the GNU General Public License as published by 10c13de3b3SStefan Hajnoczi# the Free Software Foundation; either version 2 of the License, or 11c13de3b3SStefan Hajnoczi# (at your option) any later version. 12c13de3b3SStefan Hajnoczi# 13c13de3b3SStefan Hajnoczi# This program is distributed in the hope that it will be useful, 14c13de3b3SStefan Hajnoczi# but WITHOUT ANY WARRANTY; without even the implied warranty of 15c13de3b3SStefan Hajnoczi# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16c13de3b3SStefan Hajnoczi# GNU General Public License for more details. 17c13de3b3SStefan Hajnoczi# 18c13de3b3SStefan Hajnoczi# You should have received a copy of the GNU General Public License 19c13de3b3SStefan Hajnoczi# along with this program. If not, see <http://www.gnu.org/licenses/>. 20c13de3b3SStefan Hajnoczi# 21c13de3b3SStefan Hajnoczi 22c13de3b3SStefan Hajnoczi# creator 23c13de3b3SStefan Hajnocziowner=stefanha@redhat.com 24c13de3b3SStefan Hajnoczi 25c13de3b3SStefan Hajnocziseq=`basename $0` 26c13de3b3SStefan Hajnocziecho "QA output created by $seq" 27c13de3b3SStefan Hajnoczi 28c13de3b3SStefan Hajnoczistatus=1 # failure is the default! 29c13de3b3SStefan Hajnoczi 30c13de3b3SStefan Hajnoczi_cleanup() 31c13de3b3SStefan Hajnoczi{ 32c13de3b3SStefan Hajnoczi _cleanup_test_img 33c13de3b3SStefan Hajnoczi rm -f "$TEST_IMG.converted" 34c13de3b3SStefan Hajnoczi} 35c13de3b3SStefan Hajnoczitrap "_cleanup; exit \$status" 0 1 2 3 15 36c13de3b3SStefan Hajnoczi 37c13de3b3SStefan Hajnoczi# get standard environment, filters and checks 38c13de3b3SStefan Hajnoczi. ./common.rc 39c13de3b3SStefan Hajnoczi. ./common.filter 40c13de3b3SStefan Hajnoczi. ./common.pattern 41c13de3b3SStefan Hajnoczi 42c13de3b3SStefan Hajnoczi_supported_fmt luks 43c13de3b3SStefan Hajnoczi_supported_proto file 44c13de3b3SStefan Hajnoczi_supported_os Linux 45c13de3b3SStefan Hajnoczi 46c13de3b3SStefan HajnocziSECRET=secret,id=sec0,data=passphrase 47c13de3b3SStefan Hajnoczi 48c13de3b3SStefan Hajnocziecho "== measure 1G image file ==" 49c13de3b3SStefan Hajnocziecho 50c13de3b3SStefan Hajnoczi 51c13de3b3SStefan Hajnoczi$QEMU_IMG measure --object "$SECRET" \ 52c13de3b3SStefan Hajnoczi -O "$IMGFMT" \ 53c13de3b3SStefan Hajnoczi -o key-secret=sec0,iter-time=10 \ 54c13de3b3SStefan Hajnoczi --size 1G 55c13de3b3SStefan Hajnoczi 56c13de3b3SStefan Hajnocziecho 57c13de3b3SStefan Hajnocziecho "== create 1G image file (size should be no greater than measured) ==" 58c13de3b3SStefan Hajnocziecho 59c13de3b3SStefan Hajnoczi 60c13de3b3SStefan Hajnoczi_make_test_img 1G 61c13de3b3SStefan Hajnoczistat -c "image file size in bytes: %s" "$TEST_IMG_FILE" 62c13de3b3SStefan Hajnoczi 63c13de3b3SStefan Hajnocziecho 64c13de3b3SStefan Hajnocziecho "== modified 1G image file (size should be no greater than measured) ==" 65c13de3b3SStefan Hajnocziecho 66c13de3b3SStefan Hajnoczi 67c13de3b3SStefan Hajnoczi$QEMU_IO --object "$SECRET" --image-opts "$TEST_IMG" -c "write -P 0x51 0x10000 0x400" | _filter_qemu_io | _filter_testdir 68c13de3b3SStefan Hajnoczistat -c "image file size in bytes: %s" "$TEST_IMG_FILE" 69c13de3b3SStefan Hajnoczi 70c13de3b3SStefan Hajnocziecho 71c13de3b3SStefan Hajnocziecho "== measure preallocation=falloc 1G image file ==" 72c13de3b3SStefan Hajnocziecho 73c13de3b3SStefan Hajnoczi 74c13de3b3SStefan Hajnoczi$QEMU_IMG measure --object "$SECRET" \ 75c13de3b3SStefan Hajnoczi -O "$IMGFMT" \ 76c13de3b3SStefan Hajnoczi -o key-secret=sec0,iter-time=10,preallocation=falloc \ 77c13de3b3SStefan Hajnoczi --size 1G 78c13de3b3SStefan Hajnoczi 79c13de3b3SStefan Hajnocziecho 80c13de3b3SStefan Hajnocziecho "== measure with input image file ==" 81c13de3b3SStefan Hajnocziecho 82c13de3b3SStefan Hajnoczi 83c13de3b3SStefan HajnocziIMGFMT=raw IMGKEYSECRET= IMGOPTS= _make_test_img 1G | _filter_imgfmt 84c13de3b3SStefan HajnocziQEMU_IO_OPTIONS= IMGOPTSSYNTAX= $QEMU_IO -f raw -c "write -P 0x51 0x10000 0x400" "$TEST_IMG_FILE" | _filter_qemu_io | _filter_testdir 85c13de3b3SStefan Hajnoczi$QEMU_IMG measure --object "$SECRET" \ 86c13de3b3SStefan Hajnoczi -O "$IMGFMT" \ 87c13de3b3SStefan Hajnoczi -o key-secret=sec0,iter-time=10 \ 88c13de3b3SStefan Hajnoczi -f raw \ 89c13de3b3SStefan Hajnoczi "$TEST_IMG_FILE" 90c13de3b3SStefan Hajnoczi 91c13de3b3SStefan Hajnoczi# success, all done 92c13de3b3SStefan Hajnocziecho "*** done" 93c13de3b3SStefan Hajnoczirm -f $seq.full 94c13de3b3SStefan Hajnoczistatus=0 95