qemu-irix/tests/qemu-iotests
Kevin Wolf e6af1e0854 block: Don't mark node clean after failed flush
Commit 3ff2f67a changed bdrv_co_flush() so that no flush is issues if
the image hasn't been dirtied since the last flush. This is not quite
correct: The condition should be that the image hasn't been dirtied
since the last _successful_ flush. This patch changes the logic
accordingly.

Without this fix, subsequent bdrv_co_flush() calls would return success
without actually doing anything even though the image is still dirty.
The difference is visible in some blkdebug test cases where error
messages incorrectly disappeared after commit 3ff2f67a.

Cc: qemu-stable@nongnu.org
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Message-id: 1478300595-10090-1-git-send-email-kwolf@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-11-08 16:06:35 +00:00
..
sample_images
.gitignore
001 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
001.out
002 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
002.out
003 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
003.out
004 block: enable testing of LUKS driver with block I/O tests 2016-05-12 15:33:24 +02:00
004.out
005 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
005.out
007 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
007.out
008 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
008.out
009 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
009.out
010 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
010.out
011 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
011.out
012 block: enable testing of LUKS driver with block I/O tests 2016-05-12 15:33:24 +02:00
012.out
013 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
013.out
014 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
014.out
015 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
015.out
017 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
017.out
018 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
018.out
019 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
019.out
020 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
020.out
021 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
021.out
022 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
022.out
023 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
023.out qemu-io: Allow unaligned access by default 2016-05-12 15:33:24 +02:00
024 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
024.out
025 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
025.out
026 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
026.out block: Don't mark node clean after failed flush 2016-11-08 16:06:35 +00:00
026.out.nocache block: Don't mark node clean after failed flush 2016-11-08 16:06:35 +00:00
027 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
027.out
028 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
028.out
029 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
029.out
030 qemu-iotests: Test the 'base-node' parameter of 'block-stream' 2016-10-31 16:52:39 +01:00
030.out qemu-iotests: Test the 'base-node' parameter of 'block-stream' 2016-10-31 16:52:39 +01:00
031 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
031.out
032 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
032.out
033 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
033.out block: Fix blk_aio_write_zeroes() 2016-04-15 17:22:11 +02:00
034 block: Switch bdrv_write_zeroes() to byte interface 2016-06-08 10:21:08 +02:00
034.out
035 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
035.out
036 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
036.out
037 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
037.out
038 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
038.out
039 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
039.out block: add support for --image-opts in block I/O tests 2016-05-12 15:33:24 +02:00
040
040.out
041 qemu-iotests: Add iotests.supports_quorum() 2016-10-31 16:52:39 +01:00
041.out iotests: add small-granularity mirror test 2016-06-28 22:53:03 -04:00
042 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
042.out
043 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
043.out
044
044.out
045
045.out
046 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
046.out
047 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
047.out
048 block: enable testing of LUKS driver with block I/O tests 2016-05-12 15:33:24 +02:00
048.out block: enable testing of LUKS driver with block I/O tests 2016-05-12 15:33:24 +02:00
049 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
049.out block: move encryption deprecation warning into qcow code 2016-03-30 12:12:15 +02:00
050 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
050.out
051 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
051.out block/nbd: Accept SocketAddress 2016-10-27 19:05:23 +02:00
051.pc.out block/nbd: Accept SocketAddress 2016-10-27 19:05:23 +02:00
052 block: enable testing of LUKS driver with block I/O tests 2016-05-12 15:33:24 +02:00
052.out block: enable testing of LUKS driver with block I/O tests 2016-05-12 15:33:24 +02:00
053 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
053.out
054 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
054.out
055 iotest 055: refactor and speed up 2016-09-20 22:12:57 +02:00
055.out qemu-iotests: test backup compression in 055 2016-09-05 19:06:48 +02:00
056
056.out
057 block: Accept node-name for blockdev-snapshot-internal-sync 2016-09-05 19:06:47 +02:00
057.out
058 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
058.out
059 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
059.out
060 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
060.out
061 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
061.out block: add support for --image-opts in block I/O tests 2016-05-12 15:33:24 +02:00
062 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
062.out
063 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
063.out
064 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
064.out
065
065.out
066 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
066.out
067 block: Remove "options" indirection from blockdev-add 2016-10-24 17:54:03 +02:00
067.out qemu-iotests/067: Avoid blockdev-add with id 2016-09-23 13:45:36 +02:00
068 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
068.out
069 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
069.out
070 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
070.out
071 block: Remove "options" indirection from blockdev-add 2016-10-24 17:54:03 +02:00
071.out block: Don't mark node clean after failed flush 2016-11-08 16:06:35 +00:00
072 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
072.out
073 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
073.out
074
074.out
075 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
075.out
076 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
076.out
077 block/io: optimize bdrv_co_pwritev for small requests 2016-06-07 14:40:51 +01:00
077.out block/io: optimize bdrv_co_pwritev for small requests 2016-06-07 14:40:51 +01:00
078 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
078.out
079 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
079.out
080 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
080.out
081 block: Remove "options" indirection from blockdev-add 2016-10-24 17:54:03 +02:00
081.out
082 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
082.out
083 iotests: fix the redirection order in 083 2016-05-12 15:33:23 +02:00
083.out
084 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
084.out
085 block: Remove "options" indirection from blockdev-add 2016-10-24 17:54:03 +02:00
085.out block: Avoid printing NULL string in error messages 2016-09-23 13:45:36 +02:00
086 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
086.out
087 block: Remove "options" indirection from blockdev-add 2016-10-24 17:54:03 +02:00
087.out qapi: return a 'missing parameter' error 2016-10-07 19:22:11 +02:00
088 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
088.out
089 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
089.out block: ignore flush requests when storage is clean 2016-07-18 18:19:01 -04:00
090 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
090.out
091
091.out
092 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
092.out
093 qemu-iotests: Test I/O in a single drive from a throttling group 2016-10-24 17:54:03 +02:00
093.out qemu-iotests: Test I/O in a single drive from a throttling group 2016-10-24 17:54:03 +02:00
094 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
094.out
095 iotests: 095: Clean up QEMU before showing image info 2016-06-16 15:20:37 +02:00
095.out
096 block: Don't return throttling info in query-named-block-nodes 2016-05-19 16:45:31 +02:00
096.out
097 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
097.out
098 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
098.out
099 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
099.out
101 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
101.out
102 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
102.out
103 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
103.out
104 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
104.out
105 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
105.out
107 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
107.out
108 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
108.out
109 iotests: fix 109 2016-08-08 13:05:43 +02:00
109.out iotests: fix 109 2016-08-08 13:05:43 +02:00
110 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
110.out
111 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
111.out
112 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
112.out
113 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
113.out
114 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
114.out
115 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
115.out
116 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
116.out
117 block: Remove "options" indirection from blockdev-add 2016-10-24 17:54:03 +02:00
117.out
118 block: Remove "options" indirection from blockdev-add 2016-10-24 17:54:03 +02:00
118.out
119 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
119.out
120 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
120.out
121 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
121.out
122 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
122.out qemu-img: Fix preallocation with -S 0 for convert 2016-03-30 12:16:03 +02:00
123 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
123.out
124 block: Remove "options" indirection from blockdev-add 2016-10-24 17:54:03 +02:00
124.out
128 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
128.out
129
129.out
130 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
130.out
131 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
131.out
132
132.out
133 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
133.out
134 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
134.out block: move encryption deprecation warning into qcow code 2016-03-30 12:12:15 +02:00
135 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
135.out
136 qemu-iotests: Fix regression in 136 on aio_read invalid 2016-05-19 16:56:58 +02:00
136.out block: Remove bdrv_aio_multiwrite() 2016-05-19 16:45:31 +02:00
137 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
137.out block: add support for --image-opts in block I/O tests 2016-05-12 15:33:24 +02:00
138 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
138.out
139 qemu-iotests: Add iotests.supports_quorum() 2016-10-31 16:52:39 +01:00
139.out qemu-iotests/139: Avoid blockdev-add with id 2016-09-23 13:45:36 +02:00
140 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
140.out
141 block: Remove "options" indirection from blockdev-add 2016-10-24 17:54:03 +02:00
141.out qemu-iotests/141: Avoid blockdev-add with id 2016-09-23 13:45:36 +02:00
142 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
142.out block: Remove BDRV_O_CACHE_WB 2016-03-30 12:16:03 +02:00
143 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
143.out
144
144.out block: ignore flush requests when storage is clean 2016-07-18 18:19:01 -04:00
145 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
145.out
146
146.out
147 iotests: Add test for NBD's blockdev-add interface 2016-10-27 19:05:23 +02:00
147.out iotests: Add test for NBD's blockdev-add interface 2016-10-27 19:05:23 +02:00
148 qemu-iotests: 148: properly skip test if quorum support is missing 2016-04-12 18:07:39 +02:00
148.out iotests: Test QUORUM_REPORT_BAD in fifo mode 2016-03-17 16:43:30 +01:00
149 crypto: fix handling of iv generator hash defaults 2016-07-04 10:46:59 +01:00
149.out crypto: fix handling of iv generator hash defaults 2016-07-04 10:46:59 +01:00
150 qemu-iotests: tests: do not set unused tmp variable 2016-04-15 17:56:56 +02:00
150.out iotests: Make 150 use qemu-img map instead of du 2016-04-12 18:06:51 +02:00
152 iotests: Test case for drive-mirror with unaligned image size 2016-04-20 16:52:55 +02:00
152.out iotests: Test case for drive-mirror with unaligned image size 2016-04-20 16:52:55 +02:00
154 block: Switch bdrv_write_zeroes() to byte interface 2016-06-08 10:21:08 +02:00
154.out qcow2: Catch more unaligned write_zero into zero cluster 2016-06-08 10:21:08 +02:00
155 block: Remove "options" indirection from blockdev-add 2016-10-24 17:54:03 +02:00
155.out iotests: Add test for post-mirror backing chains 2016-06-16 15:20:37 +02:00
156 iotests: Add test for oVirt-like storage migration 2016-06-16 15:20:37 +02:00
156.out iotests: Add test for oVirt-like storage migration 2016-06-16 15:20:37 +02:00
157 iotests: Make 157 actually format-agnostic 2016-07-13 13:41:39 +02:00
157.out iotests: Make 157 actually format-agnostic 2016-07-13 13:41:39 +02:00
158 qcow2: fix encryption during cow of sectors 2016-09-23 13:36:09 +02:00
158.out qcow2: fix encryption during cow of sectors 2016-09-23 13:36:09 +02:00
159 qemu-img: add the 'dd' subcommand 2016-09-20 22:10:57 +02:00
159.out qemu-img: add the 'dd' subcommand 2016-09-20 22:10:57 +02:00
160 qemu-img: add skip option to dd 2016-09-20 22:10:57 +02:00
160.out qemu-img: add skip option to dd 2016-09-20 22:10:57 +02:00
162 iotests: Do not rely on unavailable domains in 162 2016-10-24 17:54:03 +02:00
162.out iotests: Do not rely on unavailable domains in 162 2016-10-24 17:54:03 +02:00
170 qemu-img: add the 'dd' subcommand 2016-09-20 22:10:57 +02:00
170.out qemu-img: add the 'dd' subcommand 2016-09-20 22:10:57 +02:00
171 qemu-iotests: test 'offset' and 'size' options in raw driver 2016-10-31 16:52:39 +01:00
171.out qemu-iotests: test 'offset' and 'size' options in raw driver 2016-10-31 16:52:39 +01:00
172 qemu-iotests: Test creating floppy drives 2016-10-27 16:29:14 -04:00
172.out qemu-iotests: Test creating floppy drives 2016-10-27 16:29:14 -04:00
COPYING
Makefile
README doc: Fix mailing list address in tests/qemu-iotests/README 2016-06-16 15:19:55 +02:00
check qemu-iotests: check: don't place files with predictable names in /tmp 2016-04-12 18:07:39 +02:00
common block: enable testing of LUKS driver with block I/O tests 2016-05-12 15:33:24 +02:00
common.config block: add support for encryption secrets in block I/O tests 2016-05-12 15:33:24 +02:00
common.filter qemu-img: add the 'dd' subcommand 2016-09-20 22:10:57 +02:00
common.pattern
common.qemu
common.rc qemu-iotests: Fix typo for NFS with IMGOPTSSYNTAX 2016-10-27 19:05:23 +02:00
group qemu-iotests: test 'offset' and 'size' options in raw driver 2016-10-31 16:52:39 +01:00
iotests.py qemu-iotests: Add iotests.supports_quorum() 2016-10-31 16:52:39 +01:00
nbd-fault-injector.py
qcow2.py
qed.py
socket_scm_helper.c socket_scm_helper: Accept fd directly 2016-10-27 19:05:23 +02:00

README

=== This is the QEMU I/O test suite ===

* Intro

This package contains a simple test suite for the I/O layer of qemu.
It does not require a guest, but only the qemu, qemu-img and qemu-io
binaries.  This does limit it to exercise the low-level I/O path only
but no actual block drivers like ide, scsi or virtio.

* Usage

Just run ./check to run all tests for the raw image format, or ./check
-qcow2 to test the qcow2 image format.  The output of ./check -h explains
additional options to test further image formats or I/O methods.

* Feedback and patches

Please send improvements to the test suite, general feedback or just
reports of failing tests cases to qemu-devel@nongnu.org with a CC:
to qemu-block@nongnu.org.