diff options
| author | Ross Burton <ross@burtonini.com> | 2021-08-17 23:37:55 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-08-18 17:01:06 +0100 |
| commit | 8ab0f43fdac1210dd216f1564721278113faec7f (patch) | |
| tree | 601088fd27482dfb4ab4fb6284270df82aa63b0f | |
| parent | 33cb14f6a0dbaf81baf97d2b321474f6e8cbf1e1 (diff) | |
| download | poky-8ab0f43fdac1210dd216f1564721278113faec7f.tar.gz | |
oeqa/sdk: add relocation test for buildtools
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.
(From OE-Core rev: fe1f675ea156722a3709b13cd751479c9528134d)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/lib/oeqa/sdk/buildtools-cases/gcc.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/meta/lib/oeqa/sdk/buildtools-cases/gcc.py b/meta/lib/oeqa/sdk/buildtools-cases/gcc.py new file mode 100644 index 0000000000..36ba15b134 --- /dev/null +++ b/meta/lib/oeqa/sdk/buildtools-cases/gcc.py | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | # | ||
| 2 | # SPDX-License-Identifier: MIT | ||
| 3 | # | ||
| 4 | |||
| 5 | import os.path | ||
| 6 | from oeqa.sdk.case import OESDKTestCase | ||
| 7 | |||
| 8 | class GccTests(OESDKTestCase): | ||
| 9 | def test_verify_specs(self): | ||
| 10 | """ | ||
| 11 | Verify that the compiler has been relocated successfully and isn't | ||
| 12 | looking in the hard-coded prefix. | ||
| 13 | """ | ||
| 14 | # Canonicalise the SDK root | ||
| 15 | sdk_base = os.path.realpath(self.tc.sdk_dir) | ||
| 16 | # Canonicalise the location of GCC | ||
| 17 | gcc_path = os.path.realpath(self._run("command -v gcc").strip()) | ||
| 18 | # Skip the test if the GCC didn't come from the buildtools, as it only | ||
| 19 | # comes with buildtools-extended-tarball. | ||
| 20 | if os.path.commonprefix((sdk_base, gcc_path)) != sdk_base: | ||
| 21 | self.skipTest("Buildtools does not provide GCC") | ||
| 22 | |||
| 23 | # This is the prefix that GCC is build with, and should be replaced at | ||
| 24 | # installation time. | ||
| 25 | sdkpath = self.td.get("SDKPATH") | ||
| 26 | self.assertTrue(sdkpath) | ||
| 27 | |||
| 28 | for line in self._run('gcc -dumpspecs').splitlines(): | ||
| 29 | self.assertNotIn(sdkpath, line) | ||
