support/testing/tests/package/test_pixz.py: use test_compressor_base

The test_pixz.py test was initially written as a standalone test.

The commit cf132a13
"support/testing/tests/package/test_compressor_base.py: new helper class"
introduced a helper class for testing data compression programs.

This commit rewrites this test to use this helper class.

The test coverage is mostly the same as before the rewrite. Notable
differences are:
- the test file is slightly smaller for faster testing,
- its content layout also slightly different.

Cc: Vincent Stehlé <vincent.stehle@laposte.net>
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Julien Olivain 2023-07-15 10:51:30 +02:00 committed by Thomas Petazzoni
parent 3c0d12221e
commit da0f92fdfc

View File

@ -1,40 +1,18 @@
import os
import infra.basetest
from tests.package.test_compressor_base import TestCompressorBase
class TestPixz(infra.basetest.BRTest):
config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
class TestPixz(TestCompressorBase):
__test__ = True
config = TestCompressorBase.config + \
"""
BR2_PACKAGE_PIXZ=y
BR2_TARGET_ROOTFS_CPIO=y
# BR2_TARGET_ROOTFS_TAR is not set
"""
compress_cmd = "pixz -p3"
decompress_cmd = "pixz -d"
compressed_file_ext = ".xz"
def test_run(self):
cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio")
self.emulator.boot(arch="armv5",
kernel="builtin",
options=["-initrd", cpio_file])
self.emulator.login()
# Prepare input file with random data and zeroes.
# We keep the size small (4 MB) for the sake of test time.
cmd = "dd if=/dev/urandom of=orig bs=1M count=2 && " \
"dd if=/dev/zero of=orig bs=1M count=2 seek=2"
self.assertRunOk(cmd)
# Compress.
# We ask for 3 threads for good measure but with a very small file on a
# uniprocessor qemu this is only a light validation.
cmd = "cp -v orig compressed && pixz -p 3 compressed"
self.assertRunOk(cmd, timeout=60)
# Uncompress.
cmd = "cp -v compressed.xz uncompressed.xz && pixz -d uncompressed.xz"
self.assertRunOk(cmd)
# Verify.
# The ls is there for debugging.
cmd = "ls -l && cmp orig uncompressed"
self.assertRunOk(cmd)
def check_integrity_test(self):
# Do nothing for the integrity test because "pixz" does not
# implement this feature. The "-t" option has other functions:
# https://github.com/vasi/pixz/blob/v1.0.7/src/pixz.1.asciidoc#options
pass