2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2006 Silicon Graphics, Inc. All Rights Reserved.
7 # xfs_io vector read/write and trunc tests. modified from cxfsqa tests
8 # - unixfile_basic_block_hole
9 # - unixfile_buffer_direct_coherency
10 # - unixfile_direct_rw
11 # - unixfile_eof_direct
13 # - unixfile_open_append
14 # - unixfile_open_trunc
15 # - unixfile_small_vector_async_rw
16 # - unixfile_small_vector_sync_rw
19 _begin_fstest pattern auto quick
21 # Import common functions.
24 # real QA test starts here
31 _scratch_mkfs >/dev/null 2>&1
34 echo "End-of-file zeroing with direct I/O"
35 $XFS_IO_PROG -f -d -t -c "pwrite -S 0x63 0 65536" \
37 -c "pwrite -S 0x41 65536 65536" \
38 -c "pread -v 0 131072" \
39 $SCRATCH_MNT/eof-zeroing_direct | _filter_xfs_io_unique
42 echo "Basic Block Hole test"
43 $XFS_IO_PROG -f -t -c "truncate 8192" \
44 -c "pread -v 5000 3000" \
45 $SCRATCH_MNT/blackhole | _filter_xfs_io_unique
48 echo "Test buffered and direct IO coherency"
49 $XFS_IO_PROG -f -t -c "pwrite -S 0x41 8000 1000" \
50 -c "pwrite -S 0x57 4000 1000" \
51 $SCRATCH_MNT/buff_direct_coherency | _filter_xfs_io_unique
53 $XFS_IO_PROG -d -c "pwrite -S 0x78 20480 4096"\
54 -c "pwrite -S 0x79 4096 4096"\
55 $SCRATCH_MNT/buff_direct_coherency | _filter_xfs_io_unique
57 $XFS_IO_PROG -c "pread -v 0 9000"\
58 $SCRATCH_MNT/buff_direct_coherency | _filter_xfs_io_unique
61 echo "Test direct read and write"
62 $XFS_IO_PROG -f -d -t -c "pwrite -S 0x78 0 65536"\
63 -c "pread -v 0 65536"\
64 -c "pwrite -S 0x46 65536 6553600"\
65 -c "pread -v 0 6619136"\
66 $SCRATCH_MNT/direct_io | _filter_xfs_io_unique
68 $XFS_IO_PROG -d -c "pread -v 0 6619136"\
69 $SCRATCH_MNT/direct_io | _filter_xfs_io_unique
71 $XFS_IO_PROG -f -d -t -c "pwrite -S 0x61 0 65536"\
72 -c "pread -v 0 65536"\
73 -c "pwrite -S 0x62 65536 131072"\
74 -c "pread -v 0 131072"\
75 $SCRATCH_MNT/async_direct_io | _filter_xfs_io_unique
77 $XFS_IO_PROG -d -c "pread -v 0 131072"\
78 $SCRATCH_MNT/async_direct_io | _filter_xfs_io_unique
82 $XFS_IO_PROG -f -t -c "truncate 131072"\
83 -c "pwrite -S 0x5F 0 131072"\
86 -c "pwrite -S 0x61 65535 2"\
87 -c "pread -v 0 131072"\
88 $SCRATCH_MNT/fsb_edge_test | _filter_xfs_io_unique
91 echo "Open Trunk test (O_TRUNC)"
94 $XFS_IO_PROG -f -t -c "pread -v 0 100" $SCRATCH_MNT/$n | _filter_xfs_io_unique
96 echo "Test" > $SCRATCH_MNT/$n
97 $XFS_IO_PROG -f -t -c "pread -v 0 100" $SCRATCH_MNT/$n | _filter_xfs_io_unique
104 echo "append to me" > $SCRATCH_MNT/append
105 $XFS_IO_PROG -a -c "pwrite -S 0x61 0 10" \
107 $SCRATCH_MNT/append | _filter_xfs_io_unique
110 echo "Small Vector Async"
111 echo "abcdefghijklmnopqrstuvwxyz" > $SCRATCH_MNT/small_vector_async
112 $XFS_IO_PROG -f -c "pread -v 0 1"\
126 -c "pwrite -S 0x61 4090 1"\
127 -c "pwrite -S 0x62 4091 1"\
128 -c "pwrite -S 0x63 4092 1"\
129 -c "pwrite -S 0x64 4093 1"\
130 -c "pwrite -S 0x65 4094 1"\
131 -c "pwrite -S 0x66 4095 1"\
132 -c "pwrite -S 0x67 4096 1"\
133 -c "pwrite -S 0x68 4097 1"\
134 -c "pwrite -S 0x69 4098 1"\
135 -c "pwrite -S 0x6A 4099 1"\
136 -c "pwrite -S 0x6B 4100 1"\
137 -c "pwrite -S 0x6C 4101 1"\
138 -c "pwrite -S 0x6D 4102 1"\
139 -c "pwrite -S 0x6E 4103 1"\
140 -c "pwrite -S 0x6F 4104 1"\
141 -c "pwrite -S 0x70 4105 1"\
142 -c "pread -v 4090 4"\
143 -c "pread -v 4094 4"\
144 -c "pread -v 4098 4"\
145 -c "pread -v 4102 4"\
146 -c "pwrite -S 0x61 10000000000 1"\
147 -c "pwrite -S 0x62 10000000001 1"\
148 -c "pwrite -S 0x63 10000000002 1"\
149 -c "pwrite -S 0x64 10000000003 1"\
150 -c "pwrite -S 0x65 10000000004 1"\
151 -c "pwrite -S 0x66 10000000005 1"\
152 -c "pwrite -S 0x67 10000000006 1"\
153 -c "pwrite -S 0x68 10000000007 1"\
154 -c "pwrite -S 0x69 10000000008 1"\
155 -c "pwrite -S 0x6A 10000000009 1"\
156 -c "pwrite -S 0x6B 10000000010 1"\
157 -c "pwrite -S 0x6C 10000000011 1"\
158 -c "pwrite -S 0x6D 10000000012 1"\
159 -c "pwrite -S 0x6E 10000000013 1"\
160 -c "pwrite -S 0x6F 10000000014 1"\
161 -c "pwrite -S 0x70 10000000015 1"\
162 -c "pread -v 10000000000 4"\
163 -c "pread -v 10000000004 4"\
164 -c "pread -v 10000000008 4"\
165 -c "pread -v 10000000012 4"\
166 $SCRATCH_MNT/small_vector_async | _filter_xfs_io_unique
169 echo "Small Vector Sync"
170 echo "abcdefghijklmnopqrstuvwxyz" > $SCRATCH_MNT/small_vector_async
171 $XFS_IO_PROG -f -s -c "pread -v 0 1"\
185 -c "pwrite -S 0x61 4090 1"\
186 -c "pwrite -S 0x62 4091 1"\
187 -c "pwrite -S 0x63 4092 1"\
188 -c "pwrite -S 0x64 4093 1"\
189 -c "pwrite -S 0x65 4094 1"\
190 -c "pwrite -S 0x66 4095 1"\
191 -c "pwrite -S 0x67 4096 1"\
192 -c "pwrite -S 0x68 4097 1"\
193 -c "pwrite -S 0x69 4098 1"\
194 -c "pwrite -S 0x6A 4099 1"\
195 -c "pwrite -S 0x6B 4100 1"\
196 -c "pwrite -S 0x6C 4101 1"\
197 -c "pwrite -S 0x6D 4102 1"\
198 -c "pwrite -S 0x6E 4103 1"\
199 -c "pwrite -S 0x6F 4104 1"\
200 -c "pwrite -S 0x70 4105 1"\
201 -c "pread -v 4090 4"\
202 -c "pread -v 4094 4"\
203 -c "pread -v 4098 4"\
204 -c "pread -v 4102 4"\
205 -c "pwrite -S 0x61 10000000000 1"\
206 -c "pwrite -S 0x62 10000000001 1"\
207 -c "pwrite -S 0x63 10000000002 1"\
208 -c "pwrite -S 0x64 10000000003 1"\
209 -c "pwrite -S 0x65 10000000004 1"\
210 -c "pwrite -S 0x66 10000000005 1"\
211 -c "pwrite -S 0x67 10000000006 1"\
212 -c "pwrite -S 0x68 10000000007 1"\
213 -c "pwrite -S 0x69 10000000008 1"\
214 -c "pwrite -S 0x6A 10000000009 1"\
215 -c "pwrite -S 0x6B 10000000010 1"\
216 -c "pwrite -S 0x6C 10000000011 1"\
217 -c "pwrite -S 0x6D 10000000012 1"\
218 -c "pwrite -S 0x6E 10000000013 1"\
219 -c "pwrite -S 0x6F 10000000014 1"\
220 -c "pwrite -S 0x70 10000000015 1"\
221 -c "pread -v 10000000000 4"\
222 -c "pread -v 10000000004 4"\
223 -c "pread -v 10000000008 4"\
224 -c "pread -v 10000000012 4"\
225 $SCRATCH_MNT/small_vector_async | _filter_xfs_io_unique