diff mbox series

[1/2] fstests: add missing checks of fallocate feature

Message ID 20210302091305.27828-2-johannes.thumshirn@wdc.com (mailing list archive)
State New, archived
Headers show
Series fstests: two preperation patches for zoned device support | expand

Commit Message

Johannes Thumshirn March 2, 2021, 9:13 a.m. UTC
From: Naohiro Aota <naohiro.aota@wdc.com>

Many test cases use xfs_io -c 'falloc' but forgot to add
_require_xfs_io_command "falloc". This will fail the test case if we run
the test case on a file system without fallcoate support e.g. F2FS ZZ

While we believe that normal fallocate(mode = 0) is always supported on
Linux, it is not true. Fallocate is disabled in several implementations of
zoned block support for file systems because the pre-allocated region will
break the sequential writing rule.

Currently, several test cases unconditionally call fallocate(). Let's add
_require_xfs_io_command "falloc" to properly check the feature is supported
by a testing file system.

Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
---
 tests/btrfs/013   | 1 +
 tests/btrfs/016   | 1 +
 tests/btrfs/025   | 1 +
 tests/btrfs/034   | 1 +
 tests/btrfs/037   | 1 +
 tests/btrfs/046   | 1 +
 tests/btrfs/107   | 1 +
 tests/ext4/001    | 1 +
 tests/f2fs/001    | 1 +
 tests/generic/456 | 1 +
 tests/xfs/042     | 1 +
 tests/xfs/114     | 1 +
 tests/xfs/118     | 1 +
 tests/xfs/331     | 1 +
 tests/xfs/341     | 1 +
 tests/xfs/342     | 1 +
 tests/xfs/423     | 1 +
 17 files changed, 17 insertions(+)

Comments

Josef Bacik March 2, 2021, 7 p.m. UTC | #1
On 3/2/21 4:13 AM, Johannes Thumshirn wrote:
> From: Naohiro Aota <naohiro.aota@wdc.com>
> 
> Many test cases use xfs_io -c 'falloc' but forgot to add
> _require_xfs_io_command "falloc". This will fail the test case if we run
> the test case on a file system without fallcoate support e.g. F2FS ZZ
> 
> While we believe that normal fallocate(mode = 0) is always supported on
> Linux, it is not true. Fallocate is disabled in several implementations of
> zoned block support for file systems because the pre-allocated region will
> break the sequential writing rule.
> 
> Currently, several test cases unconditionally call fallocate(). Let's add
> _require_xfs_io_command "falloc" to properly check the feature is supported
> by a testing file system.
> 
> Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>

Reviewed-by: Josef Bacik <josef@toxicpanda.com>

Thanks,

Josef
Naohiro Aota March 3, 2021, 6:01 a.m. UTC | #2
On Tue, Mar 02, 2021 at 06:13:04PM +0900, Johannes Thumshirn wrote:
> From: Naohiro Aota <naohiro.aota@wdc.com>
> 
> Many test cases use xfs_io -c 'falloc' but forgot to add
> _require_xfs_io_command "falloc". This will fail the test case if we run
> the test case on a file system without fallcoate support e.g. F2FS ZZ
>

The sentences between "This will " .. "e.g. F2FS ZZ" should be removed.
# Vim command leaked to the log ... oops.

