[PATCH] erofs-utils: tests: add compression algorithms check for tests
Jiawei Wang
kyr1ewang at qq.com
Tue Aug 6 19:02:48 AEST 2024
_require_erofs_compression is added to check whether the compression
algorithms are supported in the test environment before starting tests.
Signed-off-by: Jiawei Wang <kyr1ewang at qq.com>
---
tests/common/rc | 16 ++++++++++++++++
tests/erofs/008 | 2 ++
tests/erofs/009 | 2 ++
tests/erofs/010 | 2 ++
tests/erofs/011 | 2 ++
tests/erofs/017 | 2 ++
tests/erofs/018 | 2 ++
tests/erofs/024 | 2 ++
8 files changed, 30 insertions(+)
diff --git a/tests/common/rc b/tests/common/rc
index 0ace9d0..1c3f1d6 100644
--- a/tests/common/rc
+++ b/tests/common/rc
@@ -148,6 +148,22 @@ _require_fscache()
[ -x $CACHEFILESD_PROG ] || _notrun "cachefilesd not built"
}
+_require_erofs_compression()
+{
+ local opt="$*"
+ local random_dir="$tmp/$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)"
+
+ mkdir -p $random_dir/test $random_dir/mnt > /dev/null 2>&1
+ truncate -s 1m $random_dir/test/file > /dev/null 2>&1
+
+ eval "$MKFS_EROFS_PROG $opt $random_dir/tmp.erofs $random_dir/test" >> /dev/null 2>&1
+ _try_mount $random_dir/tmp.erofs $random_dir/mnt || \
+ _notrun "fail to mount filesystem in _require_erofs_compression"
+ _do_unmount $random_dir/mnt
+
+ rm -rf $random_dir
+}
+
# Do the actual mkfs work.
_do_mkfs()
{
diff --git a/tests/erofs/008 b/tests/erofs/008
index aa8ba1d..cd3929c 100755
--- a/tests/erofs/008
+++ b/tests/erofs/008
@@ -27,6 +27,8 @@ echo "QA output created by $seq"
[ -z "$lz4_on" ] && \
_notrun "lz4 compression is disabled, skipped."
+_require_erofs_compression "-zlz4"
+
if [ -z $SCRATCH_DEV ]; then
SCRATCH_DEV=$tmp/erofs_$seq.img
rm -f SCRATCH_DEV
diff --git a/tests/erofs/009 b/tests/erofs/009
index 2ce0e0a..b3ad210 100755
--- a/tests/erofs/009
+++ b/tests/erofs/009
@@ -27,6 +27,8 @@ echo "QA output created by $seq"
[ -z "$lz4hc_on" ] && \
_notrun "lz4hc compression is disabled, skipped."
+_require_erofs_compression "-zlz4hc"
+
if [ -z $SCRATCH_DEV ]; then
SCRATCH_DEV=$tmp/erofs_$seq.img
rm -f SCRATCH_DEV
diff --git a/tests/erofs/010 b/tests/erofs/010
index a4f4180..2782fb6 100755
--- a/tests/erofs/010
+++ b/tests/erofs/010
@@ -27,6 +27,8 @@ echo "QA output created by $seq"
[ -z "$lz4_on" ] && \
_notrun "lz4 compression is disabled, skipped."
+_require_erofs_compression "-zlz4"
+
if [ -z $SCRATCH_DEV ]; then
SCRATCH_DEV=$tmp/erofs_$seq.img
rm -f SCRATCH_DEV
diff --git a/tests/erofs/011 b/tests/erofs/011
index 945998b..bd5d933 100755
--- a/tests/erofs/011
+++ b/tests/erofs/011
@@ -27,6 +27,8 @@ echo "QA output created by $seq"
[ -z "$lz4hc_on" ] && \
_notrun "lz4hc compression is disabled, skipped."
+_require_erofs_compression "-zlz4hc"
+
if [ -z $SCRATCH_DEV ]; then
SCRATCH_DEV=$tmp/erofs_$seq.img
rm -f SCRATCH_DEV
diff --git a/tests/erofs/017 b/tests/erofs/017
index 0ba391f..9e7553c 100755
--- a/tests/erofs/017
+++ b/tests/erofs/017
@@ -27,6 +27,8 @@ echo "QA output created by $seq"
[ -z "$lz4_on" ] && \
_notrun "lz4 compression is disabled, skipped."
+_require_erofs_compression "-zlz4"
+
if [ -z $SCRATCH_DEV ]; then
SCRATCH_DEV=$tmp/erofs_$seq.img
rm -f SCRATCH_DEV
diff --git a/tests/erofs/018 b/tests/erofs/018
index b6de58d..47b8d52 100755
--- a/tests/erofs/018
+++ b/tests/erofs/018
@@ -27,6 +27,8 @@ echo "QA output created by $seq"
[ -z "$lzma_on" ] && \
_notrun "lzma compression is disabled, skipped."
+_require_erofs_compression "-zlzma"
+
if [ -z $SCRATCH_DEV ]; then
SCRATCH_DEV=$tmp/erofs_$seq.img
rm -f SCRATCH_DEV
diff --git a/tests/erofs/024 b/tests/erofs/024
index e2cbeba..f477c04 100755
--- a/tests/erofs/024
+++ b/tests/erofs/024
@@ -27,6 +27,8 @@ echo "QA output created by $seq"
[ -z "$deflate_on" ] && \
_notrun "deflate compression is disabled, skipped."
+_require_erofs_compression "-zdeflate,9"
+
if [ -z $SCRATCH_DEV ]; then
SCRATCH_DEV=$tmp/erofs_$seq.img
rm -f SCRATCH_DEV
--
2.34.1
More information about the Linux-erofs
mailing list