Hi Alexandre,

Alexandre Belloni <alexandre.bell...@bootlin.com> escreveu no dia sexta,
14/10/2022 à(s) 10:38:

> Hello Jose,
>
> This fails on the AB:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/4236/steps/15/logs/stdio


Oh damn, so it seems that parsing the locked-sigs.inc file is not a good
aproucth.

Does anyone know which is the best method to get the signature of the tasks
in selftest?
I need to investigate further.

Jose


>
> 2022-10-13 21:04:28,387 - oe-selftest - INFO -
> archiver.Archiver.test_archiver_multiconfig_shared_unpack_and_patch
> (subunit.RemotedTestCase)
> 2022-10-13 21:04:28,388 - oe-selftest - INFO -  ... FAIL
> 2022-10-13 21:04:28,388 - oe-selftest - INFO - 0: 15/57 149/504 (49.12s)
> (archiver.Archiver.test_archiver_multiconfig_shared_unpack_and_patch)
> 2022-10-13 21:04:28,388 - oe-selftest - INFO -
> testtools.testresult.real._StringException: Traceback (most recent call
> last):
>   File
> "/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/lib/oeqa/selftest/cases/archiver.py",
> line 151, in test_archiver_multiconfig_shared_unpack_and_patch
>     self.assertFalse(len(uniq_sigs) - 1, 'The task "%s" of the recipe "%s"
> has diferent signatures for each machine in multiconfig' % (task, pn))
>   File "/usr/lib64/python3.6/unittest/case.py", line 693, in assertFalse
>     raise self.failureException(msg)
> AssertionError: -1 is not false : The task "do_unpack_and_patch" of the
> recipe "gcc-source-12.2.0" has diferent signatures for each machine in
> multiconfig
>
> On 13/10/2022 19:25:29+0000, Jose Quaresma wrote:
> > Test that the shared recipes in original mode with diff enabled works in
> multiconfig,
> > otherwise it will not build when using the same TMP dir.
> >
> > The test can be run with:
> >
> > oe-selftest -r
> archiver.Archiver.test_archiver_multiconfig_shared_unpack_and_patch
> >
> > | oe-selftest - INFO - test_archiver_multiconfig_shared_unpack_and_patch
> (archiver.Archiver)
> > | oe-selftest - INFO -  ... ok
> > | oe-selftest - INFO -
> ----------------------------------------------------------------------
> > | oe-selftest - INFO - Ran 1 test in 199.710s
> > | oe-selftest - INFO - OK
> > | oe-selftest - INFO - RESULTS:
> > | oe-selftest - INFO - RESULTS -
> archiver.Archiver.test_archiver_multiconfig_shared_unpack_and_patch: PASSED
> (192.24s)
> > | oe-selftest - INFO - SUMMARY:
> > | oe-selftest - INFO - oe-selftest () - Ran 1 test in 199.711s
> > | oe-selftest - INFO - oe-selftest - OK - All required tests passed
> (successes=1, skipped=0, failures=0, errors=0)
> >
> > Signed-off-by: Jose Quaresma <jose.quare...@foundries.io>
> > ---
> >  meta/lib/oeqa/selftest/cases/archiver.py | 29 ++++++++++++++++++++++++
> >  1 file changed, 29 insertions(+)
> >
> > diff --git a/meta/lib/oeqa/selftest/cases/archiver.py
> b/meta/lib/oeqa/selftest/cases/archiver.py
> > index ffdea832be..1d4985dacf 100644
> > --- a/meta/lib/oeqa/selftest/cases/archiver.py
> > +++ b/meta/lib/oeqa/selftest/cases/archiver.py
> > @@ -6,6 +6,7 @@
> >
> >  import os
> >  import glob
> > +import re
> >  from oeqa.utils.commands import bitbake, get_bb_vars
> >  from oeqa.selftest.case import OESelftestTestCase
> >
> > @@ -119,7 +120,35 @@ class Archiver(OESelftestTestCase):
> >          excluded_present = len(glob.glob(src_path_target + '/%s-*/*' %
> target_recipes[1]))
> >          self.assertFalse(excluded_present, 'Recipe %s was not
> excluded.' % target_recipes[1])
> >
> > +    def test_archiver_multiconfig_shared_unpack_and_patch(self):
> > +        """
> > +        Test that shared recipes in original mode with diff enabled
> works in multiconfig,
> > +        otherwise it will not build when using the same TMP dir.
> > +        """
> > +
> > +        features = 'BBMULTICONFIG = "mc1 mc2"\n'
> > +        features += 'INHERIT += "archiver"\n'
> > +        features += 'ARCHIVER_MODE[src] = "original"\n'
> > +        features += 'ARCHIVER_MODE[diff] = "1"\n'
> > +        self.write_config(features)
> > +
> > +        # We can use any machine in multiconfig as long as they are
> different
> > +        self.write_config('MACHINE = "qemuarm"\n', 'mc1')
> > +        self.write_config('MACHINE = "qemux86"\n', 'mc2')
> > +
> > +        task = 'do_unpack_and_patch'
> > +        # Use gcc-source as it is a shared recipe (appends the pv to
> the pn)
> > +        pn = 'gcc-source-%s' % get_bb_vars(['PV'], 'gcc')['PV']
> > +
> > +        # Generate the tasks signatures
> > +        bitbake('mc:mc1:%s mc:mc2:%s --runonly=%s
> --dump-signatures=none' % (pn, pn, task))
> >
> > +        # Check the tasks signatures
> > +        # To be machine agnostic the tasks needs to generate the same
> signature for each machine
> > +        locked_sigs = open("%s/locked-sigs.inc" % self.builddir).read()
> > +        task_sigs = re.findall(r"%s:%s:.*" % (pn, task), locked_sigs)
> > +        uniq_sigs = set(task_sigs)
> > +        self.assertFalse(len(uniq_sigs) - 1, 'The task "%s" of the
> recipe "%s" has diferent signatures for each machine in multiconfig' %
> (task, pn))
> >
> >      def test_archiver_srpm_mode(self):
> >          """
> > --
> > 2.34.1
> >
>
> >
> > 
> >
>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>


-- 
Best regards,

José Quaresma
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#171731): 
https://lists.openembedded.org/g/openembedded-core/message/171731
Mute This Topic: https://lists.openembedded.org/mt/94312275/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to