diff mbox series

[v3,2/3] oe-selftest: overlayfs: Make the test more deterministic

Message ID 20260114185508.380709-3-uvv.mail@gmail.com
State New
Headers show
Series Overlayfs improvements | expand

Commit Message

Vyacheslav Yurkov Jan. 14, 2026, 6:54 p.m. UTC
From: Vyacheslav Yurkov <uvv.mail@gmail.com>

The test orignally was written under assumption that poky distro is
used. When poky-altcft is used for example, then systemd is already set
in DISTRO_FETURES, which the test did not expect.

Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com>
---
 meta/lib/oeqa/selftest/cases/overlayfs.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Paul Barker Jan. 15, 2026, 1:53 p.m. UTC | #1
On Wed, 2026-01-14 at 18:54 +0000, Vyacheslav Yurkov via
lists.openembedded.org wrote:
> From: Vyacheslav Yurkov <uvv.mail@gmail.com>
> 
> The test orignally was written under assumption that poky distro is
> used. When poky-altcft is used for example, then systemd is already set
> in DISTRO_FETURES, which the test did not expect.

Hi,

The commit title here still talks about determinism. The test case was
deterministic though - previously it would always fail if systemd was
already in DISTRO_FEATURES. I think I misunderstood a little last time,
but this still needs renaming.

I also wonder why we're testing this here. Perhaps this can be turned
into a more generic test that REQUIRED_DISTRO_FEATURES behaves as
expected - we can use the overlayfs bbclass as part of that as we know
it sets REQUIRED_DISTRO_FEATURES.

> 
> Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com>
> ---
>  meta/lib/oeqa/selftest/cases/overlayfs.py | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/lib/oeqa/selftest/cases/overlayfs.py b/meta/lib/oeqa/selftest/cases/overlayfs.py
> index 580fbdcb9c..3e55e97927 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, get_bb_vars
> +from oeqa.utils.commands import bitbake, runqemu, get_bb_vars, get_bb_var
>  from oeqa.core.decorator import OETestTag
>  from oeqa.core.decorator.data import skipIfNotMachine
>  
> @@ -46,7 +46,8 @@ inherit overlayfs
>          res = bitbake('core-image-minimal', ignore_status=True)
>          line = getline(res, "overlayfs-user was skipped: missing required distro features")
>          self.assertTrue("overlayfs" in res.output, msg=res.output)
> -        self.assertTrue("systemd" in res.output, msg=res.output)
> +        if not "systemd" in get_bb_var('DISTRO_FEATURES'):
> +            self.assertTrue("systemd" in res.output, msg=res.output)
>          self.assertTrue("ERROR: Required build target 'core-image-minimal' has no buildable providers." in res.output, msg=res.output)
>  
>      def test_not_all_units_installed(self):

Best regards,
diff mbox series

Patch

diff --git a/meta/lib/oeqa/selftest/cases/overlayfs.py b/meta/lib/oeqa/selftest/cases/overlayfs.py
index 580fbdcb9c..3e55e97927 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, get_bb_vars
+from oeqa.utils.commands import bitbake, runqemu, get_bb_vars, get_bb_var
 from oeqa.core.decorator import OETestTag
 from oeqa.core.decorator.data import skipIfNotMachine
 
@@ -46,7 +46,8 @@  inherit overlayfs
         res = bitbake('core-image-minimal', ignore_status=True)
         line = getline(res, "overlayfs-user was skipped: missing required distro features")
         self.assertTrue("overlayfs" in res.output, msg=res.output)
-        self.assertTrue("systemd" in res.output, msg=res.output)
+        if not "systemd" in get_bb_var('DISTRO_FEATURES'):
+            self.assertTrue("systemd" in res.output, msg=res.output)
         self.assertTrue("ERROR: Required build target 'core-image-minimal' has no buildable providers." in res.output, msg=res.output)
 
     def test_not_all_units_installed(self):