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