xref: /openbmc/openbmc/poky/meta/lib/oeqa/selftest/cases/sdk.py (revision c9537f57ab488bf5d90132917b0184e2527970a5)
1*c9537f57SPatrick Williams#
2*c9537f57SPatrick Williams# Copyright OpenEmbedded Contributors
3*c9537f57SPatrick Williams#
4*c9537f57SPatrick Williams# SPDX-License-Identifier: MIT
5*c9537f57SPatrick Williams#
6*c9537f57SPatrick Williams
7*c9537f57SPatrick Williamsimport os.path
8*c9537f57SPatrick Williams
9*c9537f57SPatrick Williamsfrom oeqa.selftest.case import OESelftestTestCase
10*c9537f57SPatrick Williamsfrom oeqa.utils.commands import bitbake, get_bb_vars
11*c9537f57SPatrick Williams
12*c9537f57SPatrick Williamsclass SDKTests(OESelftestTestCase):
13*c9537f57SPatrick Williams
14*c9537f57SPatrick Williams    def load_manifest(self, filename):
15*c9537f57SPatrick Williams        manifest = {}
16*c9537f57SPatrick Williams        with open(filename) as f:
17*c9537f57SPatrick Williams            for line in f:
18*c9537f57SPatrick Williams                name, arch, version = line.split(maxsplit=3)
19*c9537f57SPatrick Williams                manifest[name] = (version, arch)
20*c9537f57SPatrick Williams        return manifest
21*c9537f57SPatrick Williams
22*c9537f57SPatrick Williams    def test_sdk_manifests(self):
23*c9537f57SPatrick Williams        image = "core-image-minimal"
24*c9537f57SPatrick Williams
25*c9537f57SPatrick Williams        self.write_config("""
26*c9537f57SPatrick WilliamsTOOLCHAIN_HOST_TASK:append = " nativesdk-selftest-hello"
27*c9537f57SPatrick WilliamsIMAGE_INSTALL:append = " selftest-hello"
28*c9537f57SPatrick Williams""")
29*c9537f57SPatrick Williams
30*c9537f57SPatrick Williams        bitbake(f"{image} -c populate_sdk")
31*c9537f57SPatrick Williams        vars = get_bb_vars(['SDK_DEPLOY', 'TOOLCHAIN_OUTPUTNAME'], image)
32*c9537f57SPatrick Williams
33*c9537f57SPatrick Williams        path = os.path.join(vars["SDK_DEPLOY"], vars["TOOLCHAIN_OUTPUTNAME"] + ".host.manifest")
34*c9537f57SPatrick Williams        self.assertNotEqual(os.path.getsize(path), 0, msg="Host manifest is empty")
35*c9537f57SPatrick Williams        self.assertIn("nativesdk-selftest-hello", self.load_manifest(path))
36*c9537f57SPatrick Williams
37*c9537f57SPatrick Williams        path = os.path.join(vars["SDK_DEPLOY"], vars["TOOLCHAIN_OUTPUTNAME"] + ".target.manifest")
38*c9537f57SPatrick Williams        self.assertNotEqual(os.path.getsize(path), 0, msg="Target manifest is empty")
39*c9537f57SPatrick Williams        self.assertIn("selftest-hello", self.load_manifest(path))
40