From a04171b4d2f1f292a1cade4b1292f067736648c8 Mon Sep 17 00:00:00 2001 From: Andrew Hamilton Date: Fri, 14 Nov 2025 17:40:08 -0600 Subject: [PATCH] tests: Split ZFS ZSTD test into new file Split ZFS ZSTD test into its own test script. Add a check to the new test script to see if the zfs utility installed on the host supports "zstd" compression before running the test and fail the test if not. It seems at least some zfs-fuse binaries do not support zstd compression and the current test will fail in that case. Splitting into a new file will avoid masking other test failures due to missing zstd support. Signed-off-by: Andrew Hamilton Reviewed-by: Daniel Kiper Reviewed-by: Glenn Washburn --- .gitignore | 1 + Makefile.util.def | 6 ++++++ tests/zfs_test.in | 1 - tests/zfs_zstd_test.in | 30 ++++++++++++++++++++++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 tests/zfs_zstd_test.in diff --git a/.gitignore b/.gitignore index 524f2e6d0..67ad2d26d 100644 --- a/.gitignore +++ b/.gitignore @@ -283,3 +283,4 @@ widthspec.bin /xfs_test /xzcompress_test /zfs_test +/zfs_zstd_test diff --git a/Makefile.util.def b/Makefile.util.def index 91720e627..7b91c0b61 100644 --- a/Makefile.util.def +++ b/Makefile.util.def @@ -914,6 +914,12 @@ script = { common = tests/zfs_test.in; }; +script = { + testcase = native; + name = zfs_zstd_test; + common = tests/zfs_zstd_test.in; +}; + script = { testcase = native; name = cpio_test; diff --git a/tests/zfs_test.in b/tests/zfs_test.in index e1cb766a5..cd547b4d2 100644 --- a/tests/zfs_test.in +++ b/tests/zfs_test.in @@ -19,7 +19,6 @@ fi "@builddir@/grub-fs-tester" zfs_lzjb "@builddir@/grub-fs-tester" zfs_gzip "@builddir@/grub-fs-tester" zfs_zle -"@builddir@/grub-fs-tester" zfs_zstd "@builddir@/grub-fs-tester" zfs_raidz3 "@builddir@/grub-fs-tester" zfs_raidz2 "@builddir@/grub-fs-tester" zfs_raidz diff --git a/tests/zfs_zstd_test.in b/tests/zfs_zstd_test.in new file mode 100644 index 000000000..8cafceaaf --- /dev/null +++ b/tests/zfs_zstd_test.in @@ -0,0 +1,30 @@ +#!@BUILD_SHEBANG@ + +set -e + +if [ "x$EUID" = "x" ] ; then + EUID=`id -u` +fi + +if [ "$EUID" != 0 ] ; then + exit 99 +fi + +if ! which zpool >/dev/null 2>&1; then + echo "zpool not installed; cannot test zfs." + exit 99 +fi + +if ! which zfs >/dev/null 2>&1; then + echo "zfs not installed; cannot test zfs." + exit 99 +fi + +# If ZFS ZSTD compression is not supported (as is the case with zfs-fuse +# for example at the time of writing) then fail early the ZSTD compression testing. +if ! zfs get 2>&1 | grep -q "compression.*zstd"; then + echo "zfs zstd compression not supported; cannot test zfs zstd." + exit 99 +fi + +"@builddir@/grub-fs-tester" zfs_zstd