blob: ee73e636b2f742c2b844347d6ac9eabed7ce3501 [file] [log] [blame]
Philippe Mathieu-Daudé11a82d12019-03-07 15:58:38 +01001#!/usr/bin/env bash
Vladimir Sementsov-Ogievskiy9dd003a2021-01-16 16:44:19 +03002# group: rw auto quick
Fam Zheng34602dd2013-12-04 09:07:03 +08003##
4## qemu-img compare test (qcow2 only ones)
5##
6##
7## Copyright (C) 2013 Red Hat, Inc.
8##
9## This program is free software; you can redistribute it and/or modify
10## it under the terms of the GNU General Public License as published by
11## the Free Software Foundation; either version 2 of the License, or
12## (at your option) any later version.
13##
14## This program is distributed in the hope that it will be useful,
15## but WITHOUT ANY WARRANTY; without even the implied warranty of
16## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17## GNU General Public License for more details.
18##
19## You should have received a copy of the GNU General Public License
20## along with this program. If not, see <http://www.gnu.org/licenses/>.
21##
22#
23# creator
John Snow42a50092022-03-22 13:42:12 -040024owner=fam@euphon.net
Fam Zheng34602dd2013-12-04 09:07:03 +080025
26seq=`basename $0`
27echo "QA output created by $seq"
28
29status=1 # failure is the default!
30
31_cleanup()
32{
33 echo "Cleanup"
34 _cleanup_test_img
Max Reitzf91ecbd2019-11-07 17:37:01 +010035 _rm_test_img "${TEST_IMG2}"
Kevin Wolf0e596072017-07-27 15:19:12 +020036 rm -f "$TEST_DIR/blkdebug.conf"
Fam Zheng34602dd2013-12-04 09:07:03 +080037}
38trap "_cleanup; exit \$status" 0 1 2 3 15
39
40_compare()
41{
42 $QEMU_IMG compare "$@" "$TEST_IMG" "${TEST_IMG2}"
43 echo $?
44}
45
46# get standard environment, filters and checks
47. ./common.rc
48. ./common.filter
49. ./common.pattern
50
51_supported_fmt qcow2
52_supported_proto file
53_supported_os Linux
Max Reitz3be20242019-11-07 17:37:07 +010054# blkdebug can only inject errors on bs->file
55_unsupported_imgopts data_file
Fam Zheng34602dd2013-12-04 09:07:03 +080056
57# Setup test basic parameters
58TEST_IMG2=$TEST_IMG.2
59CLUSTER_SIZE=4096
60size=1024M
61
62# Test cluster allocated in one, with IO error
63cat > "$TEST_DIR/blkdebug.conf"<<EOF
64[inject-error]
65event = "read_aio"
66errno = "5"
67once ="off"
68EOF
69_make_test_img $size
70cp "$TEST_IMG" "$TEST_IMG2"
71io_pattern write 512 512 0 1 102
72TEST_IMG="blkdebug:$TEST_DIR/blkdebug.conf:$TEST_IMG" _compare 2>&1 |\
73 _filter_testdir | _filter_imgfmt
74
75# Test cluster allocated in one, with different sizes and IO error in the part
76# that exists only in one image
77cat > "$TEST_DIR/blkdebug.conf"<<EOF
78[inject-error]
79event = "read_aio"
80errno = "5"
81once ="off"
82EOF
83_make_test_img $size
84TEST_IMG="$TEST_IMG2" _make_test_img 0
85io_pattern write 512 512 0 1 102
86TEST_IMG="blkdebug:$TEST_DIR/blkdebug.conf:$TEST_IMG" _compare 2>&1 |\
87 _filter_testdir | _filter_imgfmt
88
89# Cleanup
90status=0