]> code.ossystems Code Review - openembedded-core.git/commitdiff
oeqa/sdk: add relocation test for buildtools
authorRoss Burton <ross@burtonini.com>
Tue, 17 Aug 2021 22:37:55 +0000 (23:37 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 18 Aug 2021 16:00:16 +0000 (17:00 +0100)
The buildtools-extended tarball includes GCC, which relies on being
relocated correctly to work.  Add a test case that verifies that the
loader paths have all been relocated, as otherwise there are
hard-to-debug errors at build time.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/sdk/buildtools-cases/gcc.py [new file with mode: 0644]

diff --git a/meta/lib/oeqa/sdk/buildtools-cases/gcc.py b/meta/lib/oeqa/sdk/buildtools-cases/gcc.py
new file mode 100644 (file)
index 0000000..36ba15b
--- /dev/null
@@ -0,0 +1,29 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+import os.path
+from oeqa.sdk.case import OESDKTestCase
+
+class GccTests(OESDKTestCase):
+    def test_verify_specs(self):
+        """
+        Verify that the compiler has been relocated successfully and isn't
+        looking in the hard-coded prefix.
+        """
+        # Canonicalise the SDK root
+        sdk_base = os.path.realpath(self.tc.sdk_dir)
+        # Canonicalise the location of GCC
+        gcc_path = os.path.realpath(self._run("command -v gcc").strip())
+        # Skip the test if the GCC didn't come from the buildtools, as it only
+        # comes with buildtools-extended-tarball.
+        if os.path.commonprefix((sdk_base, gcc_path)) != sdk_base:
+            self.skipTest("Buildtools does not provide GCC")
+
+        # This is the prefix that GCC is build with, and should be replaced at
+        # installation time.
+        sdkpath = self.td.get("SDKPATH")
+        self.assertTrue(sdkpath)
+
+        for line in self._run('gcc -dumpspecs').splitlines():
+            self.assertNotIn(sdkpath, line)