> While we believe that normal fallocate(mode = 0) is always supported on
> Linux, it is not true. Fallocate is disabled in several implementations of
> zoned block support for file systems because the pre-allocated region will
> break the sequential writing rule.
> 
> Currently, several test cases unconditionally call fallocate(). Let's add
> _require_xfs_io_command "falloc" to properly check the feature is supported
> by a testing file system.
> 
> Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
> ---
>  tests/btrfs/013   | 1 +
>  tests/btrfs/016   | 1 +
>  tests/btrfs/025   | 1 +
>  tests/btrfs/034   | 1 +
>  tests/btrfs/037   | 1 +
>  tests/btrfs/046   | 1 +
>  tests/btrfs/107   | 1 +
>  tests/ext4/001    | 1 +
>  tests/f2fs/001    | 1 +
>  tests/generic/456 | 1 +
>  tests/xfs/042     | 1 +
>  tests/xfs/114     | 1 +
>  tests/xfs/118     | 1 +
>  tests/xfs/331     | 1 +
>  tests/xfs/341     | 1 +
>  tests/xfs/342     | 1 +
>  tests/xfs/423     | 1 +
>  17 files changed, 17 insertions(+)
> 
> diff --git a/tests/btrfs/013 b/tests/btrfs/013
> index 9252c82a2076..5e03ed4a4b4b 100755
> --- a/tests/btrfs/013
> +++ b/tests/btrfs/013
> @@ -33,6 +33,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15
>  # real QA test starts here
>  _supported_fs btrfs
>  _require_scratch
> +_require_xfs_io_command "falloc"
>  
>  rm -f $seqres.full
>  
> diff --git a/tests/btrfs/016 b/tests/btrfs/016
> index 8fd237cbdb64..015ec17f93d6 100755
> --- a/tests/btrfs/016
> +++ b/tests/btrfs/016
> @@ -35,6 +35,7 @@ _supported_fs btrfs
>  _require_test
>  _require_scratch
>  _require_fssum
> +_require_xfs_io_command "falloc"
>  
>  _scratch_mkfs > /dev/null 2>&1
>  
> diff --git a/tests/btrfs/025 b/tests/btrfs/025
> index 42cd7cefe825..5c8140552bfb 100755
> --- a/tests/btrfs/025
> +++ b/tests/btrfs/025
> @@ -31,6 +31,7 @@ _cleanup()
>  # real QA test starts here
>  _supported_fs btrfs
>  _require_scratch
> +_require_xfs_io_command "falloc"
>  
>  rm -f $seqres.full
>  
> diff --git a/tests/btrfs/034 b/tests/btrfs/034
> index bc7a4aae3886..07c84c347d3b 100755
> --- a/tests/btrfs/034
> +++ b/tests/btrfs/034
> @@ -28,6 +28,7 @@ _cleanup()
>  # real QA test starts here
>  _supported_fs btrfs
>  _require_scratch
> +_require_xfs_io_command "falloc"
>  
>  rm -f $seqres.full
>  
> diff --git a/tests/btrfs/037 b/tests/btrfs/037
> index 1cfaf5be58c8..9ef199a93413 100755
> --- a/tests/btrfs/037
> +++ b/tests/btrfs/037
> @@ -35,6 +35,7 @@ _cleanup()
>  # real QA test starts here
>  _supported_fs btrfs
>  _require_scratch
> +_require_xfs_io_command "falloc"
>  
>  rm -f $seqres.full
>  
> diff --git a/tests/btrfs/046 b/tests/btrfs/046
> index 882db8eacc4e..a1d82e1cdd54 100755
> --- a/tests/btrfs/046
> +++ b/tests/btrfs/046
> @@ -37,6 +37,7 @@ _cleanup()
>  _supported_fs btrfs
>  _require_test
>  _require_scratch
> +_require_xfs_io_command "falloc"
>  _require_fssum
>  
>  rm -f $seqres.full
> diff --git a/tests/btrfs/107 b/tests/btrfs/107
> index e57c9dead499..80db5ab9822d 100755
> --- a/tests/btrfs/107
> +++ b/tests/btrfs/107
> @@ -34,6 +34,7 @@ rm -f $seqres.full
>  
>  _supported_fs btrfs
>  _require_scratch
> +_require_xfs_io_command "falloc"
>  
>  # Use 64K file size to match any sectorsize
>  # And with a unaligned tailing range to ensure it will be at least 2 pages
> diff --git a/tests/ext4/001 b/tests/ext4/001
> index bbb74f1ea5bc..9650303d15b5 100755
> --- a/tests/ext4/001
> +++ b/tests/ext4/001
> @@ -29,6 +29,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15
>  
>  # real QA test starts here
>  _supported_fs ext4
> +_require_xfs_io_command "falloc"
>  _require_xfs_io_command "fzero"
>  _require_test
>  
> diff --git a/tests/f2fs/001 b/tests/f2fs/001
> index 98bd2682d60f..0753a09b5576 100755
> --- a/tests/f2fs/001
> +++ b/tests/f2fs/001
> @@ -36,6 +36,7 @@ _cleanup()
>  
>  _supported_fs f2fs
>  _require_scratch
> +_require_xfs_io_command "falloc"
>  
>  testfile=$SCRATCH_MNT/testfile
>  dummyfile=$SCRATCH_MNT/dummyfile
> diff --git a/tests/generic/456 b/tests/generic/456
> index 2f9df5e5edc4..65667d449dd3 100755
> --- a/tests/generic/456
> +++ b/tests/generic/456
> @@ -38,6 +38,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
>  # real QA test starts here
>  _supported_fs generic
>  _require_scratch
> +_require_xfs_io_command "falloc"
>  _require_dm_target flakey
>  _require_xfs_io_command "falloc" "-k"
>  _require_xfs_io_command "fzero"
> diff --git a/tests/xfs/042 b/tests/xfs/042
> index b55d642c5170..fcd5181cf590 100755
> --- a/tests/xfs/042
> +++ b/tests/xfs/042
> @@ -31,6 +31,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15
>  
>  # real QA test starts here
>  _supported_fs xfs
> +_require_xfs_io_command "falloc"
>  
>  _require_scratch
>  
> diff --git a/tests/xfs/114 b/tests/xfs/114
> index b936452461c6..3f5575a61dfb 100755
> --- a/tests/xfs/114
> +++ b/tests/xfs/114
> @@ -32,6 +32,7 @@ _cleanup()
>  _supported_fs xfs
>  _require_test_program "punch-alternating"
>  _require_xfs_scratch_rmapbt
> +_require_xfs_io_command "falloc"
>  _require_xfs_io_command "fcollapse"
>  _require_xfs_io_command "finsert"
>  
> diff --git a/tests/xfs/118 b/tests/xfs/118
> index 5e23617b39dd..9a431821aa62 100755
> --- a/tests/xfs/118
> +++ b/tests/xfs/118
> @@ -41,6 +41,7 @@ _supported_fs xfs
>  
>  _require_scratch
>  _require_command "$XFS_FSR_PROG" "xfs_fsr"
> +_require_xfs_io_command "falloc"
>  
>  # 50M
>  _scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1
> diff --git a/tests/xfs/331 b/tests/xfs/331
> index 4ea54e2a534b..8e92b2e36a8d 100755
> --- a/tests/xfs/331
> +++ b/tests/xfs/331
> @@ -33,6 +33,7 @@ _require_xfs_scratch_rmapbt
>  _require_scratch_reflink
>  _require_xfs_io_command "falloc"
>  _require_test_program "punch-alternating"
> +_require_xfs_io_command "falloc"
>  
>  rm -f "$seqres.full"
>  
> diff --git a/tests/xfs/341 b/tests/xfs/341
> index e1fbe588d9eb..8bf05087e1ba 100755
> --- a/tests/xfs/341
> +++ b/tests/xfs/341
> @@ -31,6 +31,7 @@ _require_realtime
>  _require_xfs_scratch_rmapbt
>  _require_test_program "punch-alternating"
>  _disable_dmesg_check
> +_require_xfs_io_command "falloc"
>  
>  rm -f "$seqres.full"
>  
> diff --git a/tests/xfs/342 b/tests/xfs/342
> index 2be5f7698f01..4db222d65fb2 100755
> --- a/tests/xfs/342
> +++ b/tests/xfs/342
> @@ -30,6 +30,7 @@ _supported_fs xfs
>  _require_realtime
>  _require_xfs_scratch_rmapbt
>  _require_test_program "punch-alternating"
> +_require_xfs_io_command "falloc"
>  
>  rm -f "$seqres.full"
>  
> diff --git a/tests/xfs/423 b/tests/xfs/423
> index 8d51a9a60585..183c9cf5eded 100755
> --- a/tests/xfs/423
> +++ b/tests/xfs/423
> @@ -35,6 +35,7 @@ _cleanup()
>  _supported_fs xfs
>  _require_test_program "punch-alternating"
>  _require_xfs_io_command "scrub"
> +_require_xfs_io_command "falloc"
>  _require_scratch
>  
>  echo "Format and populate"
> -- 
> 2.30.0
>
Johannes Thumshirn March 3, 2021, 8:04 a.m. UTC | #3
On 03/03/2021 07:02, Naohiro Aota wrote:
> On Tue, Mar 02, 2021 at 06:13:04PM +0900, Johannes Thumshirn wrote:
>> From: Naohiro Aota <naohiro.aota@wdc.com>
>>
>> Many test cases use xfs_io -c 'falloc' but forgot to add
>> _require_xfs_io_command "falloc". This will fail the test case if we run
>> the test case on a file system without fallcoate support e.g. F2FS ZZ
>>
> 
> The sentences between "This will " .. "e.g. F2FS ZZ" should be removed.
> # Vim command leaked to the log ... oops.
> 

