public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: Tom Hochstein <tom.hochstein@oss.nxp.com>
To: openembedded-core@lists.openembedded.org
Cc: Ross Burton <ross.burton@arm.com>,
	Tom Hochstein <tom.hochstein@oss.nxp.com>
Subject: [PATCH v6 5/6] oeqa/sdk/meson: improve test to validate host/build target assignments
Date: Fri, 11 Apr 2025 12:28:02 -0500	[thread overview]
Message-ID: <20250411172803.3706607-5-tom.hochstein@oss.nxp.com> (raw)
In-Reply-To: <20250411172803.3706607-1-tom.hochstein@oss.nxp.com>

From: Ross Burton <ross.burton@arm.com>

Use 'meson introspect' to dump JSON describing the build configuration
and validate that the build and host architectures are correctly set in
the meson.cross file.

Also instead of calling ninja directly, call the relevant meson commands.

Fixes: [YOCTO #15485]
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Tom Hochstein <tom.hochstein@oss.nxp.com>
---
 meta/lib/oeqa/sdk/cases/meson.py | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/meta/lib/oeqa/sdk/cases/meson.py b/meta/lib/oeqa/sdk/cases/meson.py
index 1edf78720a..407b94d242 100644
--- a/meta/lib/oeqa/sdk/cases/meson.py
+++ b/meta/lib/oeqa/sdk/cases/meson.py
@@ -4,6 +4,7 @@
 # SPDX-License-Identifier: MIT
 #
 
+import json
 import os
 import subprocess
 import tempfile
@@ -39,10 +40,17 @@ class MesonTest(OESDKTestCase):
             self.assertTrue(os.path.isdir(dirs["source"]))
             os.makedirs(dirs["build"])
 
-            log = self._run("meson --warnlevel 1 -Degl=no -Dglx=no -Dx11=false {build} {source}".format(**dirs))
-            # Check that Meson thinks we're doing a cross build and not a native
-            self.assertIn("Build type: cross build", log)
-            self._run("ninja -C {build} -v".format(**dirs))
-            self._run("DESTDIR={install} ninja -C {build} -v install".format(**dirs))
+            log = self._run("meson setup --warnlevel 1 -Degl=no -Dglx=no -Dx11=false {build} {source}".format(**dirs))
+
+            # Check that the host (gcc) and build (cross-gcc) compilers are different
+            data = json.loads(self._run("meson introspect --compilers {build}".format(**dirs)))
+            self.assertNotEqual(data["build"]["c"]["exelist"], data["host"]["c"]["exelist"])
+            # Check that the system architectures were set correctly
+            data = json.loads(self._run("meson introspect --machines {build}".format(**dirs)))
+            self.assertEqual(data["build"]["cpu"], self.td["SDK_ARCH"])
+            self.assertEqual(data["host"]["cpu"], self.td["HOST_ARCH"])
+
+            self._run("meson compile -C {build} -v".format(**dirs))
+            self._run("meson install -C {build} --destdir {install}".format(**dirs))
 
             self.check_elf(os.path.join(dirs["install"], "usr", "local", "lib", "libepoxy.so"))
-- 
2.34.1



  parent reply	other threads:[~2025-04-11 17:28 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-11 17:27 [PATCH v6 1/6] meson: Allow user to override setup command options Tom Hochstein
2025-04-11 17:27 ` [PATCH v6 2/6] toolchain-scripts: Add Meson settings for Yocto build SDK Tom Hochstein
2025-04-11 17:28 ` [PATCH v6 3/6] toolchain-scripts: Export meson settings for SDK builds Tom Hochstein
2025-04-11 17:28 ` [PATCH v6 4/6] meson: Fix host_machine setting for native cross-file Tom Hochstein
2025-04-11 17:28 ` Tom Hochstein [this message]
2025-04-15  9:12   ` [OE-core] [PATCH v6 5/6] oeqa/sdk/meson: improve test to validate host/build target assignments Mathieu Dubois-Briand
2025-04-11 17:28 ` [PATCH v6 6/6] oeqa/sdk/meson: Skip test when SDK arch != build machine arch Tom Hochstein
2025-04-15 10:48   ` [OE-core] " Richard Purdie
2025-04-16 16:16     ` Tom Hochstein
     [not found]     ` <1836D8BA73D61DA5.22324@lists.openembedded.org>
2025-04-17 13:48       ` Tom Hochstein

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=20250411172803.3706607-5-tom.hochstein@oss.nxp.com \
    --to=tom.hochstein@oss.nxp.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=ross.burton@arm.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox