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 <adham...@gmail.com>
---
 .gitignore             |  7 +++++++
 Makefile.util.def      |  6 ++++++
 tests/zfs_test.in      |  1 -
 tests/zfs_zstd_test.in | 30 ++++++++++++++++++++++++++++++
 4 files changed, 43 insertions(+), 1 deletion(-)
 create mode 100644 tests/zfs_zstd_test.in

diff --git a/.gitignore b/.gitignore
index 524f2e6d0..478202378 100644
--- a/.gitignore
+++ b/.gitignore
@@ -62,6 +62,7 @@ widthspec.bin
 /00_header
 /10_*
 /20_linux_xen
+/25_bli
 /30_os-prober
 /30_uefi-firmware
 /40_custom
@@ -74,6 +75,7 @@ widthspec.bin
 /aclocal.m4
 /ahci_test
 /ascii.h
+/asn1_test
 /autom4te.cache/
 /btrfs_test
 /build-aux/
@@ -180,11 +182,13 @@ widthspec.bin
 /grub-script-check.exe
 /grub-set-default
 /grub-shell
+/grub-shell-luks-tester
 /grub-shell-tester
 /grub-sparc64-setup
 /grub-sparc64-setup.exe
 /grub-syslinux2cfg
 /grub-syslinux2cfg.exe
+/grub_cmd_cryptomount
 /grub_cmd_date
 /grub_cmd_echo
 /grub_cmd_regexp
@@ -266,6 +270,7 @@ widthspec.bin
 /pseries_test
 /reiserfs_test
 /romfs_test
+/serial_test
 /squashfs_test
 /stamp-h
 /stamp-h.in
@@ -276,6 +281,7 @@ widthspec.bin
 /test_unset
 /tests/syslinux/ubuntu10.04_grub.cfg
 /texinfo.tex
+/tpm2_key_protector_test
 /udf_test
 /uhci_test
 /util/bash-completion.d/grub
@@ -283,3 +289,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..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 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
+# 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.39.5


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

Reply via email to