Ok will fix that up
diff mbox series

Patch

diff --git a/tests/btrfs/013 b/tests/btrfs/013
index 9252c82a2076..5e03ed4a4b4b 100755
--- a/tests/btrfs/013
+++ b/tests/btrfs/013
@@ -33,6 +33,7 @@  trap "_cleanup ; exit \$status" 0 1 2 3 15
 # real QA test starts here
 _supported_fs btrfs
 _require_scratch
+_require_xfs_io_command "falloc"
 
 rm -f $seqres.full
 
diff --git a/tests/btrfs/016 b/tests/btrfs/016
index 8fd237cbdb64..015ec17f93d6 100755
--- a/tests/btrfs/016
+++ b/tests/btrfs/016
@@ -35,6 +35,7 @@  _supported_fs btrfs
 _require_test
 _require_scratch
 _require_fssum
+_require_xfs_io_command "falloc"
 
 _scratch_mkfs > /dev/null 2>&1
 
diff --git a/tests/btrfs/025 b/tests/btrfs/025
index 42cd7cefe825..5c8140552bfb 100755
--- a/tests/btrfs/025
+++ b/tests/btrfs/025
@@ -31,6 +31,7 @@  _cleanup()
 # real QA test starts here
 _supported_fs btrfs
 _require_scratch
