All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Alexander Kanavin <alex.kanavin@gmail.com>
Cc: openembedded-core@lists.openembedded.org,
	Alexander Kanavin <alex@linutronix.de>
Subject: Re: [OE-core] [PATCH 2/2] selftest/sstatetests: add a test for CDN sstate cache
Date: Sat, 21 Oct 2023 00:58:53 +0200	[thread overview]
Message-ID: <20231020225853ada76b3a@mail.local> (raw)
In-Reply-To: <20231020171232.3072396-2-alex@linutronix.de>

Hello Alex,

This doesn't apply cleanly, it seems the context is from another series.

On 20/10/2023 19:12:32+0200, Alexander Kanavin wrote:
> Specifically, the test checks that everything needed for building
> standard oe-core images for x86_64 and arm64 is available from
> the cache (with minor exceptions). Going forward, a complete
> world check could be enabled and additional configurations,
> but that requires improvements to performance of hash equivalence
> server in particular.
> 
> Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> ---
>  meta/lib/oeqa/selftest/cases/sstatetests.py | 47 +++++++++++++++++++++
>  1 file changed, 47 insertions(+)
> 
> diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py b/meta/lib/oeqa/selftest/cases/sstatetests.py
> index 6ef339897bf..e392d6a1a63 100644
> --- a/meta/lib/oeqa/selftest/cases/sstatetests.py
> +++ b/meta/lib/oeqa/selftest/cases/sstatetests.py
> @@ -14,6 +14,7 @@ import re
>  
>  from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer, get_bb_vars
>  from oeqa.selftest.case import OESelftestTestCase
> +from oeqa.core.decorator import OETestTag
>  
>  import oe
>  import bb.siggen
> @@ -879,3 +880,49 @@ expected_sametmp_output, expected_difftmp_output)
>  INHERIT += "base-do-configure-modified"
>  """,
>  expected_sametmp_output, expected_difftmp_output)
> +
> +@OETestTag("yocto-mirrors")
> +class SStateMirrors(SStateBase):
> +    def check_bb_output(self, output, exceptions):
> +        in_tasks = False
> +        missing_objects = []
> +        for l in output.splitlines():
> +            if "The differences between the current build and any cached tasks start at the following tasks" in l:
> +                in_tasks = True
> +                continue
> +            if "Writing task signature files" in l:
> +                in_tasks = False
> +                continue
> +            if in_tasks:
> +                recipe_task = l.split("/")[-1]
> +                recipe, task = recipe_task.split(":")
> +                for e in exceptions:
> +                    if e[0] in recipe and task == e[1]:
> +                        break
> +                else:
> +                    missing_objects.append(recipe_task)
> +        self.assertTrue(len(missing_objects) == 0, "Missing objects in the cache:\n{}".format("\n".join(missing_objects)))
> +
> +
> +    def run_test_cdn_mirror(self, machine, targets, exceptions):
> +        exceptions = exceptions + [[t, "do_deploy_source_date_epoch"] for t in targets.split()]
> +        exceptions = exceptions + [[t, "do_image_qa"] for t in targets.split()]
> +        self.config_sstate(True)
> +        self.append_config("""
> +MACHINE = "{}"
> +BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687"
> +SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH"
> +""".format(machine))
> +        result = bitbake("-S printdiff {}".format(targets))
> +        self.check_bb_output(result.output, exceptions)
> +
> +    def test_cdn_mirror_qemux86_64(self):
> +        # Example:
> +        # exceptions = [ ["packagegroup-core-sdk","do_package"] ]
> +        exceptions = []
> +        self.run_test_cdn_mirror("qemux86-64", "core-image-minimal core-image-full-cmdline core-image-weston core-image-sato-sdk", exceptions)
> +
> +    def test_cdn_mirror_qemuarm64(self):
> +        exceptions = []
> +        # core-image-weston isn't produced for arm64 currently
> +        self.run_test_cdn_mirror("qemuarm64", "core-image-minimal core-image-full-cmdline core-image-sato-sdk", exceptions)
> -- 
> 2.39.2
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#189575): https://lists.openembedded.org/g/openembedded-core/message/189575
> Mute This Topic: https://lists.openembedded.org/mt/102085736/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
> 


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


  reply	other threads:[~2023-10-20 22:59 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-20 17:12 [PATCH 1/2] lib/oe/sstatesig.py: dump locked.sigs.inc only when explicitly asked via -S lockedsigs Alexander Kanavin
2023-10-20 17:12 ` [PATCH 2/2] selftest/sstatetests: add a test for CDN sstate cache Alexander Kanavin
2023-10-20 22:58   ` Alexandre Belloni [this message]
2023-10-21 12:56     ` [OE-core] " Alexander Kanavin
2023-10-21 11:44 ` [OE-core] [PATCH 1/2] lib/oe/sstatesig.py: dump locked.sigs.inc only when explicitly asked via -S lockedsigs Alexandre Belloni
2023-10-21 12:38   ` Richard Purdie

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=20231020225853ada76b3a@mail.local \
    --to=alexandre.belloni@bootlin.com \
    --cc=alex.kanavin@gmail.com \
    --cc=alex@linutronix.de \
    --cc=openembedded-core@lists.openembedded.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.