From patchwork Thu Nov 13 12:27:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marko, Peter" X-Patchwork-Id: 74400 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 06E7FCD5BDE for ; Thu, 13 Nov 2025 12:28:28 +0000 (UTC) Received: from mta-65-227.siemens.flowmailer.net (mta-65-227.siemens.flowmailer.net [185.136.65.227]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.22629.1763036898307765005 for ; Thu, 13 Nov 2025 04:28:20 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm1 header.b=mmgBp2fC; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.227, mailfrom: fm-256628-20251113122819a059273aea000207f2-offs72@rts-flowmailer.siemens.com) Received: by mta-65-227.siemens.flowmailer.net with ESMTPSA id 20251113122819a059273aea000207f2 for ; Thu, 13 Nov 2025 13:28:19 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=XGF+4fgwl1p9YDhxnqy18yrDYXLHYBkMYSuNmB1Q9gY=; b=mmgBp2fCIlA8Kf9jVscFCYcbPnYglo+/ZXunh2YWH5hdCrmKTspv4VEZ3C6kAy5eGd07px PW1VFt04r03GPgv+VbCJvdFLqIkxcMVR09zxVveiE2cvgaXrPonSq+1L4bxMcz4Gqlpjbrvv 7T+zH/ex9WZxQrzfJZ0UUo81lKL9fGDXXIOhHIqeEEamDq+kGIk082Xzangyn4Mm6pI6pVzQ fhac48WSeke4Wp2rAGtR2VvR6yNglUJdQom9Oh8awBZLq5UxBB8ka+cYm5yuLD6ynkO0GRS6 FGjnaOcRRwwVkUjK2dkOSO8l6G9LRecNBP6lP7gqPmlfrmHAPS0zVCQw==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: Ross Burton , Richard Purdie , Peter Marko Subject: [OE-core][scarthgap][PATCH 1/9] testsdk: allow user to specify which tests to run Date: Thu, 13 Nov 2025 13:27:58 +0100 Message-Id: <20251113122806.16769-2-peter.marko@siemens.com> In-Reply-To: <20251113122806.16769-1-peter.marko@siemens.com> References: <20251113122806.16769-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Nov 2025 12:28:28 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226239 From: Ross Burton Following the usage of TEST_SUITES in testimage, add TESTSDK_SUITES to specify the list of tests to execute. By default the variable is empty, which means to run all discovered tests. This makes it easier to work on a single test without having to run all of the tests. (From OE-Core rev: 28d437c52c77889b2ede0fc2f2d6777c5b0a553d) Signed-off-by: Ross Burton Signed-off-by: Richard Purdie Signed-off-by: Peter Marko --- meta/classes-recipe/testsdk.bbclass | 3 +++ meta/lib/oeqa/sdk/testsdk.py | 3 ++- meta/lib/oeqa/sdkext/testsdk.py | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/meta/classes-recipe/testsdk.bbclass b/meta/classes-recipe/testsdk.bbclass index fd82e6ef41d..59d2834c992 100644 --- a/meta/classes-recipe/testsdk.bbclass +++ b/meta/classes-recipe/testsdk.bbclass @@ -14,6 +14,9 @@ # # where "" is an image like core-image-sato. +# List of test modules to run, or run all that can be found if unset +TESTSDK_SUITES ?= "" + TESTSDK_CLASS_NAME ?= "oeqa.sdk.testsdk.TestSDK" TESTSDKEXT_CLASS_NAME ?= "oeqa.sdkext.testsdk.TestSDKExt" diff --git a/meta/lib/oeqa/sdk/testsdk.py b/meta/lib/oeqa/sdk/testsdk.py index 518b09febb6..52b702b6a28 100644 --- a/meta/lib/oeqa/sdk/testsdk.py +++ b/meta/lib/oeqa/sdk/testsdk.py @@ -114,7 +114,8 @@ class TestSDK(TestSDKBase): host_pkg_manifest=host_pkg_manifest, **context_args) try: - tc.loadTests(self.context_executor_class.default_cases) + modules = (d.getVar("TESTSDK_SUITES") or "").split() + tc.loadTests(self.context_executor_class.default_cases, modules) except Exception as e: import traceback bb.fatal("Loading tests failed:\n%s" % traceback.format_exc()) diff --git a/meta/lib/oeqa/sdkext/testsdk.py b/meta/lib/oeqa/sdkext/testsdk.py index 9d5a99d900f..6dc23065a4a 100644 --- a/meta/lib/oeqa/sdkext/testsdk.py +++ b/meta/lib/oeqa/sdkext/testsdk.py @@ -82,7 +82,8 @@ class TestSDKExt(TestSDKBase): host_pkg_manifest=host_pkg_manifest) try: - tc.loadTests(OESDKExtTestContextExecutor.default_cases) + modules = (d.getVar("TESTSDK_SUITES") or "").split() + tc.loadTests(OESDKExtTestContextExecutor.default_cases, modules) except Exception as e: import traceback bb.fatal("Loading tests failed:\n%s" % traceback.format_exc()) From patchwork Thu Nov 13 12:27:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marko, Peter" X-Patchwork-Id: 74402 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E4780CD6E47 for ; Thu, 13 Nov 2025 12:28:37 +0000 (UTC) Received: from mta-65-226.siemens.flowmailer.net (mta-65-226.siemens.flowmailer.net [185.136.65.226]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.22635.1763036907821235098 for ; Thu, 13 Nov 2025 04:28:28 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm1 header.b=T1qqOjmN; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.226, mailfrom: fm-256628-20251113122825197ef56ff6000207f2-8ajur5@rts-flowmailer.siemens.com) Received: by mta-65-226.siemens.flowmailer.net with ESMTPSA id 20251113122825197ef56ff6000207f2 for ; Thu, 13 Nov 2025 13:28:25 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=GXzMwR8Px3QJQUaI7NAJHl3RJA2wI7C0TCdbTlI7XcI=; b=T1qqOjmNeux1ravtPLWjwUY7pqvCgbyjuq9ywdV8Qw6EeZDCEFfxv2Co+ZKnZY8flfXubl qhNBYub33n7JAFYm0z+gUb9Iw6IrGSsSE4bvW2hW/t6WHEBIh3s2MrWVGIxcJxZpZNEHrVQ0 egTnVx95HAQeWLSh+sc7ZIP5tFUx03RlGxdcXS5iBnmcfX3hZTd29NhuHZN3NEwtl0GyLTtN G+3lkqTLjCNK00W/u95jr0GB9D1zjj9P8hKRBfl/ZMOAfpkZvl7Ki6ZRIC0EwTj9cTH2CWxs O885YktChIhDBDWY9TJUcTUkMAIcTevW3As57kj6v32NLQNgn8zQp/8A==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: Ross Burton , Richard Purdie , Peter Marko Subject: [OE-core][scarthgap][PATCH 2/9] oe/sdk: fix empty SDK manifests Date: Thu, 13 Nov 2025 13:27:59 +0100 Message-Id: <20251113122806.16769-3-peter.marko@siemens.com> In-Reply-To: <20251113122806.16769-1-peter.marko@siemens.com> References: <20251113122806.16769-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Nov 2025 12:28:37 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226240 From: Ross Burton The SDK manifests are generated by listing the sstate was that used, but it hardcodes that the sstate data filenames end in .tgz. This has not been the case since sstate switched to Zstd[1] in 2021, which meant that all of the tests which checked for packages existing were being skipped as the manifests were empty. For example, see a representative core-image-sato eSDK test run[2]: RESULTS - cmake.CMakeTest.test_assimp: SKIPPED (0.00s) RESULTS - gtk3.GTK3Test.test_galculator: SKIPPED (0.00s) RESULTS - kmod.KernelModuleTest.test_cryptodev: SKIPPED (0.00s) RESULTS - maturin.MaturinDevelopTest.test_maturin_develop: SKIPPED (0.00s) RESULTS - maturin.MaturinTest.test_maturin_list_python: SKIPPED (0.00s) RESULTS - meson.MesonTest.test_epoxy: SKIPPED (0.00s) RESULTS - perl.PerlTest.test_perl: SKIPPED (0.00s) RESULTS - python.Python3Test.test_python3: SKIPPED (0.00s) All of those tests should have been ran. Solve this by generalising the filename check so that it doesn't care what specfic compression algorithm is used. [1] oe-core 0710e98f40e ("sstate: Switch to ZStandard compressor support") [2] https://autobuilder.yoctoproject.org/valkyrie/#/builders/16/builds/1517/steps/15/logs/stdio Signed-off-by: Ross Burton Signed-off-by: Richard Purdie Signed-off-by: Peter Marko --- meta/lib/oe/sdk.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py index 3dc3672210b..588c74bb443 100644 --- a/meta/lib/oe/sdk.py +++ b/meta/lib/oe/sdk.py @@ -148,7 +148,8 @@ def get_extra_sdkinfo(sstate_dir): extra_info['filesizes'] = {} for root, _, files in os.walk(sstate_dir): for fn in files: - if fn.endswith('.tgz'): + # Note that this makes an assumption about the sstate filenames + if '.tar.' in fn and not fn.endswith('.siginfo'): fsize = int(math.ceil(float(os.path.getsize(os.path.join(root, fn))) / 1024)) task = fn.rsplit(':',1)[1].split('_',1)[1].split(',')[0] origtotal = extra_info['tasksizes'].get(task, 0) From patchwork Thu Nov 13 12:28:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marko, Peter" X-Patchwork-Id: 74401 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id DE78BCD6E45 for ; Thu, 13 Nov 2025 12:28:37 +0000 (UTC) Received: from mta-64-228.siemens.flowmailer.net (mta-64-228.siemens.flowmailer.net [185.136.64.228]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.22635.1763036913409039357 for ; Thu, 13 Nov 2025 04:28:33 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm1 header.b=hBxWcYBQ; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.64.228, mailfrom: fm-256628-20251113122831dafa08459000020740-rjjaoa@rts-flowmailer.siemens.com) Received: by mta-64-228.siemens.flowmailer.net with ESMTPSA id 20251113122831dafa08459000020740 for ; Thu, 13 Nov 2025 13:28:31 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=VMtJ3Aun6qNvjNjz14YZgr7VmVGmkaHa6QsXFSoKmoQ=; b=hBxWcYBQvdEHBgknbIn0ZQPFvcFmuuZ6NGg72i4hgk9up/QC3fcT+n5oRNd2LO5taZn3/U iSPmOFqYVnuXl08D7NQ7d4XOs9Ko7+r+QJmJS5M/3mEdH1swm9WEzVVnbwXEiHr2X6gk02aX EsDZHa2I8U55KoA6P7wxBxTZKeTRm6kqJBI1VqR1Rv9idU927Xh92uopw2qwj/h8Oz+SLSxU ASzRQBPvnGsU6zDRAE/gC933DqHQ63TMDcrUTk/cDj5BLT4rjS4u7MzX7Anl6+xBSZV/mWB3 rtPH86GJd/I5CjVE3BPUa2GHeaVSR+BNJEOyHBlH0eB2kmT9KJQpZkMg==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: Ross Burton , Richard Purdie , Peter Marko Subject: [OE-core][scarthgap][PATCH 3/9] lib/oe/go: document map_arch, and raise an error on unknown architecture Date: Thu, 13 Nov 2025 13:28:00 +0100 Message-Id: <20251113122806.16769-4-peter.marko@siemens.com> In-Reply-To: <20251113122806.16769-1-peter.marko@siemens.com> References: <20251113122806.16769-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Nov 2025 12:28:37 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226241 From: Ross Burton Add a comment explaining what this function does and where the values come from. If the architecture isn't know, instead of returning an empty string which could fail mysteriously, raise a KeyError so it fails quickly. (From OE-Core rev: 025414c16319b068df1cd757ad9a3c987a6b871d) Signed-off-by: Ross Burton Signed-off-by: Richard Purdie Signed-off-by: Peter Marko --- meta/lib/oe/go.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/meta/lib/oe/go.py b/meta/lib/oe/go.py index dfd957d157a..4559dc63b28 100644 --- a/meta/lib/oe/go.py +++ b/meta/lib/oe/go.py @@ -7,6 +7,10 @@ import re def map_arch(a): + """ + Map our architecture names to Go's GOARCH names. + See https://github.com/golang/go/blob/master/src/internal/syslist/syslist.go for the complete list. + """ if re.match('i.86', a): return '386' elif a == 'x86_64': @@ -31,4 +35,4 @@ def map_arch(a): return 'riscv64' elif a == 'loongarch64': return 'loong64' - return '' + raise KeyError(f"Cannot map architecture {a}") From patchwork Thu Nov 13 12:28:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marko, Peter" X-Patchwork-Id: 74404 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E4EBECD6E47 for ; Thu, 13 Nov 2025 12:28:47 +0000 (UTC) Received: from mta-65-228.siemens.flowmailer.net (mta-65-228.siemens.flowmailer.net [185.136.65.228]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.22638.1763036919282367385 for ; Thu, 13 Nov 2025 04:28:39 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm1 header.b=XRmdnmch; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.228, mailfrom: fm-256628-20251113122836790a1d49bf00020746-kcc_ob@rts-flowmailer.siemens.com) Received: by mta-65-228.siemens.flowmailer.net with ESMTPSA id 20251113122836790a1d49bf00020746 for ; Thu, 13 Nov 2025 13:28:36 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=zM+NXcBLf9X4QSFiS+C7bqtKrr3j4bUgFT3UHmlWyhk=; b=XRmdnmchgEmfSWA9NmXW4QiljmOUkMj8w517+x/W23SfROlC9aTee5JQqq/bMWefUp6dZV uWJEOB0JCzSZVelv9BiaIJ/UVQtVfQ4zW4BSrULIWkLr/SAXqTYTJGj5Vb2Dqlof1wCay80c e5M6AqP3oK7uCnM3ERPTZyaconh4j6OjKQYCIHKBtsVtxFlMMUNme55dHJ3K7KbCfvOqIt/R 9C3shboKJJv6e3tbptjU9VV4faeW1X4tOnZdLMzz1HheBAn1N30V09rgEH6pHOUPH7rwbXv5 3EoDZVgawwuOTuaRuHS64SAx0PROgiDzvXRZomko4knDM28fxWs8G0UQ==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin , Mathieu Dubois-Briand , Richard Purdie , Peter Marko Subject: [OE-core][scarthgap][PATCH 4/9] goarch.bbclass: do not leak TUNE_FEATURES into crosssdk task signatures Date: Thu, 13 Nov 2025 13:28:01 +0100 Message-Id: <20251113122806.16769-5-peter.marko@siemens.com> In-Reply-To: <20251113122806.16769-1-peter.marko@siemens.com> References: <20251113122806.16769-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Nov 2025 12:28:47 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226242 From: Alexander Kanavin The default assignments look like this: TARGET_GO386 = "${@go_map_386(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'), d)}" TUNE_FEATURES is a target-specific variable, and so should be used only for target builds. The change is similar to what is already done for native packages. (From OE-Core rev: cfff8e968257c44880caa3605e158764ed5c6a2a) Signed-off-by: Alexander Kanavin Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie Signed-off-by: Peter Marko --- meta/classes-recipe/goarch.bbclass | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta/classes-recipe/goarch.bbclass b/meta/classes-recipe/goarch.bbclass index 1ebe03864fe..0e9ef3a6ec6 100644 --- a/meta/classes-recipe/goarch.bbclass +++ b/meta/classes-recipe/goarch.bbclass @@ -24,6 +24,9 @@ TARGET_GOMIPS = "${@go_map_mips(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES TARGET_GOARM:class-native = "7" TARGET_GO386:class-native = "sse2" TARGET_GOMIPS:class-native = "hardfloat" +TARGET_GOARM:class-crosssdk = "7" +TARGET_GO386:class-crosssdk = "sse2" +TARGET_GOMIPS:class-crosssdk = "hardfloat" TARGET_GOTUPLE = "${TARGET_GOOS}_${TARGET_GOARCH}" GO_BUILD_BINDIR = "${@['bin/${HOST_GOTUPLE}','bin'][d.getVar('BUILD_GOTUPLE') == d.getVar('HOST_GOTUPLE')]}" From patchwork Thu Nov 13 12:28:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marko, Peter" X-Patchwork-Id: 74403 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E4F1BCD6E48 for ; Thu, 13 Nov 2025 12:28:47 +0000 (UTC) Received: from mta-65-227.siemens.flowmailer.net (mta-65-227.siemens.flowmailer.net [185.136.65.227]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.22640.1763036924164861703 for ; Thu, 13 Nov 2025 04:28:44 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm1 header.b=GHmHr/GM; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.227, mailfrom: fm-256628-20251113122842d41ae928a5000207e1-tiunvs@rts-flowmailer.siemens.com) Received: by mta-65-227.siemens.flowmailer.net with ESMTPSA id 20251113122842d41ae928a5000207e1 for ; Thu, 13 Nov 2025 13:28:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=Z1y9XxPEn7BECRD5mWb9LJjaorYNkXpcVHy3UbYeQ6k=; b=GHmHr/GMkcAaeOE8jG8cNdwX/2Pf7Ac2yXl37C7TBeqFY/kE4EXz34418mtgMXjyS5OcIz KgeuHRBoy55Nrjaq7YxMQvoLjl0VuyHgAYQfwfAr6xZgkF6y7jYLBqinBq/4X9Kl/80pW6OM oOzDvV/8p6tMYI5uGqSoi/IAtJtqLm8xte0/53LCtaMJuMy6P7g+mAMUkvKlmhBT1qMidfBv XC3FOok90VXtNAlw2gKTc2mJulllq/bbgl7gXxx/m1/ZWgSLduv3r2eo1Gpn8hdot6NcJsvq En6+7Ly8xtGPvmZRVjbuhx1w827zpQ2Q2bgg/oqzUWi6AzS3b8NOMpzw==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: Osama Abdelkader , Mathieu Dubois-Briand , Richard Purdie , Peter Marko Subject: [OE-core][scarthgap][PATCH 5/9] go: add sdk test Date: Thu, 13 Nov 2025 13:28:02 +0100 Message-Id: <20251113122806.16769-6-peter.marko@siemens.com> In-Reply-To: <20251113122806.16769-1-peter.marko@siemens.com> References: <20251113122806.16769-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Nov 2025 12:28:47 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226243 From: Osama Abdelkader - Add meta/lib/oeqa/sdk/cases/go.py with GoCompileTest and GoHostCompileTest classes - Test validates Go cross-compilation toolchain functionality - Includes native compilation, cross-compilation, and Go module support - Uses dynamic architecture detection for portability (From OE-Core rev: 17015f692a6bf3697a89db51bbc4673a5efa1497) Signed-off-by: Osama Abdelkader Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie Signed-off-by: Peter Marko --- meta/lib/oeqa/sdk/cases/go.py | 128 ++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 meta/lib/oeqa/sdk/cases/go.py diff --git a/meta/lib/oeqa/sdk/cases/go.py b/meta/lib/oeqa/sdk/cases/go.py new file mode 100644 index 00000000000..9c15124f6ad --- /dev/null +++ b/meta/lib/oeqa/sdk/cases/go.py @@ -0,0 +1,128 @@ +# +# Copyright OpenEmbedded Contributors +# +# SPDX-License-Identifier: MIT +# + +import os +import shutil +import unittest + +from oeqa.core.utils.path import remove_safe +from oeqa.sdk.case import OESDKTestCase + +from oeqa.utils.subprocesstweak import errors_have_output +errors_have_output() + +class GoCompileTest(OESDKTestCase): + td_vars = ['MACHINE', 'TARGET_ARCH'] + + @classmethod + def setUpClass(self): + # Copy test.go file to SDK directory (same as GCC test uses files_dir) + shutil.copyfile(os.path.join(self.tc.files_dir, 'test.go'), + os.path.join(self.tc.sdk_dir, 'test.go')) + + def setUp(self): + target_arch = self.td.get("TARGET_ARCH") + # Check for go-cross-canadian package (uses target architecture) + if not self.tc.hasHostPackage("go-cross-canadian-%s" % target_arch): + raise unittest.SkipTest("GoCompileTest class: SDK doesn't contain a Go cross-canadian toolchain") + + # Additional runtime check for go command availability + try: + self._run('which go') + except Exception as e: + raise unittest.SkipTest("GoCompileTest class: go command not available: %s" % str(e)) + + def test_go_build(self): + """Test Go build command (native compilation)""" + self._run('cd %s; go build -o test test.go' % self.tc.sdk_dir) + + def test_go_module(self): + """Test Go module creation and building""" + # Create a simple Go module + self._run('cd %s; go mod init hello-go' % self.tc.sdk_dir) + self._run('cd %s; go build -o hello-go' % self.tc.sdk_dir) + + @classmethod + def tearDownClass(self): + files = [os.path.join(self.tc.sdk_dir, f) \ + for f in ['test.go', 'test', 'hello-go', 'go.mod', 'go.sum']] + for f in files: + remove_safe(f) + +class GoHostCompileTest(OESDKTestCase): + td_vars = ['MACHINE', 'SDK_SYS', 'TARGET_ARCH'] + + # Architecture mapping from Yocto/Poky to Go + ARCH_MAP = { + 'aarch64': 'arm64', + 'cortexa57': 'arm64', # ARM Cortex-A57 is ARM64 + 'cortexa72': 'arm64', # ARM Cortex-A72 is ARM64 + 'cortexa53': 'arm64', # ARM Cortex-A53 is ARM64 + 'x86_64': 'amd64', + 'i586': '386', + 'i686': '386', + 'mips': 'mips', + 'mipsel': 'mipsle', + 'powerpc64': 'ppc64', + 'powerpc64le': 'ppc64le', + 'riscv64': 'riscv64', + } + + @classmethod + def setUpClass(self): + # Copy test.go file to SDK directory (same as GCC test uses files_dir) + shutil.copyfile(os.path.join(self.tc.files_dir, 'test.go'), + os.path.join(self.tc.sdk_dir, 'test.go')) + + def setUp(self): + target_arch = self.td.get("TARGET_ARCH") + # Check for go-cross-canadian package (uses target architecture) + if not self.tc.hasHostPackage("go-cross-canadian-%s" % target_arch): + raise unittest.SkipTest("GoHostCompileTest class: SDK doesn't contain a Go cross-canadian toolchain") + + # Additional runtime check for go command availability + try: + self._run('which go') + except Exception as e: + raise unittest.SkipTest("GoHostCompileTest class: go command not available: %s" % str(e)) + + def _get_go_arch(self): + """Get Go architecture from SDK_SYS""" + sdksys = self.td.get("SDK_SYS") + arch = sdksys.split('-')[0] + + # Handle ARM variants + if arch.startswith('arm'): + return 'arm' + + # Use mapping for other architectures + return self.ARCH_MAP.get(arch, arch) + + def test_go_cross_compile(self): + """Test Go cross-compilation for target""" + goarch = self._get_go_arch() + self._run('cd %s; GOOS=linux GOARCH=%s go build -o test-%s test.go' % (self.tc.sdk_dir, goarch, goarch)) + + def test_go_module_cross_compile(self): + """Test Go module cross-compilation""" + goarch = self._get_go_arch() + self._run('cd %s; go mod init hello-go' % self.tc.sdk_dir) + self._run('cd %s; GOOS=linux GOARCH=%s go build -o hello-go-%s' % (self.tc.sdk_dir, goarch, goarch)) + + @classmethod + def tearDownClass(self): + # Clean up files with dynamic architecture names + files = [os.path.join(self.tc.sdk_dir, f) \ + for f in ['test.go', 'go.mod', 'go.sum']] + # Add architecture-specific files using the same mapping + for arch in self.ARCH_MAP.values(): + files.extend([os.path.join(self.tc.sdk_dir, f) \ + for f in ['test-%s' % arch, 'hello-go-%s' % arch]]) + # Add 'arm' for ARM variants + files.extend([os.path.join(self.tc.sdk_dir, f) \ + for f in ['test-arm', 'hello-go-arm']]) + for f in files: + remove_safe(f) From patchwork Thu Nov 13 12:28:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marko, Peter" X-Patchwork-Id: 74406 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E4FB7CD6E4C for ; Thu, 13 Nov 2025 12:28:57 +0000 (UTC) Received: from mta-64-226.siemens.flowmailer.net (mta-64-226.siemens.flowmailer.net [185.136.64.226]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.22641.1763036928834897013 for ; Thu, 13 Nov 2025 04:28:49 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm1 header.b=IivVGTY7; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.64.226, mailfrom: fm-256628-2025111312284656fdb2b3890002077e-mb2xjb@rts-flowmailer.siemens.com) Received: by mta-64-226.siemens.flowmailer.net with ESMTPSA id 2025111312284656fdb2b3890002077e for ; Thu, 13 Nov 2025 13:28:46 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=S2ZJvUyhQHoksFcVhuBdPaxPux1n1/R68vQ3WRUOfuw=; b=IivVGTY7zcf9t4zY+8gQXYxHVK9nidtsMVW15cn9VTl+tuWOKlzERiB+6IWtaPy0cWWmQS frFCVJc1VVebA3r/TBoK3NatU0HgSFiTZPIF6myxpHEWWB10XMIy6Hb6FGjzm8OATl1Nkxqf Zivr/BmcCBtyVp5DQWlaKaHCjtS+w291LgppYx28O+b70kSwHUPYBtb514ju0Y8FiG17cX1C bRLoV9zWVgn5ew+AmhDqIghK5SdH0I8n0Ts+sc4q0tFhkV1PTq7IdTaTLdWGFvTToi3whxRD qbm47VjhrwmcE7qohQdgnO5rwmHxkSKmCZdwF93GmWjidLaR/hHsKsjw==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: Osama Abdelkader , Mathieu Dubois-Briand , Richard Purdie , Peter Marko Subject: [OE-core][scarthgap][PATCH 6/9] go: extend runtime test Date: Thu, 13 Nov 2025 13:28:03 +0100 Message-Id: <20251113122806.16769-7-peter.marko@siemens.com> In-Reply-To: <20251113122806.16769-1-peter.marko@siemens.com> References: <20251113122806.16769-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Nov 2025 12:28:57 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226244 From: Osama Abdelkader extend go runtime test with a simple test file, and simple go module test to validate go compilation and execution on target. (From OE-Core rev: e3b2b9170f76f4bbdc41ea6ba7bccffc17d01968) Signed-off-by: Osama Abdelkader Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie Signed-off-by: Peter Marko --- meta/lib/oeqa/files/test.go | 7 ++++ meta/lib/oeqa/runtime/cases/go.py | 68 +++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 meta/lib/oeqa/files/test.go diff --git a/meta/lib/oeqa/files/test.go b/meta/lib/oeqa/files/test.go new file mode 100644 index 00000000000..9ca93026546 --- /dev/null +++ b/meta/lib/oeqa/files/test.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("Hello from Go!") +} diff --git a/meta/lib/oeqa/runtime/cases/go.py b/meta/lib/oeqa/runtime/cases/go.py index 39a80f4dcae..fc7959b5f4b 100644 --- a/meta/lib/oeqa/runtime/cases/go.py +++ b/meta/lib/oeqa/runtime/cases/go.py @@ -4,10 +4,78 @@ # SPDX-License-Identifier: MIT # +import os from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends from oeqa.runtime.decorator.package import OEHasPackage +class GoCompileTest(OERuntimeTestCase): + + @classmethod + def setUp(cls): + dst = '/tmp/' + src = os.path.join(cls.tc.files_dir, 'test.go') + cls.tc.target.copyTo(src, dst) + + @classmethod + def tearDown(cls): + files = '/tmp/test.go /tmp/test' + cls.tc.target.run('rm %s' % files) + dirs = '/tmp/hello-go' + cls.tc.target.run('rm -r %s' % dirs) + + @OETestDepends(['ssh.SSHTest.test_ssh']) + @OEHasPackage('go') + @OEHasPackage('go-runtime') + @OEHasPackage('go-runtime-dev') + @OEHasPackage('openssh-scp') + def test_go_compile(self): + # Check if go is available + status, output = self.target.run('which go') + if status != 0: + self.skipTest('go command not found, output: %s' % output) + + # Compile the simple Go program + status, output = self.target.run('go build -o /tmp/test /tmp/test.go') + msg = 'go compile failed, output: %s' % output + self.assertEqual(status, 0, msg=msg) + + # Run the compiled program + status, output = self.target.run('/tmp/test') + msg = 'running compiled file failed, output: %s' % output + self.assertEqual(status, 0, msg=msg) + + @OETestDepends(['ssh.SSHTest.test_ssh']) + @OEHasPackage('go') + @OEHasPackage('go-runtime') + @OEHasPackage('go-runtime-dev') + @OEHasPackage('openssh-scp') + def test_go_module(self): + # Check if go is available + status, output = self.target.run('which go') + if status != 0: + self.skipTest('go command not found, output: %s' % output) + + # Create a simple Go module + status, output = self.target.run('mkdir -p /tmp/hello-go') + msg = 'mkdir failed, output: %s' % output + self.assertEqual(status, 0, msg=msg) + + # Copy the existing test.go file to the module + status, output = self.target.run('cp /tmp/test.go /tmp/hello-go/main.go') + msg = 'copying test.go failed, output: %s' % output + self.assertEqual(status, 0, msg=msg) + + # Build the module + status, output = self.target.run('cd /tmp/hello-go && go build -o hello main.go') + msg = 'go build failed, output: %s' % output + self.assertEqual(status, 0, msg=msg) + + # Run the module + status, output = self.target.run('cd /tmp/hello-go && ./hello') + msg = 'running go module failed, output: %s' % output + self.assertEqual(status, 0, msg=msg) + class GoHelloworldTest(OERuntimeTestCase): @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['go-helloworld']) From patchwork Thu Nov 13 12:28:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marko, Peter" X-Patchwork-Id: 74405 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E4F6ACD6E4B for ; Thu, 13 Nov 2025 12:28:57 +0000 (UTC) Received: from mta-64-228.siemens.flowmailer.net (mta-64-228.siemens.flowmailer.net [185.136.64.228]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.22645.1763036933973304228 for ; Thu, 13 Nov 2025 04:28:54 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm1 header.b=M2HejYNk; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.64.228, mailfrom: fm-256628-2025111312285248eee5657f00020786-uypzla@rts-flowmailer.siemens.com) Received: by mta-64-228.siemens.flowmailer.net with ESMTPSA id 2025111312285248eee5657f00020786 for ; Thu, 13 Nov 2025 13:28:52 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=Tutj8kNsm4UAU6wcLLr2NOTVsRx8V2V9eOP8qWXYm1I=; b=M2HejYNkFUxk7AjPFMiq3hwMNByvuPEpdhfx8U4VWixGDQkP7yQz7SBtBS74lFhKTM+PCf Uu2Qo7zIU0cjeORCcd5dqyVjU8/VIjWv8Z5eMHhzxhUPRw1gIeaD5YDNgi/L+K5iRYV8appp C+i/7PFh2XsBgB0KIdcLPR3NBiid6IuTEVc1nut9fQpAADvefS0VYd0HkKYdtWSc6z7SXHgP cThQM40sAIfQzbIZcan2eVpMQnB/cw8YK5/hljVDWSVoKYrr/U49nHC3Qv+kSWX7opvkbFf2 xD1WDXneQcXfpu5o2Dwa/i5V6YiLH2k8egd9y9v09YQK1KqYdFXiLJAg==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: Osama Abdelkader , Mathieu Dubois-Briand , Richard Purdie , Peter Marko Subject: [OE-core][scarthgap][PATCH 7/9] go: remove duplicate arch map in sdk test Date: Thu, 13 Nov 2025 13:28:04 +0100 Message-Id: <20251113122806.16769-8-peter.marko@siemens.com> In-Reply-To: <20251113122806.16769-1-peter.marko@siemens.com> References: <20251113122806.16769-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Nov 2025 12:28:57 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226245 From: Osama Abdelkader ARCH_MAP is duplicating an existing map in meta/lib/oe/go.py use oe.go map_arch instead. (From OE-Core rev: c2ba36f41777d347fd5ffcd9b6862638e5f35a1b) Signed-off-by: Osama Abdelkader Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie Signed-off-by: Peter Marko --- meta/lib/oeqa/sdk/cases/go.py | 31 +++++-------------------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/meta/lib/oeqa/sdk/cases/go.py b/meta/lib/oeqa/sdk/cases/go.py index 9c15124f6ad..a050df7a9fa 100644 --- a/meta/lib/oeqa/sdk/cases/go.py +++ b/meta/lib/oeqa/sdk/cases/go.py @@ -12,6 +12,7 @@ from oeqa.core.utils.path import remove_safe from oeqa.sdk.case import OESDKTestCase from oeqa.utils.subprocesstweak import errors_have_output +from oe.go import map_arch errors_have_output() class GoCompileTest(OESDKTestCase): @@ -55,22 +56,6 @@ class GoCompileTest(OESDKTestCase): class GoHostCompileTest(OESDKTestCase): td_vars = ['MACHINE', 'SDK_SYS', 'TARGET_ARCH'] - # Architecture mapping from Yocto/Poky to Go - ARCH_MAP = { - 'aarch64': 'arm64', - 'cortexa57': 'arm64', # ARM Cortex-A57 is ARM64 - 'cortexa72': 'arm64', # ARM Cortex-A72 is ARM64 - 'cortexa53': 'arm64', # ARM Cortex-A53 is ARM64 - 'x86_64': 'amd64', - 'i586': '386', - 'i686': '386', - 'mips': 'mips', - 'mipsel': 'mipsle', - 'powerpc64': 'ppc64', - 'powerpc64le': 'ppc64le', - 'riscv64': 'riscv64', - } - @classmethod def setUpClass(self): # Copy test.go file to SDK directory (same as GCC test uses files_dir) @@ -94,12 +79,8 @@ class GoHostCompileTest(OESDKTestCase): sdksys = self.td.get("SDK_SYS") arch = sdksys.split('-')[0] - # Handle ARM variants - if arch.startswith('arm'): - return 'arm' - # Use mapping for other architectures - return self.ARCH_MAP.get(arch, arch) + return map_arch(arch) def test_go_cross_compile(self): """Test Go cross-compilation for target""" @@ -117,12 +98,10 @@ class GoHostCompileTest(OESDKTestCase): # Clean up files with dynamic architecture names files = [os.path.join(self.tc.sdk_dir, f) \ for f in ['test.go', 'go.mod', 'go.sum']] - # Add architecture-specific files using the same mapping - for arch in self.ARCH_MAP.values(): + # Add common architecture-specific files that might be created + common_archs = ['arm64', 'arm', 'amd64', '386', 'mips', 'mipsle', 'ppc64', 'ppc64le', 'riscv64'] + for arch in common_archs: files.extend([os.path.join(self.tc.sdk_dir, f) \ for f in ['test-%s' % arch, 'hello-go-%s' % arch]]) - # Add 'arm' for ARM variants - files.extend([os.path.join(self.tc.sdk_dir, f) \ - for f in ['test-arm', 'hello-go-arm']]) for f in files: remove_safe(f) From patchwork Thu Nov 13 12:28:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marko, Peter" X-Patchwork-Id: 74407 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3ABFCD6E4D for ; Thu, 13 Nov 2025 12:29:07 +0000 (UTC) Received: from mta-65-228.siemens.flowmailer.net (mta-65-228.siemens.flowmailer.net [185.136.65.228]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.22649.1763036938863552002 for ; Thu, 13 Nov 2025 04:28:59 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm1 header.b=VWcQ1NL5; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.228, mailfrom: fm-256628-202511131228565a96b31e7e00020772-mskk4t@rts-flowmailer.siemens.com) Received: by mta-65-228.siemens.flowmailer.net with ESMTPSA id 202511131228565a96b31e7e00020772 for ; Thu, 13 Nov 2025 13:28:56 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=7crAya3yDG2/yTD34I4aZ6aM5RuDhnU3fBSgQWptfTk=; b=VWcQ1NL5ahSTN2jsewRW468h1X2XFIxR7UNcsz7KuKbim5Ld/8Zxxt+pYyir9eYEps68FX 1go4KLZihfYaarphBzzD8VlzN88ooRUvaEcphGACIxcEtVbvF/EjQj1s5uQPa28rwzB02VyR B8uIJTcJU6ANHBEeAJct90cGnyxIcqi3GetafNBN0v1sbZK8c0Ro3NH7RG+39G+6DewfUskj MWhsqVY4JuykfiaemLmRr2ltbuaAFWTO/8ai52vRP0HQfni1LXJf+6AibDxNSHlCihGaMqD9 9yBKYDodIGGZGEUvRwWZ6aypnyfoVu7BEtw/aljBdW24BV6pfQivraMg==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: Peter Marko Subject: [OE-core][scarthgap][PATCH 8/9] oeqa: fix package detection in go sdk tests Date: Thu, 13 Nov 2025 13:28:05 +0100 Message-Id: <20251113122806.16769-9-peter.marko@siemens.com> In-Reply-To: <20251113122806.16769-1-peter.marko@siemens.com> References: <20251113122806.16769-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Nov 2025 12:29:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226246 From: Peter Marko The test are skipped if architecture contains dash because TARGET_ARCH contains underscore while package name contains dash. Here the translation needs to be done. Note that poky distro default arch has dash: MACHINE="qemux86-64" TARGET_ARCH="x86_64" ERROR: Nothing PROVIDES 'go-cross-canadian-x86_64'. Close matches: gcc-cross-canadian-x86-64 gdb-cross-canadian-x86-64 go-cross-canadian-x86-64 TRANSLATED_TARGET_ARCH="x86-64" Quoting meta/classes-recipe/cross-canadian.bbclass: TRANSLATED_TARGET_ARCH is added into PN Signed-off-by: Peter Marko --- meta/lib/oeqa/sdk/cases/go.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meta/lib/oeqa/sdk/cases/go.py b/meta/lib/oeqa/sdk/cases/go.py index a050df7a9fa..693be89e1df 100644 --- a/meta/lib/oeqa/sdk/cases/go.py +++ b/meta/lib/oeqa/sdk/cases/go.py @@ -25,9 +25,9 @@ class GoCompileTest(OESDKTestCase): os.path.join(self.tc.sdk_dir, 'test.go')) def setUp(self): - target_arch = self.td.get("TARGET_ARCH") + translated_target_arch = self.td.get("TRANSLATED_TARGET_ARCH") # Check for go-cross-canadian package (uses target architecture) - if not self.tc.hasHostPackage("go-cross-canadian-%s" % target_arch): + if not self.tc.hasHostPackage("go-cross-canadian-%s" % translated_target_arch): raise unittest.SkipTest("GoCompileTest class: SDK doesn't contain a Go cross-canadian toolchain") # Additional runtime check for go command availability @@ -63,9 +63,9 @@ class GoHostCompileTest(OESDKTestCase): os.path.join(self.tc.sdk_dir, 'test.go')) def setUp(self): - target_arch = self.td.get("TARGET_ARCH") + translated_target_arch = self.td.get("TRANSLATED_TARGET_ARCH") # Check for go-cross-canadian package (uses target architecture) - if not self.tc.hasHostPackage("go-cross-canadian-%s" % target_arch): + if not self.tc.hasHostPackage("go-cross-canadian-%s" % translated_target_arch): raise unittest.SkipTest("GoHostCompileTest class: SDK doesn't contain a Go cross-canadian toolchain") # Additional runtime check for go command availability From patchwork Thu Nov 13 12:28:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marko, Peter" X-Patchwork-Id: 74408 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id DFDAECD6E4B for ; Thu, 13 Nov 2025 12:29:07 +0000 (UTC) Received: from mta-65-225.siemens.flowmailer.net (mta-65-225.siemens.flowmailer.net [185.136.65.225]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.22654.1763036944139057316 for ; Thu, 13 Nov 2025 04:29:04 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=peter.marko@siemens.com header.s=fm1 header.b=D0ftPnSf; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.65.225, mailfrom: fm-256628-20251113122902ca09372b52000207c9-r0hnbk@rts-flowmailer.siemens.com) Received: by mta-65-225.siemens.flowmailer.net with ESMTPSA id 20251113122902ca09372b52000207c9 for ; Thu, 13 Nov 2025 13:29:02 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=peter.marko@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=7cZx9ddmYza++z4N+EN8o98Mh0zCaQ75Y+2CaSHs89c=; b=D0ftPnSf6kdBFItFXqrowYi+ZMU6vI4apHpwv5Zvb7cHGSNTxEYZ6784IenZGMXOBY4/f4 5FD54i6AfKx/BH8SLHwFHrjE6wLNL0VlO0YFKrPwgoUoEHx/bHuXhAaO84CZBqZdOpVkBbyE Nec9wOsv+DhteME9peDx194b9WR/Zor1ZdvtvXoklwi9p76Xor8cxEYA2ETJbYd1b79yzlEk zuoNPny//eu+lqdkagz0gpRx0f9/ei43dwNE4r1d9cEUeBtdHT1cOkM0Z5JhUAdXrsvLFW5W wwrUVstXw3+Gw8ZNDCeB/GB5FUrkgo8+7OVf4lOuwggyNlBu/fPm6dhQ==; From: Peter Marko To: openembedded-core@lists.openembedded.org Cc: Peter Marko Subject: [OE-core][scarthgap][PATCH 9/9] oeqa: drop unnecessary dependency from go runtime tests Date: Thu, 13 Nov 2025 13:28:06 +0100 Message-Id: <20251113122806.16769-10-peter.marko@siemens.com> In-Reply-To: <20251113122806.16769-1-peter.marko@siemens.com> References: <20251113122806.16769-1-peter.marko@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-256628:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 13 Nov 2025 12:29:07 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/226247 From: Peter Marko The tests do not use scp command, so openssh-scp is not needed. Signed-off-by: Peter Marko --- meta/lib/oeqa/runtime/cases/go.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/meta/lib/oeqa/runtime/cases/go.py b/meta/lib/oeqa/runtime/cases/go.py index fc7959b5f4b..d4b69438a56 100644 --- a/meta/lib/oeqa/runtime/cases/go.py +++ b/meta/lib/oeqa/runtime/cases/go.py @@ -28,7 +28,6 @@ class GoCompileTest(OERuntimeTestCase): @OEHasPackage('go') @OEHasPackage('go-runtime') @OEHasPackage('go-runtime-dev') - @OEHasPackage('openssh-scp') def test_go_compile(self): # Check if go is available status, output = self.target.run('which go') @@ -49,7 +48,6 @@ class GoCompileTest(OERuntimeTestCase): @OEHasPackage('go') @OEHasPackage('go-runtime') @OEHasPackage('go-runtime-dev') - @OEHasPackage('openssh-scp') def test_go_module(self): # Check if go is available status, output = self.target.run('which go')