mirror of
https://git.yoctoproject.org/poky
synced 2026-06-17 01:53:48 +02:00
(From OE-Core rev: e766fe7a9391cc9348d92ab704ec58c4806e38c6) Signed-off-by: Marta Rybczynska <mrybczynska@syslinbit.com> Signed-off-by: Samantha Jalabert <samantha.jalabert@syslinbit.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
#
|
|
# Copyright OpenEmbedded Contributors
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
import json
|
|
import os
|
|
from oeqa.selftest.case import OESelftestTestCase
|
|
from oeqa.utils.commands import bitbake, get_bb_var, runCmd
|
|
|
|
class SPDXCheck(OESelftestTestCase):
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super(SPDXCheck, cls).setUpClass()
|
|
bitbake("python3-spdx-tools-native")
|
|
bitbake("-c addto_recipe_sysroot python3-spdx-tools-native")
|
|
|
|
def check_recipe_spdx(self, high_level_dir, spdx_file, target_name):
|
|
config = """
|
|
INHERIT += "create-spdx"
|
|
"""
|
|
self.write_config(config)
|
|
|
|
deploy_dir = get_bb_var("DEPLOY_DIR")
|
|
machine_var = get_bb_var("MACHINE")
|
|
# qemux86-64 creates the directory qemux86_64
|
|
machine_dir = machine_var.replace("-", "_")
|
|
|
|
full_file_path = os.path.join(deploy_dir, "spdx", machine_dir, high_level_dir, spdx_file)
|
|
|
|
try:
|
|
os.remove(full_file_path)
|
|
except FileNotFoundError:
|
|
pass
|
|
|
|
bitbake("%s -c create_spdx" % target_name)
|
|
|
|
def check_spdx_json(filename):
|
|
with open(filename) as f:
|
|
report = json.load(f)
|
|
self.assertNotEqual(report, None)
|
|
self.assertNotEqual(report["SPDXID"], None)
|
|
|
|
python = os.path.join(get_bb_var('STAGING_BINDIR', 'python3-spdx-tools-native'), 'nativepython3')
|
|
validator = os.path.join(get_bb_var('STAGING_BINDIR', 'python3-spdx-tools-native'), 'pyspdxtools')
|
|
result = runCmd("{} {} -i {}".format(python, validator, filename))
|
|
|
|
self.assertExists(full_file_path)
|
|
result = check_spdx_json(full_file_path)
|
|
|
|
def test_spdx_base_files(self):
|
|
self.check_recipe_spdx("packages", "base-files.spdx.json", "base-files")
|