qemu-e2k/tests/qemu-iotests
Vladimir Sementsov-Ogievskiy 8b1170012b block: introduce BDRV_MAX_LENGTH
We are going to modify block layer to work with 64bit requests. And
first step is moving to int64_t type for both offset and bytes
arguments in all block request related functions.

It's mostly safe (when widening signed or unsigned int to int64_t), but
switching from uint64_t is questionable.

So, let's first establish the set of requests we want to work with.
First signed int64_t should be enough, as off_t is signed anyway. Then,
obviously offset + bytes should not overflow.

And most interesting: (offset + bytes) being aligned up should not
overflow as well. Aligned to what alignment? First thing that comes in
mind is bs->bl.request_alignment, as we align up request to this
alignment. But there is another thing: look at
bdrv_mark_request_serialising(). It aligns request up to some given
alignment. And this parameter may be bdrv_get_cluster_size(), which is
often a lot greater than bs->bl.request_alignment.
Note also, that bdrv_mark_request_serialising() uses signed int64_t for
calculations. So, actually, we already depend on some restrictions.

Happily, bdrv_get_cluster_size() returns int and
bs->bl.request_alignment has 32bit unsigned type, but defined to be a
power of 2 less than INT_MAX. So, we may establish, that INT_MAX is
absolute maximum for any kind of alignment that may occur with the
request.

Note, that bdrv_get_cluster_size() is not documented to return power
of 2, still bdrv_mark_request_serialising() behaves like it is.
Also, backup uses bdi.cluster_size and is not prepared to it not being
power of 2.
So, let's establish that Qemu supports only power-of-2 clusters and
alignments.

So, alignment can't be greater than 2^30.

Finally to be safe with calculations, to not calculate different
maximums for different nodes (depending on cluster size and
request_alignment), let's simply set QEMU_ALIGN_DOWN(INT64_MAX, 2^30)
as absolute maximum bytes length for Qemu. Actually, it's not much less
than INT64_MAX.

OK, then, let's apply it to block/io.

Let's consider all block/io entry points of offset/bytes:

4 bytes/offset interface functions: bdrv_co_preadv_part(),
bdrv_co_pwritev_part(), bdrv_co_copy_range_internal() and
bdrv_co_pdiscard() and we check them all with bdrv_check_request().

We also have one entry point with only offset: bdrv_co_truncate().
Check the offset.

And one public structure: BdrvTrackedRequest. Happily, it has only
three external users:

 file-posix.c: adopted by this patch
 write-threshold.c: only read fields
 test-write-threshold.c: sets obviously small constant values

Better is to make the structure private and add corresponding
interfaces.. Still it's not obvious what kind of interface is needed
for file-posix.c. Let's keep it public but add corresponding
assertions.

After this patch we'll convert functions in block/io.c to int64_t bytes
and offset parameters. We can assume that offset/bytes pair always
satisfy new restrictions, and make
corresponding assertions where needed. If we reach some offset/bytes
point in block/io.c missing bdrv_check_request() it is considered a
bug. As well, if block/io.c modifies a offset/bytes request, expanding
it more then aligning up to request_alignment, it's a bug too.

For all io requests except for discard we keep for now old restriction
of 32bit request length.

iotest 206 output error message changed, as now test disk size is
larger than new limit. Add one more test case with new maximum disk
size to cover too-big-L1 case.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20201203222713.13507-5-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2020-12-11 17:52:40 +01:00
..
sample_images
001 block: Comment cleanups 2020-05-05 13:17:36 +02:00
001.out
002
002.out
003
003.out
004
004.out
005
005.out
007 iotests: Disable data_file where it cannot be used 2020-01-06 13:43:07 +01:00
007.out
008
008.out
009
009.out
010
010.out
011
011.out
012
012.out
013
013.out
014 iotests: Disable data_file where it cannot be used 2020-01-06 13:43:07 +01:00
014.out
015 iotests: Disable data_file where it cannot be used 2020-01-06 13:43:07 +01:00
015.out
017 Remove VXHS block device 2020-07-17 14:20:57 +02:00
017.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
018 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
018.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
019 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
019.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
020 iotests: Add test for commit in sub directory 2020-09-08 13:40:52 +02:00
020.out iotests: Add test for commit in sub directory 2020-09-08 13:40:52 +02:00
021
021.out
022
022.out
023
023.out
024 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
024.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
025 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
025.out
026 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
026.out iotests/026: Move v3-exclusive test to new file 2020-03-24 12:05:31 +01:00
026.out.nocache iotests/026: Move v3-exclusive test to new file 2020-03-24 12:05:31 +01:00
027
027.out
028 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
028.out iotests: Use convert -n in some cases 2020-12-11 17:52:40 +01:00
029 Remove VXHS block device 2020-07-17 14:20:57 +02:00
029.out
030 iotests: Skip test_stream_parallel in test 030 when doing "make check" 2020-09-15 11:05:13 +02:00
030.out
031 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
031.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
032
032.out
033
033.out
034 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
034.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
035
035.out
036 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
036.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
037 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
037.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
038 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
038.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
039 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
039.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
040 block: Improve some block-commit, block-stream error messages 2020-12-10 17:16:44 +01:00
040.out iotests: Test committing to overridden backing 2020-09-08 13:40:53 +02:00
041 iotests: Add filter mirror test cases 2020-09-08 13:40:49 +02:00
041.out iotests: Add filter mirror test cases 2020-09-08 13:40:49 +02:00
042 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
042.out
043 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
043.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
044 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
044.out
045 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
045.out
046 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
046.out iotests/046: Avoid renaming images 2020-12-11 17:52:40 +01:00
047
047.out
048 iotests: Disable data_file where it cannot be used 2020-01-06 13:43:07 +01:00
048.out
049 block: Raise an error when backing file parameter is an empty string 2020-09-07 12:23:55 +02:00
049.out block: Raise an error when backing file parameter is an empty string 2020-09-07 12:23:55 +02:00
050 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
050.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
051 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
051.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
051.pc.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
052 block: Comment cleanups 2020-05-05 13:17:36 +02:00
052.out
053 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
053.out
054 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
054.out qemu-img: Flush stdout before before potential stderr messages 2020-07-14 15:18:59 +02:00
055 iotests/055: Use cache.no-flush for vmdk target 2020-05-08 13:26:35 +02:00
055.out iotests: Backup with different source/target size 2020-05-08 13:26:35 +02:00
056 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
056.out
057 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
057.out
058 tests/qemu-iotests: use AIOMODE with various tests 2020-01-30 21:01:40 +00:00
058.out
059 iotests/059: Filter out disk size with more standard filter 2020-07-14 15:18:59 +02:00
059.out iotests/059: Fix reference output 2020-09-02 16:32:14 -05:00
060 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
060.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
061 qcow2: Assert that expand_zero_clusters_in_l1() does not support subclusters 2020-08-25 10:20:15 +02:00
061.out qcow2: Assert that expand_zero_clusters_in_l1() does not support subclusters 2020-08-25 10:20:15 +02:00
062 iotests: Disable data_file where it cannot be used 2020-01-06 13:43:07 +01:00
062.out
063 iotests: Avoid cp/mv of test images 2020-01-06 13:43:07 +01:00
063.out iotests: Avoid cp/mv of test images 2020-01-06 13:43:07 +01:00
064
064.out
065 qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
065.out
066 iotests: Disable data_file where it cannot be used 2020-01-06 13:43:07 +01:00
066.out
068 iotests: Disable data_file where it cannot be used 2020-01-06 13:43:07 +01:00
068.out
069 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
069.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
070
070.out
071 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
071.out
072
072.out
073 Remove VXHS block device 2020-07-17 14:20:57 +02:00
073.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
074 iotests: Disable data_file where it cannot be used 2020-01-06 13:43:07 +01:00
074.out
075
075.out
076
076.out
077
077.out
078
078.out
079 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
079.out qemu-img: Flush stdout before before potential stderr messages 2020-07-14 15:18:59 +02:00
080 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
080.out
081 iotests/081: Test rewrite-corrupted without WRITE 2020-11-17 12:38:32 +01:00
081.out iotests/081: Test rewrite-corrupted without WRITE 2020-11-17 12:38:32 +01:00
082 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
082.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
083
083.out
084
084.out
085 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
085.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
086
086.out
087 iotests: Check whether luks works 2020-07-06 08:49:28 +02:00
087.out iotests: filter few more luks specific create options 2020-07-06 08:33:06 +02:00
088 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
088.out
089 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
089.out iotests: Use convert -n in some cases 2020-12-11 17:52:40 +01:00
090 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
090.out
091 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
091.out iotests: Make 091 work with data_file 2020-01-06 13:43:07 +01:00
092 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
092.out
093 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
093.out
094 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
094.out
095 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
095.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
096 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
096.out
097 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
097.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
098 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
098.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
099 iotests: Disable data_file where it cannot be used 2020-01-06 13:43:07 +01:00
099.out
101
101.out
102 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
102.out
103 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
103.out
104
104.out
105
105.out
106 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
106.out
107 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
107.out
108 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
108.out
109 iotests/109: Don't mirror with mismatched size 2020-05-18 19:05:24 +02:00
109.out iotests/109: Don't mirror with mismatched size 2020-05-18 19:05:24 +02:00
110 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
110.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
111 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
111.out block: Error if backing file fails during creation without -u 2020-07-14 15:18:59 +02:00
112 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
112.out qemu-img: Flush stdout before before potential stderr messages 2020-07-14 15:18:59 +02:00
113 iotests/113: mark bochs as required to support whitelisting 2020-05-08 13:26:35 +02:00
113.out
114 Remove VXHS block device 2020-07-17 14:20:57 +02:00
114.out qemu-img: Deprecate use of -b without -F 2020-07-14 15:24:05 +02:00
115 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
115.out
116
116.out
117 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
117.out
118 iotests.py: Add skip_for_formats() decorator 2020-06-17 16:21:21 +02:00
118.out
119
119.out
120 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
120.out
121 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
121.out
122 iotests: Test sparseness for qemu-img convert -n 2020-07-21 17:44:35 +02:00
122.out iotests: Test sparseness for qemu-img convert -n 2020-07-21 17:44:35 +02:00
123 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
123.out
124 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
124.out
125 qcow2: Make preallocate_co() resize the image to the correct size 2020-09-15 11:30:36 +02:00
125.out qcow2: Make preallocate_co() resize the image to the correct size 2020-09-15 11:30:36 +02:00
126 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
126.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
127 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
127.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
128
128.out
129 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
129.out
130 Remove VXHS block device 2020-07-17 14:20:57 +02:00
130.out
131
131.out
132 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
132.out
133 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
133.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
134 Remove VXHS block device 2020-07-17 14:20:57 +02:00
134.out iotests: filter few more luks specific create options 2020-07-06 08:33:06 +02:00
135
135.out
136 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
136.out
137 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
137.out iotests: Make 137 work with data_file 2020-01-06 13:43:07 +01:00
138 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
138.out iotests/138: Test leaks/corruptions fixed report 2020-03-26 14:52:43 +01:00
139 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
139.out
140 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
140.out block/export: Add BLOCK_EXPORT_DELETED event 2020-10-02 15:46:40 +02:00
141 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
141.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
142 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
142.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
143 nbd/server: Avoid long error message assertions CVE-2020-10761 2020-06-10 12:58:59 -05:00
143.out nbd/server: Avoid long error message assertions CVE-2020-10761 2020-06-10 12:58:59 -05:00
144 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
144.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
145
145.out
146 block/vpc: return ZERO block-status when appropriate 2020-07-06 10:32:38 +02:00
146.out block/vpc: return ZERO block-status when appropriate 2020-07-06 10:32:38 +02:00
147 iotests/147: Fix drive parameters 2020-02-20 16:43:42 +01:00
147.out
148 iotests/148: use skip_if_unsupported 2020-05-08 13:26:35 +02:00
148.out
149 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
149.out
150
150.out.qcow2
150.out.raw
151 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
151.out
152 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
152.out
153 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
153.out block/null: Implement bdrv_get_allocated_file_size 2020-09-07 12:31:31 +02:00
154 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
154.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
155 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
155.out iotests: Add iothread cases to 155 2020-03-11 15:54:38 +01:00
156 Remove VXHS block device 2020-07-17 14:20:57 +02:00
156.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
157
157.out
158 Remove VXHS block device 2020-07-17 14:20:57 +02:00
158.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
159 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
159.out
160 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
160.out
161 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
161.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
162
162.out util: include the target address in socket connect failures 2020-10-29 09:57:37 +00:00
163 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
163.out
165 drop "from __future__ import print_function" 2020-02-07 15:15:16 +01:00
165.out
169 iotests/169: Test source cont with backing bmap 2020-08-03 08:59:37 -05:00
169.out iotests/169: Test source cont with backing bmap 2020-08-03 08:59:37 -05:00
170 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
170.out
171 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
171.out
172 fdc: Reject clash between -drive if=floppy and -global isa-fdc 2020-06-23 16:07:07 +02:00
172.out qdev: Reject drive property override 2020-06-23 16:07:07 +02:00
173 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
173.out
174 iotests: Do not pipe _make_test_img 2020-12-11 17:52:40 +01:00
174.out
175 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
175.out
176 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
176.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
177 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
177.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
178 iotests: Check whether luks works 2020-07-06 08:49:28 +02:00
178.out.qcow2 qcow2: Expose bitmaps' size during measure 2020-05-28 13:16:16 -05:00
178.out.raw iotests: Fix test 178 2020-05-28 13:15:23 -05:00
179 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
179.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
181 tests/qemu-iotests: use AIOMODE with various tests 2020-01-30 21:01:40 +00:00
181.out
182 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
182.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
183 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
183.out
184 block/null: Implement bdrv_get_allocated_file_size 2020-09-07 12:31:31 +02:00
184.out block: Use child access functions for QAPI queries 2020-09-07 12:31:31 +02:00
185 tests/qemu-iotests: use AIOMODE with various tests 2020-01-30 21:01:40 +00:00
185.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
186 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
186.out
187 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
187.out
188 iotests: Check whether luks works 2020-07-06 08:49:28 +02:00
188.out iotests: filter few more luks specific create options 2020-07-06 08:33:06 +02:00
189 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
189.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
190 iotests/{190,291}: compat=0.10 is unsupported 2020-06-17 16:21:21 +02:00
190.out qcow2: Expose bitmaps' size during measure 2020-05-28 13:16:16 -05:00
191 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
191.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
192
192.out
194 qemu-iotests: Merge FilePaths and FilePath 2020-09-15 11:05:12 +02:00
194.out iotests: 194: wait for migration completion on target too 2020-06-09 17:05:50 -05:00
195 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
195.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
196 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
196.out
197 iotests/197: Fix for non-qcow2 formats 2020-07-28 15:28:56 +02:00
197.out iotests/197: Fix for non-qcow2 formats 2020-07-28 15:28:56 +02:00
198 qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
198.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
199 qemu-iotests/199: add source-killed case to bitmaps postcopy 2020-07-27 15:41:34 -05:00
199.out qemu-iotests/199: add source-killed case to bitmaps postcopy 2020-07-27 15:41:34 -05:00
200 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
200.out iotests: Derive image names from $TEST_IMG 2020-12-11 17:52:40 +01:00
201 tests/qemu-iotests: use AIOMODE with various tests 2020-01-30 21:01:40 +00:00
201.out
202 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
202.out
203 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
203.out
204 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
204.out qemu-img: Use child access functions 2020-09-07 12:31:31 +02:00
205 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
205.out
206 block: introduce BDRV_MAX_LENGTH 2020-12-11 17:52:40 +01:00
206.out block: introduce BDRV_MAX_LENGTH 2020-12-11 17:52:40 +01:00
207 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
207.out
208 qemu-iotests: Merge FilePaths and FilePath 2020-09-15 11:05:12 +02:00
208.out
209 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
209.out
210 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
210.out
211 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
211.out
212 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
212.out
213 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
213.out
214 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
214.out tests/qemu-iotests: add case to write compressed data of multiple clusters 2020-01-06 13:43:07 +01:00
215 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
215.out
216 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
216.out
217 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
217.out
218 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
218.out
219 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
219.out blockdev: unify qmp_drive_backup and drive-backup transaction paths 2020-01-27 17:19:53 +01:00
220 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
220.out
221 iotests/221: Discard image before qemu-img map 2020-12-11 17:52:40 +01:00
221.out iotests/221: Discard image before qemu-img map 2020-12-11 17:52:40 +01:00
222 qemu-iotests: Merge FilePaths and FilePath 2020-09-15 11:05:12 +02:00
222.out
223 iotests: Enhance 223 to cover qemu-img map improvements 2020-05-18 11:02:05 -05:00
223.out block/export: Add BLOCK_EXPORT_DELETED event 2020-10-02 15:46:40 +02:00
224 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
224.out
225 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
225.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
226
226.out
227
227.out
228 block: Leave BDS.backing_{file,format} constant 2020-09-07 12:31:31 +02:00
228.out block: Leave BDS.backing_{file,format} constant 2020-09-07 12:31:31 +02:00
229 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
229.out iotests: Derive image names from $TEST_IMG 2020-12-11 17:52:40 +01:00
231
231.out
232 iotests: Use _rm_test_img for deleting test images 2020-01-06 13:43:07 +01:00
232.out
233
233.out
234 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
234.out
235 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
235.out
236 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
236.out
237 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
237.out
238 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
238.out
239
239.out
240 iotests: rewrite iotest 240 in python 2020-11-09 15:44:21 +01:00
240.out iotests: rewrite iotest 240 in python 2020-11-09 15:44:21 +01:00
241
241.out
242 iotests: Restrict some Python tests to file 2020-12-11 17:52:40 +01:00
242.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
243 file-posix: Mitigate file fragmentation with extent size hints 2020-07-14 15:18:59 +02:00
243.out
244 iotests: Test that qcow2's data-file is flushed 2020-09-07 12:31:31 +02:00
244.out iotests: Test that qcow2's data-file is flushed 2020-09-07 12:31:31 +02:00
245 block: Leave BDS.backing_{file,format} constant 2020-09-07 12:31:31 +02:00
245.out iotests: use python logging for iotests.log() 2020-05-05 13:17:36 +02:00
246 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
246.out
247 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
247.out
248 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
248.out
249 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
249.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
250 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
250.out
251 qemu-img: avoid unaligned read requests during convert 2020-09-15 11:05:12 +02:00
251.out
252 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
252.out
253
253.out
254 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
254.out
255 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
255.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
256 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
256.out
257 qemu-iotests: Merge FilePaths and FilePath 2020-09-15 11:05:12 +02:00
257.out
258 iotest 258: use script_main 2020-05-05 13:17:36 +02:00
258.out
259 iotests: Add test for image creation fallback 2020-02-20 16:43:42 +01:00
259.out iotests/259: Fix reference output 2020-09-02 16:32:14 -05:00
260 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
260.out
261 migration: introduce icount field for snapshots 2020-10-06 08:34:49 +02:00
261.out qcow2: introduce icount field for snapshots 2020-10-06 08:34:49 +02:00
262 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
262.out
263 iotests: Check whether luks works 2020-07-06 08:49:28 +02:00
263.out iotests: filter few more luks specific create options 2020-07-06 08:33:06 +02:00
264 iotests: Make qemu_nbd_popen() a contextmanager 2020-07-28 09:54:43 -05:00
264.out iotests: Make qemu_nbd_popen() a contextmanager 2020-07-28 09:54:43 -05:00
265 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
265.out
266 tests/qemu-iotests: Explicit usage of Python3 (scripts without __main__) 2020-02-07 15:15:16 +01:00
266.out
267 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
267.out migration: introduce icount field for snapshots 2020-10-06 08:34:49 +02:00
268 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
268.out
270 iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
270.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
271 iotests: Add tests for qcow2 images with extended L2 entries 2020-08-26 08:49:51 +02:00
271.out iotests: Add tests for qcow2 images with extended L2 entries 2020-08-26 08:49:51 +02:00
272 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
272.out
273 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
273.out block: Leave BDS.backing_{file,format} constant 2020-09-07 12:31:31 +02:00
274 iotests: add commit top->base cases to 274 2020-10-23 13:42:16 +01:00
274.out iotests: add commit top->base cases to 274 2020-10-23 13:42:16 +01:00
277 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
277.out
279 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
279.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
280 iotests: add script_initialize 2020-05-05 13:17:36 +02:00
280.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
281 tests/qemu-iotests: Explicit usage of Python 3 (scripts with __main__) 2020-02-07 15:12:48 +01:00
281.out iotests: Test handling of AioContexts with some blockdev actions 2020-01-27 17:19:53 +01:00
282 Remove VXHS block device 2020-07-17 14:20:57 +02:00
282.out qemu-img: Flush stdout before before potential stderr messages 2020-07-14 15:18:59 +02:00
283 iotests/283: Use consistent size for source and target 2020-05-08 13:26:35 +02:00
283.out iotests/283: Use consistent size for source and target 2020-05-08 13:26:35 +02:00
284 iotests: Check whether luks works 2020-07-06 08:49:28 +02:00
284.out iotests: filter few more luks specific create options 2020-07-06 08:33:06 +02:00
286 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
286.out iotests: Test snapshot -l field separation 2020-02-20 16:43:42 +01:00
287 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
287.out iotests: 287: add qcow2 compression type test 2020-05-13 14:20:31 +02:00
288 iotests: add 288 luks qemu-img measure test 2020-03-11 12:42:29 +01:00
288.out iotests: add 288 luks qemu-img measure test 2020-03-11 12:42:29 +01:00
289 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
289.out iotests/026: Move v3-exclusive test to new file 2020-03-24 12:05:31 +01:00
290 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
290.out iotests: Specify explicit backing format where sensible 2020-07-14 15:18:59 +02:00
291 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
291.out iotests/291: Filter irrelevant parts of img-info 2020-10-30 15:10:14 -05:00
292 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
292.out qcow2: Avoid integer wraparound in qcow2_co_truncate() 2020-05-08 13:26:35 +02:00
293 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
293.out iotests: qemu-img tests for luks key management 2020-07-06 08:49:28 +02:00
294 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
294.out iotests: qemu-img tests for luks key management 2020-07-06 08:49:28 +02:00
295 iotests: add tests for blockdev-amend 2020-07-06 08:49:28 +02:00
295.out iotests: add tests for blockdev-amend 2020-07-06 08:49:28 +02:00
296 qemu-iotests: add testcase for bz #1857490 2020-07-21 10:49:02 +02:00
296.out qemu-iotests: add testcase for bz #1857490 2020-07-21 10:49:02 +02:00
297 iotests: Run pylint and mypy in a testcase 2020-05-18 19:05:25 +02:00
297.out iotests: Run pylint and mypy in a testcase 2020-05-18 19:05:25 +02:00
299 iotests: test shutdown when bitmap is exported through NBD 2020-07-17 14:20:57 +02:00
299.out iotests: test shutdown when bitmap is exported through NBD 2020-07-17 14:20:57 +02:00
300 iotests: Test node/bitmap aliases during migration 2020-08-21 08:56:09 -05:00
300.out iotests: Test node/bitmap aliases during migration 2020-08-21 08:56:09 -05:00
301 qcow: Tolerate backing_fmt= 2020-07-14 15:18:59 +02:00
301.out qemu-img: Deprecate use of -b without -F 2020-07-14 15:24:05 +02:00
302 iotests: Test convert to qcow2 compressed to NBD 2020-07-28 09:54:43 -05:00
302.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
303 iotests: dump QCOW2 header in JSON in #303 2020-08-21 08:56:09 -05:00
303.out qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit 2020-08-25 09:19:55 +02:00
304 iotests: add test for unaligned granularity bitmap backup 2020-08-11 09:29:31 +02:00
304.out iotests: add test for unaligned granularity bitmap backup 2020-08-11 09:29:31 +02:00
305 iotests: Enable fuse for many tests 2020-12-11 17:52:40 +01:00
305.out qcow2: Fix removal of list members from BDRVQcow2State.cluster_allocs 2020-09-15 11:05:13 +02:00
307 iotests: Test block-export-* QMP interface 2020-10-02 15:46:40 +02:00
307.out iotests: Test block-export-* QMP interface 2020-10-02 15:46:40 +02:00
308 iotests/308: Add test for FUSE exports 2020-12-11 17:52:40 +01:00
308.out iotests/308: Add test for FUSE exports 2020-12-11 17:52:40 +01:00
309 nbd: Add 'qemu-nbd -A' to expose allocation depth 2020-10-30 15:22:00 -05:00
309.out nbd: Add 'qemu-nbd -A' to expose allocation depth 2020-10-30 15:22:00 -05:00
check iotests: Allow testing FUSE exports 2020-12-11 17:52:40 +01:00
common.config
common.filter iotests: Allow testing FUSE exports 2020-12-11 17:52:40 +01:00
common.nbd
common.pattern iotests/common.pattern: Quote echos 2020-04-07 13:51:09 +02:00
common.qemu
common.rc iotests: Allow testing FUSE exports 2020-12-11 17:52:40 +01:00
common.tls crypto: use a stronger private key for tests 2020-07-17 14:20:57 +02:00
group iotests/308: Add test for FUSE exports 2020-12-11 17:52:40 +01:00
iotests.py iotests: add filter_qmp_virtio_scsi function 2020-11-09 15:44:21 +01:00
Makefile
meson.build meson: clean up build_by_default 2020-09-30 19:09:19 +02:00
nbd-fault-injector.py iotests: Replace deprecated ConfigParser.readfp() 2020-11-17 12:26:47 +01:00
pylintrc iotests: Disable unsubscriptable-object in pylint 2020-11-03 16:24:56 +01:00
qcow2_format.py qcow2_format.py: support dumping metadata in JSON format 2020-08-21 08:56:09 -05:00
qcow2.py qcow2.py: Introduce '-j' key to dump in JSON format 2020-08-21 08:56:09 -05:00
qed.py drop "from __future__ import print_function" 2020-02-07 15:15:16 +01:00
README
socket_scm_helper.c

=== 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.