qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

iotests: add 288 luks qemu-img measure test

This test exercises the block/crypto.c "luks" block driver
.bdrv_measure() code.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20200221112522.1497712-5-stefanha@redhat.com>
[mreitz: Renamed test from 282 to 288]
Signed-off-by: Max Reitz <mreitz@redhat.com>

authored by

Stefan Hajnoczi and committed by
Max Reitz
c13de3b3 c3673dcf

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