btrfs/246: skip the test if the tested btrfs doesn't support inline extents creation
[FALSE ALERT]
If test case btrfs/246 is executed with a 16K page sized system (like
some aarch64 SoCs) using 4K sector size (would be the new default), the
test case would fail with output mismatch:
btrfs/246 1s ... - output mismatch (see ~/xfstests-dev/results//btrfs/246.out.bad)
--- tests/btrfs/246.out 2022-11-24 19:53:53.
158470844 +0800
+++ ~/xfstests-dev/results//btrfs/246.out.bad 2023-03-22 13:27:34.
975796048 +0800
@@ -3,3 +3,5 @@
0ca3bfdeda1ef5036bfa5dad078a9f15724e79cf296bd4388cf786bfaf4195d0 SCRATCH_MNT/foobar
sha256sum after mount cycle
0ca3bfdeda1ef5036bfa5dad078a9f15724e79cf296bd4388cf786bfaf4195d0 SCRATCH_MNT/foobar
+no inline extent found
+no compressed extent found
...
(Run 'diff -u ~/xfstests-dev/tests/btrfs/246.out ~/xfstests-dev/results//btrfs/246.out.bad' to see the entire diff)
[CAUSE]
For current btrfs subpage support, there are still some limitations:
- No compressed write if the range is not fully page aligned
- No inline extents creation
Reading inline extents is still supported
Thus we won't create such inlined compressed extent at all.
[FIX]
Just skip the test case if we can not even create a regular inline
extent.
This is done by a new require helper,
_require_btrfs_inline_extent_creation(), which would detect if btrfs can
even create an uncompressed inlined extent.
Reported-by: Hector Martin <marcan@marcan.st>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Zorro Lang <zlang@kernel.org>