xfstests: add a new test case for ext4 indirect-based file

After applied this commit (864688d3), xfstests #255 will not test a
file system that cannot support fallocate(2), such as a indirect-based
file in ext4.  So we need to add a new generic test case to test it.

The difference between #255 and this test case is only to use pwrite to
allocate blocks.  Other filesystems should survive in this test case.
In the mean time, a new argument '-u' is added into _test_generic_punch
not to run unwritten tests.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Reviewed-by: Rich Johnston <rjohnston@sgi.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
This commit is contained in:
Zheng Liu
2013-08-16 05:28:07 +00:00
committed by Rich Johnston
parent 617491caf4
commit 060dd14cc8
4 changed files with 319 additions and 72 deletions
+165
View File
@@ -0,0 +1,165 @@
QA output created by 316
1. into a hole
daa100df6e6711906b61c9ab5aa16032
2. into allocated space
0: [0..7]: extent
1: [8..23]: hole
2: [24..39]: extent
cc58a7417c2d7763adc45b6fcd3fa024
4. hole -> data
0: [0..23]: hole
1: [24..31]: extent
2: [32..39]: hole
cc63069677939f69a6e8f68cae6a6dac
6. data -> hole
0: [0..7]: extent
1: [8..39]: hole
1b3779878366498b28c702ef88c4a773
10. hole -> data -> hole
daa100df6e6711906b61c9ab5aa16032
11. data -> hole -> data
0: [0..7]: extent
1: [8..31]: hole
2: [32..39]: extent
f6aeca13ec49e5b266cd1c913cd726e3
14. data -> hole @ EOF
0: [0..23]: extent
1: [24..39]: hole
e1f024eedd27ea6b1c3e9b841c850404
15. data -> hole @ 0
0: [0..15]: hole
1: [16..39]: extent
eecb7aa303d121835de05028751d301c
16. data -> cache cold ->hole
0: [0..15]: hole
1: [16..39]: extent
eecb7aa303d121835de05028751d301c
17. data -> hole in single block file
0: [0..7]: extent
13535fd4d496bf0b74bb2335aa4d1b31
1. into a hole
daa100df6e6711906b61c9ab5aa16032
2. into allocated space
0: [0..7]: extent
1: [8..23]: hole
2: [24..39]: extent
cc58a7417c2d7763adc45b6fcd3fa024
4. hole -> data
0: [0..23]: hole
1: [24..31]: extent
2: [32..39]: hole
cc63069677939f69a6e8f68cae6a6dac
6. data -> hole
0: [0..7]: extent
1: [8..39]: hole
1b3779878366498b28c702ef88c4a773
10. hole -> data -> hole
daa100df6e6711906b61c9ab5aa16032
11. data -> hole -> data
0: [0..7]: extent
1: [8..31]: hole
2: [32..39]: extent
f6aeca13ec49e5b266cd1c913cd726e3
14. data -> hole @ EOF
0: [0..23]: extent
1: [24..39]: hole
e1f024eedd27ea6b1c3e9b841c850404
15. data -> hole @ 0
0: [0..15]: hole
1: [16..39]: extent
eecb7aa303d121835de05028751d301c
16. data -> cache cold ->hole
0: [0..15]: hole
1: [16..39]: extent
eecb7aa303d121835de05028751d301c
17. data -> hole in single block file
0: [0..7]: extent
13535fd4d496bf0b74bb2335aa4d1b31
1. into a hole
0: [0..7]: extent
1: [8..39]: hole
5a58e46082be047d0f13bee7974015b9
2. into allocated space
0: [0..7]: extent
1: [8..23]: hole
2: [24..39]: extent
cc58a7417c2d7763adc45b6fcd3fa024
4. hole -> data
0: [0..7]: extent
1: [8..23]: hole
2: [24..39]: extent
cc58a7417c2d7763adc45b6fcd3fa024
6. data -> hole
0: [0..7]: extent
1: [8..23]: hole
2: [24..39]: extent
cc58a7417c2d7763adc45b6fcd3fa024
10. hole -> data -> hole
0: [0..7]: extent
1: [8..31]: hole
2: [32..39]: extent
f6aeca13ec49e5b266cd1c913cd726e3
11. data -> hole -> data
0: [0..7]: extent
1: [8..31]: hole
2: [32..39]: extent
f6aeca13ec49e5b266cd1c913cd726e3
14. data -> hole @ EOF
0: [0..23]: extent
1: [24..39]: hole
e1f024eedd27ea6b1c3e9b841c850404
15. data -> hole @ 0
0: [0..15]: hole
1: [16..39]: extent
eecb7aa303d121835de05028751d301c
16. data -> cache cold ->hole
0: [0..15]: hole
1: [16..39]: extent
eecb7aa303d121835de05028751d301c
17. data -> hole in single block file
0: [0..7]: extent
13535fd4d496bf0b74bb2335aa4d1b31
1. into a hole
0: [0..7]: extent
1: [8..39]: hole
5a58e46082be047d0f13bee7974015b9
2. into allocated space
0: [0..7]: extent
1: [8..23]: hole
2: [24..39]: extent
cc58a7417c2d7763adc45b6fcd3fa024
4. hole -> data
0: [0..7]: extent
1: [8..23]: hole
2: [24..39]: extent
cc58a7417c2d7763adc45b6fcd3fa024
6. data -> hole
0: [0..7]: extent
1: [8..23]: hole
2: [24..39]: extent
cc58a7417c2d7763adc45b6fcd3fa024
10. hole -> data -> hole
0: [0..7]: extent
1: [8..31]: hole
2: [32..39]: extent
f6aeca13ec49e5b266cd1c913cd726e3
11. data -> hole -> data
0: [0..7]: extent
1: [8..31]: hole
2: [32..39]: extent
f6aeca13ec49e5b266cd1c913cd726e3
14. data -> hole @ EOF
0: [0..23]: extent
1: [24..39]: hole
e1f024eedd27ea6b1c3e9b841c850404
15. data -> hole @ 0
0: [0..15]: hole
1: [16..39]: extent
eecb7aa303d121835de05028751d301c
16. data -> cache cold ->hole
0: [0..15]: hole
1: [16..39]: extent
eecb7aa303d121835de05028751d301c
17. data -> hole in single block file
0: [0..7]: extent
13535fd4d496bf0b74bb2335aa4d1b31