Re: [poky] execute pkg_postinst_ontarget when read-only-rootfs-delayed-postinsts is set for a read only rootfs

Alexander Kanavin <[email protected]>
Newsgroups org.yoctoproject.lists.poky
Message-ID <CANNYZj9bsqRc6+fSmseKeMS1+1M_+-bkr3Q69cH96sJi2HvPJQ@mail.gmail.com>
Looks alright to me. Does it fail without the patch and pass with it?

Alex

On Mon, 8 Jul 2024 at 15:53, Gassner, Tobias.ext via
lists.yoctoproject.org
<[email protected]> wrote:
>
> Hi Alex,
>
> please have a look at the following patch in overlayfs.py:
>
> From da51462765e24b186c55431b53856eebd5f6e8da Mon Sep 17 00:00:00 2001
> From: "Gassner, Tobias.ext" <[email protected]>
> Date: Mon, 8 Jul 2024 15:50:58 +0200
> Subject: [PATCH] added test case to verify that post-installation on target
>  scripts are executed even if using read-only rootfs when
>  read-only-rootfs-delayed-postinsts is set
>
> Signed-off-by: Gassner, Tobias.ext <[email protected]>
> ---
>  meta/lib/oeqa/selftest/cases/overlayfs.py | 41 ++++++++++++++++++++++-
>  1 file changed, 40 insertions(+), 1 deletion(-)
>
> diff --git a/meta/lib/oeqa/selftest/cases/overlayfs.py b/meta/lib/oeqa/selftest/cases/overlayfs.py
> index e31063567b..580fbdcb9c 100644
> --- a/meta/lib/oeqa/selftest/cases/overlayfs.py
> +++ b/meta/lib/oeqa/selftest/cases/overlayfs.py
> @@ -5,7 +5,7 @@
>  #
>
>  from oeqa.selftest.case import OESelftestTestCase
> -from oeqa.utils.commands import bitbake, runqemu
> +from oeqa.utils.commands import bitbake, runqemu, get_bb_vars
>  from oeqa.core.decorator import OETestTag
>  from oeqa.core.decorator.data import skipIfNotMachine
>
> @@ -466,6 +466,45 @@ IMAGE_INSTALL:append = " overlayfs-user"
>              line = getline_qemu(output, "Read-only file system")
>              self.assertTrue(line, msg=output)
>
> +    @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently")
> +    def test_postinst_on_target_for_read_only_rootfs(self):
> +        """
> +        Summary:  The purpose of this test case is to verify that post-installation
> +                  on target scripts are executed even if using read-only rootfs when
> +                  read-only-rootfs-delayed-postinsts is set
> +        Expected: The test files are created on first boot
> +        """
> +
> +        import oe.path
> +
> +        vars = get_bb_vars(("IMAGE_ROOTFS", "sysconfdir"), "core-image-minimal")
> +        sysconfdir = vars["sysconfdir"]
> +        self.assertIsNotNone(sysconfdir)
> +        # Need to use oe.path here as sysconfdir starts with /
> +        targettestdir = os.path.join(sysconfdir, "postinst-test")
> +
> +        config = self.get_working_config()
> +
> +        args = {
> +            'OVERLAYFS_INIT_OPTION': "",
> +            'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': 1,
> +            'OVERLAYFS_ROOTFS_TYPE': "ext4",
> +            'OVERLAYFS_ETC_CREATE_MOUNT_DIRS': 1
> +        }
> +
> +        # read-only-rootfs is already set in get_working_config()
> +        config += 'EXTRA_IMAGE_FEATURES += "read-only-rootfs-delayed-postinsts"\n'
> +        config += 'CORE_IMAGE_EXTRA_INSTALL = "postinst-delayed-b"\n'
> +
> +        self.write_config(config.format(**args))
> +
> +        res = bitbake('core-image-minimal')
> +
> +        with runqemu('core-image-minimal', image_fstype='wic') as qemu:
> +            for filename in ("rootfs", "delayed-a", "delayed-b"):
> +                status, output = qemu.run_serial("test -f %s && echo found" % os.path.join(targettestdir, filename))
> +                self.assertIn("found", output, "%s was not present on boot" % filename)
> +
>      def get_working_config(self):
>          return """
>  # Use systemd as init manager
> --
> 2.45.2
>
>
> Greetings
> -Tobias
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#13416): https://lists.yoctoproject.org/g/poky/message/13416
> Mute This Topic: https://lists.yoctoproject.org/mt/106869018/1686489
> Group Owner: [email protected]
> Unsubscribe: https://lists.yoctoproject.org/g/poky/unsub [[email protected]]
> -=-=-=-=-=-=-=-=-=-=-=-
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.