+_require_xfs_io_command "falloc"
 
 rm -f $seqres.full
 
diff --git a/tests/btrfs/034 b/tests/btrfs/034
index bc7a4aae3886..07c84c347d3b 100755
--- a/tests/btrfs/034
+++ b/tests/btrfs/034
@@ -28,6 +28,7 @@  _cleanup()
 # real QA test starts here
 _supported_fs btrfs
 _require_scratch
+_require_xfs_io_command "falloc"
 
 rm -f $seqres.full
 
diff --git a/tests/btrfs/037 b/tests/btrfs/037
index 1cfaf5be58c8..9ef199a93413 100755
--- a/tests/btrfs/037
+++ b/tests/btrfs/037
@@ -35,6 +35,7 @@  _cleanup()
 # real QA test starts here
 _supported_fs btrfs
 _require_scratch
+_require_xfs_io_command "falloc"
 
 rm -f $seqres.full
 
diff --git a/tests/btrfs/046 b/tests/btrfs/046
index 882db8eacc4e..a1d82e1cdd54 100755
--- a/tests/btrfs/046
+++ b/tests/btrfs/046
@@ -37,6 +37,7 @@  _cleanup()
 _supported_fs btrfs
 _require_test
 _require_scratch
+_require_xfs_io_command "falloc"
 _require_fssum
 
 rm -f $seqres.full
diff --git a/tests/btrfs/107 b/tests/btrfs/107
index e57c9dead499..80db5ab9822d 100755
--- a/tests/btrfs/107
+++ b/tests/btrfs/107
@@ -34,6 +34,7 @@  rm -f $seqres.full
 
 _supported_fs btrfs
 _require_scratch
+_require_xfs_io_command "falloc"
 
 # Use 64K file size to match any sectorsize
 # And with a unaligned tailing range to ensure it will be at least 2 pages
diff --git a/tests/ext4/001 b/tests/ext4/001
index bbb74f1ea5bc..9650303d15b5 100755
--- a/tests/ext4/001
+++ b/tests/ext4/001
@@ -29,6 +29,7 @@  trap "_cleanup ; exit \$status" 0 1 2 3 15
 
 # real QA test starts here
 _supported_fs ext4
+_require_xfs_io_command "falloc"
 _require_xfs_io_command "fzero"
 _require_test
 
