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 skip / error-out 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 <adham...@gmail.com>
---
 .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 038253b37..703e8c08d 100644
--- a/Makefile.util.def
+++ b/Makefile.util.def
@@ -911,6 +911,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 0d0a57f7d..58cc25b22 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..fa187b061
--- /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 OpenZFS is not installed (only zfs-fuse for example) then
+# report fail for ZSTD compression testing.
+if ! zfs get 2>&1 | grep -F "compression" | grep -F "zstd"; then
+   echo "zfs zstd compression not supported; cannot test zfs zstd."
+   exit 99
+fi
+
+"@builddir@/grub-fs-tester" zfs_zstd
-- 
2.39.5


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to