Hello Jose,

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

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
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#171730): 
https://lists.openembedded.org/g/openembedded-core/message/171730
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