diff --git a/DEVELOPERS b/DEVELOPERS index 0afd697b6c..9a740d650d 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -2917,6 +2917,7 @@ F: configs/uevm5432_defconfig F: package/i7z/ F: package/msr-tools/ F: package/pixz/ +F: support/testing/tests/package/test_pixz.py N: Vinicius Tinti F: package/python-thrift/ diff --git a/support/testing/tests/package/test_pixz.py b/support/testing/tests/package/test_pixz.py new file mode 100644 index 0000000000..eeff10eaa1 --- /dev/null +++ b/support/testing/tests/package/test_pixz.py @@ -0,0 +1,40 @@ +import os + +import infra.basetest + + +class TestPixz(infra.basetest.BRTest): + config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ + """ + BR2_PACKAGE_PIXZ=y + BR2_TARGET_ROOTFS_CPIO=y + # BR2_TARGET_ROOTFS_TAR is not set + """ + + 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)