diff --git a/tests/f2fs/001 b/tests/f2fs/001
index 98bd2682d60f..0753a09b5576 100755
--- a/tests/f2fs/001
+++ b/tests/f2fs/001
@@ -36,6 +36,7 @@  _cleanup()
 
 _supported_fs f2fs
 _require_scratch
+_require_xfs_io_command "falloc"
 
 testfile=$SCRATCH_MNT/testfile
 dummyfile=$SCRATCH_MNT/dummyfile
diff --git a/tests/generic/456 b/tests/generic/456
index 2f9df5e5edc4..65667d449dd3 100755
--- a/tests/generic/456
+++ b/tests/generic/456
@@ -38,6 +38,7 @@  trap "_cleanup; exit \$status" 0 1 2 3 15
 # real QA test starts here
 _supported_fs generic
 _require_scratch
+_require_xfs_io_command "falloc"
 _require_dm_target flakey
 _require_xfs_io_command "falloc" "-k"
 _require_xfs_io_command "fzero"
diff --git a/tests/xfs/042 b/tests/xfs/042
index b55d642c5170..fcd5181cf590 100755
--- a/tests/xfs/042
+++ b/tests/xfs/042
@@ -31,6 +31,7 @@  trap "_cleanup ; exit \$status" 0 1 2 3 15
 
 # real QA test starts here
 _supported_fs xfs
+_require_xfs_io_command "falloc"
 
 _require_scratch
 
diff --git a/tests/xfs/114 b/tests/xfs/114
index b936452461c6..3f5575a61dfb 100755
--- a/tests/xfs/114
+++ b/tests/xfs/114
@@ -32,6 +32,7 @@  _cleanup()
 _supported_fs xfs
 _require_test_program "punch-alternating"
 _require_xfs_scratch_rmapbt
+_require_xfs_io_command "falloc"
 _require_xfs_io_command "fcollapse"
 _require_xfs_io_command "finsert"
 
diff --git a/tests/xfs/118 b/tests/xfs/118
index 5e23617b39dd..9a431821aa62 100755
--- a/tests/xfs/118
+++ b/tests/xfs/118
@@ -41,6 +41,7 @@  _supported_fs xfs
 
 _require_scratch
 _require_command "$XFS_FSR_PROG" "xfs_fsr"
+_require_xfs_io_command "falloc"
 
 # 50M
 _scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1
diff --git a/tests/xfs/331 b/tests/xfs/331
index 4ea54e2a534b..8e92b2e36a8d 100755
--- a/tests/xfs/331
+++ b/tests/xfs/331
@@ -33,6 +33,7 @@  _require_xfs_scratch_rmapbt
 _require_scratch_reflink
 _require_xfs_io_command "falloc"
 _require_test_program "punch-alternating"
+_require_xfs_io_command "falloc"
 
 rm -f "$seqres.full"
 
diff --git a/tests/xfs/341 b/tests/xfs/341
index e1fbe588d9eb..8bf05087e1ba 100755
--- a/tests/xfs/341
+++ b/tests/xfs/341
@@ -31,6 +31,7 @@  _require_realtime
 _require_xfs_scratch_rmapbt
 _require_test_program "punch-alternating"
 _disable_dmesg_check
+_require_xfs_io_command "falloc"
 
 rm -f "$seqres.full"
 
diff --git a/tests/xfs/342 b/tests/xfs/342
index 2be5f7698f01..4db222d65fb2 100755
--- a/tests/xfs/342
+++ b/tests/xfs/342
@@ -30,6 +30,7 @@  _supported_fs xfs
 _require_realtime
 _require_xfs_scratch_rmapbt
 _require_test_program "punch-alternating"
+_require_xfs_io_command "falloc"
 
 rm -f "$seqres.full"
 
diff --git a/tests/xfs/423 b/tests/xfs/423
index 8d51a9a60585..183c9cf5eded 100755
--- a/tests/xfs/423
+++ b/tests/xfs/423
@@ -35,6 +35,7 @@  _cleanup()
 _supported_fs xfs
 _require_test_program "punch-alternating"
 _require_xfs_io_command "scrub"
+_require_xfs_io_command "falloc"
 _require_scratch
 
 echo "Format and populate"