diff options
author | Ross Burton <ross@burtonini.com> | 2021-08-09 14:49:33 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-08-12 06:26:15 +0100 |
commit | 262587d754b0a435953abfa4cf923add6e880a35 (patch) | |
tree | 718f37b4adb5bb11b07d00f471923f2429a933a4 /meta/lib/oeqa/sdk | |
parent | 43af729d3109a370e436d52862ea2e2842dadba6 (diff) | |
download | poky-262587d754b0a435953abfa4cf923add6e880a35.tar.gz |
oeqa/sdk: add some buildtools tests
These two tests are designed to exercise the buildtools-tarball.
SanityTests simply verifies that inside the SDK, some commands are used
from the SDK.
BuildTests creates a new OE build directory and builds virtual/libc to
verify that a basic build works correctly. DL_DIR is reused to avoid
needless downloading, but sstate is not shared to ensure a build does
happen.
(From OE-Core rev: 6157d6ffa32d6df383c29d4b6de07feb9d619913)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/sdk')
-rw-r--r-- | meta/lib/oeqa/sdk/buildtools-cases/README | 2 | ||||
-rw-r--r-- | meta/lib/oeqa/sdk/buildtools-cases/build.py | 23 | ||||
-rw-r--r-- | meta/lib/oeqa/sdk/buildtools-cases/sanity.py | 22 |
3 files changed, 47 insertions, 0 deletions
diff --git a/meta/lib/oeqa/sdk/buildtools-cases/README b/meta/lib/oeqa/sdk/buildtools-cases/README new file mode 100644 index 0000000000..d4f20faa9f --- /dev/null +++ b/meta/lib/oeqa/sdk/buildtools-cases/README | |||
@@ -0,0 +1,2 @@ | |||
1 | These test cases are used by buildtools-tarball, and are not used by the testsdk | ||
2 | class. | ||
diff --git a/meta/lib/oeqa/sdk/buildtools-cases/build.py b/meta/lib/oeqa/sdk/buildtools-cases/build.py new file mode 100644 index 0000000000..5a17ab98c6 --- /dev/null +++ b/meta/lib/oeqa/sdk/buildtools-cases/build.py | |||
@@ -0,0 +1,23 @@ | |||
1 | # | ||
2 | # SPDX-License-Identifier: MIT | ||
3 | # | ||
4 | |||
5 | import os, tempfile | ||
6 | from oeqa.sdk.case import OESDKTestCase | ||
7 | from oeqa.utils.subprocesstweak import errors_have_output | ||
8 | errors_have_output() | ||
9 | |||
10 | class BuildTests(OESDKTestCase): | ||
11 | """ | ||
12 | Verify that bitbake can build virtual/libc inside the buildtools. | ||
13 | """ | ||
14 | def test_libc(self): | ||
15 | with tempfile.TemporaryDirectory(prefix='bitbake-build-', dir=self.tc.sdk_dir) as testdir: | ||
16 | corebase = self.td['COREBASE'] | ||
17 | |||
18 | self._run('. %s/oe-init-build-env %s' % (corebase, testdir)) | ||
19 | with open(os.path.join(testdir, 'conf', 'local.conf'), 'ta') as conf: | ||
20 | conf.write('\n') | ||
21 | conf.write('DL_DIR = "%s"\n' % self.td['DL_DIR']) | ||
22 | |||
23 | self._run('. %s/oe-init-build-env %s && bitbake virtual/libc' % (corebase, testdir)) | ||
diff --git a/meta/lib/oeqa/sdk/buildtools-cases/sanity.py b/meta/lib/oeqa/sdk/buildtools-cases/sanity.py new file mode 100644 index 0000000000..64baaa8f84 --- /dev/null +++ b/meta/lib/oeqa/sdk/buildtools-cases/sanity.py | |||
@@ -0,0 +1,22 @@ | |||
1 | # | ||
2 | # SPDX-License-Identifier: MIT | ||
3 | # | ||
4 | |||
5 | import shutil | ||
6 | import os.path | ||
7 | from oeqa.sdk.case import OESDKTestCase | ||
8 | |||
9 | class SanityTests(OESDKTestCase): | ||
10 | def test_tools(self): | ||
11 | """ | ||
12 | Test that wget and tar come from the buildtools, not the host. This | ||
13 | verifies that the buildtools have installed correctly. We can't check | ||
14 | for gcc as that is only installed by buildtools-extended. | ||
15 | """ | ||
16 | for command in ("tar", "wget"): | ||
17 | # Canonicalise the SDK root | ||
18 | sdk_base = os.path.realpath(self.tc.sdk_dir) | ||
19 | # Canonicalise the location of this command | ||
20 | tool_path = os.path.realpath(self._run("command -v %s" % command).strip()) | ||
21 | # Assert that the tool was found inside the SDK root | ||
22 | self.assertEquals(os.path.commonprefix((sdk_base, tool_path)), sdk_base) | ||