]>
Commit | Line | Data |
---|---|---|
8bb3b023 DHB |
1 | #!/usr/bin/env bash |
2 | # | |
3 | # Test qemu-img file cleanup for LUKS when using a non-UTF8 secret | |
4 | # | |
5 | # Copyright (C) 2020, IBM Corporation. | |
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 | seq=`basename $0` | |
22 | echo "QA output created by $seq" | |
23 | ||
24 | status=1 # failure is the default! | |
25 | TEST_IMAGE_FILE='vol.img' | |
26 | ||
27 | _cleanup() | |
28 | { | |
29 | _cleanup_test_img | |
30 | rm non_utf8_secret | |
31 | rm -f $TEST_IMAGE_FILE | |
32 | } | |
33 | trap "_cleanup; exit \$status" 0 1 2 3 15 | |
34 | ||
35 | # get standard environment, filters and checks | |
36 | . ./common.rc | |
37 | . ./common.filter | |
38 | ||
39 | _supported_fmt luks | |
40 | _supported_proto generic | |
8bb3b023 DHB |
41 | |
42 | echo "== Create non-UTF8 secret ==" | |
43 | echo -n -e '\x3a\x3c\x3b\xff' > non_utf8_secret | |
44 | SECRET="secret,id=sec0,file=non_utf8_secret" | |
45 | ||
46 | echo "== Throws an error because of invalid UTF-8 secret ==" | |
47 | $QEMU_IMG create -f $IMGFMT --object $SECRET -o "key-secret=sec0" $TEST_IMAGE_FILE 4M | |
48 | ||
49 | echo "== Image file should not exist after the error ==" | |
50 | if test -f "$TEST_IMAGE_FILE"; then | |
51 | exit 1 | |
52 | fi | |
53 | ||
54 | echo "== Create a stub image file and run qemu-img again ==" | |
55 | touch $TEST_IMAGE_FILE | |
56 | $QEMU_IMG create -f $IMGFMT --object $SECRET -o "key-secret=sec0" $TEST_IMAGE_FILE 4M | |
57 | ||
58 | echo "== Pre-existing image file should also be deleted after the error ==" | |
59 | if test -f "$TEST_IMAGE_FILE"; then | |
60 | exit 1 | |
61 | fi | |
62 | ||
63 | # success, all done | |
64 | echo "*** done" | |
65 | rm -f $seq.full | |
66 | status=0 |