xref: /qemu/tests/qemu-iotests/288 (revision 9dd003a9)
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