fsx/fsstress: round blocksize properly
[xfstests-dev.git] / tests / generic / 130
1 #! /bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2006 Silicon Graphics, Inc.  All Rights Reserved.
4 #
5 # FSQA Test No. 130
6 #
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
12 # - unixfile_fsb_edge
13 # - unixfile_open_append
14 # - unixfile_open_trunc
15 # - unixfile_small_vector_async_rw
16 # - unixfile_small_vector_sync_rw
17 #
18 seq=`basename $0`
19 seqres=$RESULT_DIR/$seq
20 echo "QA output created by $seq"
21
22 here=`pwd`
23 tmp=/tmp/$$
24 status=1    # failure is the default!
25 trap "exit \$status" 0 1 2 3 15
26
27 # get standard environment, filters and checks
28 . ./common/rc
29 . ./common/filter
30
31 # real QA test starts here
32 _supported_fs generic
33
34 _require_scratch
35 _require_sparse_files
36 _require_odirect
37
38 _scratch_mkfs >/dev/null 2>&1
39 _scratch_mount
40
41 echo "End-of-file zeroing with direct I/O"
42 $XFS_IO_PROG -f -d -t -c "pwrite -S 0x63 0 65536" \
43     -c "truncate 1" \
44     -c "pwrite -S 0x41 65536 65536" \
45     -c "pread -v 0 131072" \
46     $SCRATCH_MNT/eof-zeroing_direct | _filter_xfs_io_unique
47
48 echo
49 echo "Basic Block Hole test"
50 $XFS_IO_PROG -f -t -c "truncate 8192" \
51     -c "pread -v 5000 3000" \
52     $SCRATCH_MNT/blackhole | _filter_xfs_io_unique
53
54 echo
55 echo "Test buffered and direct IO coherency"
56 $XFS_IO_PROG -f -t -c "pwrite -S 0x41 8000 1000" \
57     -c "pwrite -S 0x57 4000 1000" \
58     $SCRATCH_MNT/buff_direct_coherency | _filter_xfs_io_unique
59
60 $XFS_IO_PROG -d -c "pwrite -S 0x78 20480 4096"\
61     -c "pwrite -S 0x79 4096 4096"\
62     $SCRATCH_MNT/buff_direct_coherency | _filter_xfs_io_unique
63
64 $XFS_IO_PROG -c "pread -v 0 9000"\
65     $SCRATCH_MNT/buff_direct_coherency | _filter_xfs_io_unique
66
67 echo
68 echo "Test direct read and write"
69 $XFS_IO_PROG -f -d -t -c "pwrite -S 0x78 0 65536"\
70     -c "pread -v 0 65536"\
71     -c "pwrite -S 0x46 65536 6553600"\
72     -c "pread -v 0 6619136"\
73     $SCRATCH_MNT/direct_io | _filter_xfs_io_unique
74
75 $XFS_IO_PROG -d -c "pread -v 0 6619136"\
76     $SCRATCH_MNT/direct_io | _filter_xfs_io_unique
77
78 $XFS_IO_PROG -f -d -t -c "pwrite -S 0x61 0 65536"\
79     -c "pread -v 0 65536"\
80     -c "pwrite -S 0x62 65536 131072"\
81     -c "pread -v 0 131072"\
82     $SCRATCH_MNT/async_direct_io | _filter_xfs_io_unique
83
84 $XFS_IO_PROG -d -c "pread -v 0 131072"\
85     $SCRATCH_MNT/async_direct_io | _filter_xfs_io_unique
86
87 echo
88 echo "FSB Edge test"
89 $XFS_IO_PROG -f -t -c "truncate 131072"\
90     -c "pwrite -S 0x5F 0 131072"\
91     -c "truncate 0"\
92     -c "truncate 131072"\
93     -c "pwrite -S 0x61 65535 2"\
94     -c "pread -v 0 131072"\
95     $SCRATCH_MNT/fsb_edge_test | _filter_xfs_io_unique
96
97 echo
98 echo "Open Trunk test (O_TRUNC)"
99 for n in 0 1 2 3 4
100 do
101     $XFS_IO_PROG -f -t -c "pread -v 0 100" $SCRATCH_MNT/$n | _filter_xfs_io_unique
102
103     echo "Test" > $SCRATCH_MNT/$n
104     $XFS_IO_PROG -f -t -c "pread -v 0 100" $SCRATCH_MNT/$n | _filter_xfs_io_unique
105     cat $SCRATCH_MNT/$n
106 done
107 echo "DONE"
108
109 echo
110 echo "Append test"
111 echo "append to me" > $SCRATCH_MNT/append
112 $XFS_IO_PROG -a -c "pwrite -S 0x61 0 10" \
113     -c "pread -v 0 24"\
114     $SCRATCH_MNT/append | _filter_xfs_io_unique
115
116 echo
117 echo "Small Vector Async"
118 echo "abcdefghijklmnopqrstuvwxyz" > $SCRATCH_MNT/small_vector_async
119 $XFS_IO_PROG -f -c "pread -v 0 1"\
120     -c "pread -v 1 1"\
121     -c "pread -v 2 1"\
122     -c "pread -v 3 1"\
123     -c "pread -v 4 1"\
124     -c "pread -v 5 1"\
125     -c "pread -v 6 1"\
126     -c "pread -v 7 1"\
127     -c "pread -v 8 1"\
128     -c "pread -v 9 1"\
129     -c "pread -v 10 1"\
130     -c "pread -v 11 1"\
131     -c "pread -v 12 1"\
132     -c "pread -v 13 13"\
133     -c "pwrite -S 0x61 4090 1"\
134     -c "pwrite -S 0x62 4091 1"\
135     -c "pwrite -S 0x63 4092 1"\
136     -c "pwrite -S 0x64 4093 1"\
137     -c "pwrite -S 0x65 4094 1"\
138     -c "pwrite -S 0x66 4095 1"\
139     -c "pwrite -S 0x67 4096 1"\
140     -c "pwrite -S 0x68 4097 1"\
141     -c "pwrite -S 0x69 4098 1"\
142     -c "pwrite -S 0x6A 4099 1"\
143     -c "pwrite -S 0x6B 4100 1"\
144     -c "pwrite -S 0x6C 4101 1"\
145     -c "pwrite -S 0x6D 4102 1"\
146     -c "pwrite -S 0x6E 4103 1"\
147     -c "pwrite -S 0x6F 4104 1"\
148     -c "pwrite -S 0x70 4105 1"\
149     -c "pread -v 4090 4"\
150     -c "pread -v 4094 4"\
151     -c "pread -v 4098 4"\
152     -c "pread -v 4102 4"\
153     -c "pwrite -S 0x61 10000000000 1"\
154     -c "pwrite -S 0x62 10000000001 1"\
155     -c "pwrite -S 0x63 10000000002 1"\
156     -c "pwrite -S 0x64 10000000003 1"\
157     -c "pwrite -S 0x65 10000000004 1"\
158     -c "pwrite -S 0x66 10000000005 1"\
159     -c "pwrite -S 0x67 10000000006 1"\
160     -c "pwrite -S 0x68 10000000007 1"\
161     -c "pwrite -S 0x69 10000000008 1"\
162     -c "pwrite -S 0x6A 10000000009 1"\
163     -c "pwrite -S 0x6B 10000000010 1"\
164     -c "pwrite -S 0x6C 10000000011 1"\
165     -c "pwrite -S 0x6D 10000000012 1"\
166     -c "pwrite -S 0x6E 10000000013 1"\
167     -c "pwrite -S 0x6F 10000000014 1"\
168     -c "pwrite -S 0x70 10000000015 1"\
169     -c "pread -v 10000000000 4"\
170     -c "pread -v 10000000004 4"\
171     -c "pread -v 10000000008 4"\
172     -c "pread -v 10000000012 4"\
173     $SCRATCH_MNT/small_vector_async | _filter_xfs_io_unique
174
175 echo
176 echo "Small Vector Sync"
177 echo "abcdefghijklmnopqrstuvwxyz" > $SCRATCH_MNT/small_vector_async
178 $XFS_IO_PROG -f -s -c "pread -v 0 1"\
179     -c "pread -v 1 1"\
180     -c "pread -v 2 1"\
181     -c "pread -v 3 1"\
182     -c "pread -v 4 1"\
183     -c "pread -v 5 1"\
184     -c "pread -v 6 1"\
185     -c "pread -v 7 1"\
186     -c "pread -v 8 1"\
187     -c "pread -v 9 1"\
188     -c "pread -v 10 1"\
189     -c "pread -v 11 1"\
190     -c "pread -v 12 1"\
191     -c "pread -v 13 13"\
192     -c "pwrite -S 0x61 4090 1"\
193     -c "pwrite -S 0x62 4091 1"\
194     -c "pwrite -S 0x63 4092 1"\
195     -c "pwrite -S 0x64 4093 1"\
196     -c "pwrite -S 0x65 4094 1"\
197     -c "pwrite -S 0x66 4095 1"\
198     -c "pwrite -S 0x67 4096 1"\
199     -c "pwrite -S 0x68 4097 1"\
200     -c "pwrite -S 0x69 4098 1"\
201     -c "pwrite -S 0x6A 4099 1"\
202     -c "pwrite -S 0x6B 4100 1"\
203     -c "pwrite -S 0x6C 4101 1"\
204     -c "pwrite -S 0x6D 4102 1"\
205     -c "pwrite -S 0x6E 4103 1"\
206     -c "pwrite -S 0x6F 4104 1"\
207     -c "pwrite -S 0x70 4105 1"\
208     -c "pread -v 4090 4"\
209     -c "pread -v 4094 4"\
210     -c "pread -v 4098 4"\
211     -c "pread -v 4102 4"\
212     -c "pwrite -S 0x61 10000000000 1"\
213     -c "pwrite -S 0x62 10000000001 1"\
214     -c "pwrite -S 0x63 10000000002 1"\
215     -c "pwrite -S 0x64 10000000003 1"\
216     -c "pwrite -S 0x65 10000000004 1"\
217     -c "pwrite -S 0x66 10000000005 1"\
218     -c "pwrite -S 0x67 10000000006 1"\
219     -c "pwrite -S 0x68 10000000007 1"\
220     -c "pwrite -S 0x69 10000000008 1"\
221     -c "pwrite -S 0x6A 10000000009 1"\
222     -c "pwrite -S 0x6B 10000000010 1"\
223     -c "pwrite -S 0x6C 10000000011 1"\
224     -c "pwrite -S 0x6D 10000000012 1"\
225     -c "pwrite -S 0x6E 10000000013 1"\
226     -c "pwrite -S 0x6F 10000000014 1"\
227     -c "pwrite -S 0x70 10000000015 1"\
228     -c "pread -v 10000000000 4"\
229     -c "pread -v 10000000004 4"\
230     -c "pread -v 10000000008 4"\
231     -c "pread -v 10000000012 4"\
232     $SCRATCH_MNT/small_vector_async | _filter_xfs_io_unique
233
234 status=0
235 exit