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 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 <[email protected]>
Reviewed-by: Daniel Kiper <[email protected]>
---
 .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..1b8a20212
--- /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 77
+fi
+
+if ! which zfs >/dev/null 2>&1; then
+   echo "zfs not installed; cannot test zfs."
+   exit 77
+fi
+
+# If OpenZFS is not installed (only zfs-fuse for example) then
+# skip 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 77
+fi
+
+"@builddir@/grub-fs-tester" zfs_zstd
-- 
2.43.0


_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to