progs: tests: Avoid multidevice test on 32bit platforms
diff mbox series

Message ID 20200215232819.30280-1-marcos@mpdesouza.com
State New
Headers show
Series
  • progs: tests: Avoid multidevice test on 32bit platforms
Related show

Commit Message

Marcos Paulo de Souza Feb. 15, 2020, 11:28 p.m. UTC
From: Marcos Paulo de Souza <mpdesouza@suse.com>

This test uses truncate utility to create a 6E file but this fails
currently fails for PPC32[1], but it will also fail to other 32bit
platforms, so skip this test in these platforms.

[1]: https://github.com/kdave/btrfs-progs/issues/192

Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
---

 I couldn't find a way to make truncate to use O_LARGEFILE option. I though even
 to write a helper to open the file using this flag and later on call ftruncate,
 but isn't it one more helper to maintain?

 If there are better ideas to avoid skipping this test, please let me know!

 tests/common                                      | 15 +++++++++++++++
 tests/mkfs-tests/018-multidevice-overflow/test.sh |  1 +
 2 files changed, 16 insertions(+)

Comments

Qu Wenruo Feb. 24, 2020, 5:52 a.m. UTC | #1
On 2020/2/16 上午7:28, Marcos Paulo de Souza wrote:
> From: Marcos Paulo de Souza <mpdesouza@suse.com>
> 
> This test uses truncate utility to create a 6E file but this fails
> currently fails for PPC32[1], but it will also fail to other 32bit
> platforms, so skip this test in these platforms.
> 
> [1]: https://github.com/kdave/btrfs-progs/issues/192
> 
> Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
> ---
> 
>  I couldn't find a way to make truncate to use O_LARGEFILE option. I though even
>  to write a helper to open the file using this flag and later on call ftruncate,
>  but isn't it one more helper to maintain?
> 
>  If there are better ideas to avoid skipping this test, please let me know!

What about testing the first 6E file allocation?

If the first failed, then it means the system can't handle, and we skip
the test.

Skipping the whole 32bit systems looks overkilled to me.

Thanks,
Qu

> 
>  tests/common                                      | 15 +++++++++++++++
>  tests/mkfs-tests/018-multidevice-overflow/test.sh |  1 +
>  2 files changed, 16 insertions(+)
> 
> diff --git a/tests/common b/tests/common
> index 605cf72c..9aa69a1a 100644
> --- a/tests/common
> +++ b/tests/common
> @@ -580,6 +580,21 @@ check_min_kernel_version()
>  	return 0
>  }
>  
> +check_32bit_machine()
> +{
> +	local msg
> +
> +	msg="$1"
> +	if [ -z "$msg" ]; then
> +		msg="Skipping test on 32bit machines"
> +	fi
> +
> +	long_bit=$(getconf LONG_BIT)
> +	if [ $long_bit -eq 32 ]; then
> +		_not_run "$msg"
> +	fi
> +}
> +
>  # how many files to create.
>  DATASET_SIZE=50
>  
> diff --git a/tests/mkfs-tests/018-multidevice-overflow/test.sh b/tests/mkfs-tests/018-multidevice-overflow/test.sh
> index 6c2f4dba..8bb3d5a9 100755
> --- a/tests/mkfs-tests/018-multidevice-overflow/test.sh
> +++ b/tests/mkfs-tests/018-multidevice-overflow/test.sh
> @@ -5,6 +5,7 @@ source "$TEST_TOP/common"
>  
>  check_prereq mkfs.btrfs
>  check_prereq btrfs
> +check_32bit_machine "32bit machines can't handle 6E file sizes"
>  
>  setup_root_helper
>  prepare_test_dev
>

Patch
diff mbox series

diff --git a/tests/common b/tests/common
index 605cf72c..9aa69a1a 100644
--- a/tests/common
+++ b/tests/common
@@ -580,6 +580,21 @@  check_min_kernel_version()
 	return 0
 }
 
+check_32bit_machine()
+{
+	local msg
+
+	msg="$1"
+	if [ -z "$msg" ]; then
+		msg="Skipping test on 32bit machines"
+	fi
+
+	long_bit=$(getconf LONG_BIT)
+	if [ $long_bit -eq 32 ]; then
+		_not_run "$msg"
+	fi
+}
+
 # how many files to create.
 DATASET_SIZE=50
 
diff --git a/tests/mkfs-tests/018-multidevice-overflow/test.sh b/tests/mkfs-tests/018-multidevice-overflow/test.sh
index 6c2f4dba..8bb3d5a9 100755
--- a/tests/mkfs-tests/018-multidevice-overflow/test.sh
+++ b/tests/mkfs-tests/018-multidevice-overflow/test.sh
@@ -5,6 +5,7 @@  source "$TEST_TOP/common"
 
 check_prereq mkfs.btrfs
 check_prereq btrfs
+check_32bit_machine "32bit machines can't handle 6E file sizes"
 
 setup_root_helper
 prepare_test_dev