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