From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
Cc: Adam Duskett <aduskett@gmail.com>,
Thierry Bultel <thierry.bultel@linatsea.fr>,
buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH next v5 3/3] support/testing/tests/fs/test_cpio.py: new runtime test
Date: Thu, 18 Aug 2022 23:10:00 +0200 [thread overview]
Message-ID: <20220818211000.GX2854108@scaer> (raw)
In-Reply-To: <20220815111710.1459820-3-arnout@mind.be>
Arnout, Thierry, All,
On 2022-08-15 13:17 +0200, Arnout Vandecappelle (Essensium/Mind) spake thusly:
> From: Thierry Bultel <thierry.bultel@linatsea.fr>
>
> It includes a simple test for the full cpio image, and a test of the
> dracut image. To validate that the dracut image is a subset of the full
> image, 'pv' is added to the image, and the test verifies that pv is not
> part of the image. Note that the real rootfs is not mounted at the
> moment, so pv is never available in the running image.
>
> Systemd and other init systems are currently untested.
>
> Signed-off-by: Thierry Bultel <thierry.bultel@linatsea.fr>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Applied to next, with all the changes we discussed in this thread and
on IRC, thanks.
Regards,
Yann E. MORIN.
> ---
> Changes v4 -> v5 (Arnout)
> - move runtime test to separate patch;
> - add tests for all libcs;
> - remove tar;
> - add pv and test that it's not included in cpio.
> ---
> support/testing/tests/fs/test_cpio.py | 93 +++++++++++++++++++++++++++
> 1 file changed, 93 insertions(+)
> create mode 100644 support/testing/tests/fs/test_cpio.py
>
> diff --git a/support/testing/tests/fs/test_cpio.py b/support/testing/tests/fs/test_cpio.py
> new file mode 100644
> index 0000000000..98620ebc06
> --- /dev/null
> +++ b/support/testing/tests/fs/test_cpio.py
> @@ -0,0 +1,93 @@
> +import os
> +import infra.basetest
> +import subprocess
> +
> +CHECK_FS_CMD = "mount | grep 'rootfs on / type rootfs'"
> +
> +
> +def boot_img(emulator, builddir):
> + img = os.path.join(builddir, "images", "rootfs.cpio")
> + emulator.boot(arch="armv7",
> + kernel="builtin",
> + options=["-initrd", "{}".format(img)])
> + emulator.login()
> + _, exit_code = emulator.run(CHECK_FS_CMD)
> + return exit_code
> +
> +
> +class TestCpioFull(infra.basetest.BRTest):
> + config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \
> + """
> + BR2_INIT_BUSYBOX=y
> + BR2_TARGET_ROOTFS_CPIO=y
> + BR2_TARGET_ROOTFS_CPIO_FULL=y
> + # BR2_TARGET_ROOTFS_TAR is not set
> + """
> +
> + def test_run(self):
> +
> + exit_code = boot_img(self.emulator,
> + self.builddir)
> + self.assertEqual(exit_code, 0)
> +
> +
> +class TestCpioDracutBase(infra.basetest.BRTest):
> + config = \
> + """
> + BR2_arm=y
> + BR2_TOOLCHAIN_EXTERNAL=y
> + BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
> + BR2_INIT_BUSYBOX=y
> + BR2_PACKAGE_PV=y
> + BR2_TARGET_ROOTFS_CPIO=y
> + BR2_TARGET_ROOTFS_CPIO_DRACUT=y
> + # BR2_TARGET_ROOTFS_TAR is not set
> + """
> +
> + def check_dracut(self):
> + out = subprocess.check_output(["cpio", "--list"],
> + stdin=open(os.path.join(self.builddir, "images/rootfs.cpio")),
> + stderr=open(os.devnull, "w"),
> + cwd=self.builddir,
> + env={"LANG": "C"},
> + universal_newlines=True)
> + # pv should *not* be included in cpio image
> + self.assertEqual(out.find("bin/pv"), -1)
> +
> + exit_code = boot_img(self.emulator,
> + self.builddir)
> + self.assertEqual(exit_code, 0)
> +
> + # No pivot_root is done, so pv shouldn't be there
> + _, exit_code = self.emulator.run("ls -l /usr/bin/pv")
> + self.assertNotEqual(exit_code, 0)
> +
> +
> +class TestCpioDracutUclibc(TestCpioDracutBase):
> + config = TestCpioDracutBase.config + \
> + """
> + BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_UCLIBC_STABLE=y
> + """
> +
> + def test_run(self):
> + self.check_dracut()
> +
> +
> +class TestCpioDracutGlibc(TestCpioDracutBase):
> + config = TestCpioDracutBase.config + \
> + """
> + BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_STABLE=y
> + """
> +
> + def test_run(self):
> + self.check_dracut()
> +
> +
> +class TestCpioDracutMusl(TestCpioDracutBase):
> + config = TestCpioDracutBase.config + \
> + """
> + BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_MUSL_STABLE=y
> + """
> +
> + def test_run(self):
> + self.check_dracut()
> --
> 2.37.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2022-08-18 21:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-15 11:17 [Buildroot] [PATCH next v5 1/3] package/dracut: new host package Arnout Vandecappelle (Essensium/Mind)
2022-08-15 11:17 ` [Buildroot] [PATCH next v5 2/3] fs/cpio: new option to use dracut tool Arnout Vandecappelle (Essensium/Mind)
2022-08-15 13:05 ` Yann E. MORIN
2022-08-15 16:37 ` Arnout Vandecappelle
2022-08-18 21:09 ` Yann E. MORIN
2022-08-15 11:17 ` [Buildroot] [PATCH next v5 3/3] support/testing/tests/fs/test_cpio.py: new runtime test Arnout Vandecappelle (Essensium/Mind)
2022-08-18 21:10 ` Yann E. MORIN [this message]
2022-08-15 12:36 ` [Buildroot] [PATCH next v5 1/3] package/dracut: new host package Yann E. MORIN
2022-08-15 16:27 ` Arnout Vandecappelle via buildroot
2022-08-18 21:09 ` Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220818211000.GX2854108@scaer \
--to=yann.morin.1998@free.fr \
--cc=aduskett@gmail.com \
--cc=arnout@mind.be \
--cc=buildroot@buildroot.org \
--cc=thierry.bultel@linatsea.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox