From b4151f28d07dd151f9483934b07e503d13988197 Mon Sep 17 00:00:00 2001 From: Julien Olivain Date: Thu, 19 Dec 2024 00:04:57 +0100 Subject: [PATCH] support/testing: new patch runtime test Signed-off-by: Julien Olivain Signed-off-by: Thomas Petazzoni (cherry picked from commit 41bceec4e80264b0de2a0c01a0c107bdec09eff2) Signed-off-by: Peter Korsgaard --- DEVELOPERS | 2 + support/testing/tests/package/test_patch.py | 44 +++++++++++++++++++ .../test_patch/rootfs-overlay/root/file.diff | 8 ++++ .../test_patch/rootfs-overlay/root/file.txt | 3 ++ 4 files changed, 57 insertions(+) create mode 100644 support/testing/tests/package/test_patch.py create mode 100644 support/testing/tests/package/test_patch/rootfs-overlay/root/file.diff create mode 100644 support/testing/tests/package/test_patch/rootfs-overlay/root/file.txt diff --git a/DEVELOPERS b/DEVELOPERS index 4852ef92f2..fd17cc34b7 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1839,6 +1839,8 @@ F: support/testing/tests/package/test_octave.py F: support/testing/tests/package/test_ola.py F: support/testing/tests/package/test_ola/ F: support/testing/tests/package/test_openblas.py +F: support/testing/tests/package/test_patch.py +F: support/testing/tests/package/test_patch/ F: support/testing/tests/package/test_pciutils.py F: support/testing/tests/package/test_perftest.py F: support/testing/tests/package/test_pigz.py diff --git a/support/testing/tests/package/test_patch.py b/support/testing/tests/package/test_patch.py new file mode 100644 index 0000000000..67ecb0497a --- /dev/null +++ b/support/testing/tests/package/test_patch.py @@ -0,0 +1,44 @@ +import os + +import infra.basetest + + +class TestPatch(infra.basetest.BRTest): + rootfs_overlay = \ + infra.filepath("tests/package/test_patch/rootfs-overlay") + config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ + f""" + BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y + BR2_PACKAGE_PATCH=y + BR2_ROOTFS_OVERLAY="{rootfs_overlay}" + 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() + + # Check the program can execute. This also checks that we are + # not using the patch applet from BusyBox (as it does not + # recognize the --version option). + self.assertRunOk("patch --version") + + # We check the test file contains our expected string before + # the patch. + sed_cmd = "sed -n '2p' file.txt" + out, ret = self.emulator.run(sed_cmd) + self.assertEqual(ret, 0) + self.assertEqual(out[0], "Hello World!") + + # We apply our test patch... + self.assertRunOk("patch -p1 < file.diff") + + # We check the test file contains our expected string after + # applying the patch. + out, ret = self.emulator.run(sed_cmd) + self.assertEqual(ret, 0) + self.assertEqual(out[0], "Hello Buildroot!") diff --git a/support/testing/tests/package/test_patch/rootfs-overlay/root/file.diff b/support/testing/tests/package/test_patch/rootfs-overlay/root/file.diff new file mode 100644 index 0000000000..d53324d84b --- /dev/null +++ b/support/testing/tests/package/test_patch/rootfs-overlay/root/file.diff @@ -0,0 +1,8 @@ +diff -Naur a/file.txt b/file.txt +--- a/file.txt 2024-12-18 23:11:50.863359248 +0100 ++++ b/file.txt 2024-12-18 23:12:26.464561146 +0100 +@@ -1,3 +1,3 @@ + This is some context... +-Hello World! ++Hello Buildroot! + ...and this is some more context. diff --git a/support/testing/tests/package/test_patch/rootfs-overlay/root/file.txt b/support/testing/tests/package/test_patch/rootfs-overlay/root/file.txt new file mode 100644 index 0000000000..b506c73d9f --- /dev/null +++ b/support/testing/tests/package/test_patch/rootfs-overlay/root/file.txt @@ -0,0 +1,3 @@ +This is some context... +Hello World! +...and this is some more context.