python: Format trivial files where only newlines were missing
Apply formatting on files that only needed adding newlines. Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
This commit is contained in:
parent
9a804572a3
commit
f05deb1aa4
24 changed files with 63 additions and 24 deletions
|
@ -2089,7 +2089,6 @@ exclude = [
|
||||||
"./samples/modules/tflite-micro/magic_wand/train/train.py",
|
"./samples/modules/tflite-micro/magic_wand/train/train.py",
|
||||||
"./samples/modules/tflite-micro/magic_wand/train/train_test.py",
|
"./samples/modules/tflite-micro/magic_wand/train/train_test.py",
|
||||||
"./samples/modules/thrift/hello/client/hello_client.py",
|
"./samples/modules/thrift/hello/client/hello_client.py",
|
||||||
"./samples/net/cellular_modem/server/te.py",
|
|
||||||
"./samples/net/cellular_modem/server/te_udp_echo.py",
|
"./samples/net/cellular_modem/server/te_udp_echo.py",
|
||||||
"./samples/net/cellular_modem/server/te_udp_receive.py",
|
"./samples/net/cellular_modem/server/te_udp_receive.py",
|
||||||
"./samples/net/cloud/aws_iot_mqtt/src/creds/convert_keys.py",
|
"./samples/net/cloud/aws_iot_mqtt/src/creds/convert_keys.py",
|
||||||
|
@ -2100,7 +2099,6 @@ exclude = [
|
||||||
"./samples/subsys/zbus/remote_mock/remote_mock.py",
|
"./samples/subsys/zbus/remote_mock/remote_mock.py",
|
||||||
"./scripts/build/check_init_priorities.py",
|
"./scripts/build/check_init_priorities.py",
|
||||||
"./scripts/build/check_init_priorities_test.py",
|
"./scripts/build/check_init_priorities_test.py",
|
||||||
"./scripts/build/dir_is_writeable.py",
|
|
||||||
"./scripts/build/elf_parser.py",
|
"./scripts/build/elf_parser.py",
|
||||||
"./scripts/build/file2hex.py",
|
"./scripts/build/file2hex.py",
|
||||||
"./scripts/build/gen_app_partitions.py",
|
"./scripts/build/gen_app_partitions.py",
|
||||||
|
@ -2120,13 +2118,11 @@ exclude = [
|
||||||
"./scripts/build/gen_syscalls.py",
|
"./scripts/build/gen_syscalls.py",
|
||||||
"./scripts/build/llext_inject_slids.py",
|
"./scripts/build/llext_inject_slids.py",
|
||||||
"./scripts/build/llext_prepare_exptab.py",
|
"./scripts/build/llext_prepare_exptab.py",
|
||||||
"./scripts/build/llext_slidlib.py",
|
|
||||||
"./scripts/build/mergehex.py",
|
"./scripts/build/mergehex.py",
|
||||||
"./scripts/build/parse_syscalls.py",
|
"./scripts/build/parse_syscalls.py",
|
||||||
"./scripts/build/process_gperf.py",
|
"./scripts/build/process_gperf.py",
|
||||||
"./scripts/build/subfolder_list.py",
|
"./scripts/build/subfolder_list.py",
|
||||||
"./scripts/build/uf2conv.py",
|
"./scripts/build/uf2conv.py",
|
||||||
"./scripts/build/user_wordsize.py",
|
|
||||||
"./scripts/check_maintainers.py",
|
"./scripts/check_maintainers.py",
|
||||||
"./scripts/ci/check_compliance.py",
|
"./scripts/ci/check_compliance.py",
|
||||||
"./scripts/ci/coverage/coverage_analysis.py",
|
"./scripts/ci/coverage/coverage_analysis.py",
|
||||||
|
@ -2140,7 +2136,6 @@ exclude = [
|
||||||
"./scripts/coredump/coredump_parser/elf_parser.py",
|
"./scripts/coredump/coredump_parser/elf_parser.py",
|
||||||
"./scripts/coredump/coredump_parser/log_parser.py",
|
"./scripts/coredump/coredump_parser/log_parser.py",
|
||||||
"./scripts/coredump/coredump_serial_log_parser.py",
|
"./scripts/coredump/coredump_serial_log_parser.py",
|
||||||
"./scripts/coredump/gdbstubs/__init__.py",
|
|
||||||
"./scripts/coredump/gdbstubs/arch/arm64.py",
|
"./scripts/coredump/gdbstubs/arch/arm64.py",
|
||||||
"./scripts/coredump/gdbstubs/arch/arm_cortex_m.py",
|
"./scripts/coredump/gdbstubs/arch/arm_cortex_m.py",
|
||||||
"./scripts/coredump/gdbstubs/arch/risc_v.py",
|
"./scripts/coredump/gdbstubs/arch/risc_v.py",
|
||||||
|
@ -2152,7 +2147,6 @@ exclude = [
|
||||||
"./scripts/dts/gen_driver_kconfig_dts.py",
|
"./scripts/dts/gen_driver_kconfig_dts.py",
|
||||||
"./scripts/dts/gen_dts_cmake.py",
|
"./scripts/dts/gen_dts_cmake.py",
|
||||||
"./scripts/dts/gen_edt.py",
|
"./scripts/dts/gen_edt.py",
|
||||||
"./scripts/dts/python-devicetree/setup.py",
|
|
||||||
"./scripts/dts/python-devicetree/src/devicetree/_private.py",
|
"./scripts/dts/python-devicetree/src/devicetree/_private.py",
|
||||||
"./scripts/dts/python-devicetree/src/devicetree/dtlib.py",
|
"./scripts/dts/python-devicetree/src/devicetree/dtlib.py",
|
||||||
"./scripts/dts/python-devicetree/src/devicetree/edtlib.py",
|
"./scripts/dts/python-devicetree/src/devicetree/edtlib.py",
|
||||||
|
@ -2189,7 +2183,6 @@ exclude = [
|
||||||
"./scripts/logging/dictionary/dictionary_parser/utils.py",
|
"./scripts/logging/dictionary/dictionary_parser/utils.py",
|
||||||
"./scripts/logging/dictionary/log_parser.py",
|
"./scripts/logging/dictionary/log_parser.py",
|
||||||
"./scripts/logging/dictionary/log_parser_uart.py",
|
"./scripts/logging/dictionary/log_parser_uart.py",
|
||||||
"./scripts/logging/dictionary/parserlib.py",
|
|
||||||
"./scripts/make_bugs_pickle.py",
|
"./scripts/make_bugs_pickle.py",
|
||||||
"./scripts/net/enumerate_http_status.py",
|
"./scripts/net/enumerate_http_status.py",
|
||||||
"./scripts/profiling/stackcollapse.py",
|
"./scripts/profiling/stackcollapse.py",
|
||||||
|
@ -2210,8 +2203,6 @@ exclude = [
|
||||||
"./scripts/pylib/pytest-twister-harness/tests/device/qemu_adapter_test.py",
|
"./scripts/pylib/pytest-twister-harness/tests/device/qemu_adapter_test.py",
|
||||||
"./scripts/pylib/pytest-twister-harness/tests/helpers/shell_test.py",
|
"./scripts/pylib/pytest-twister-harness/tests/helpers/shell_test.py",
|
||||||
"./scripts/pylib/pytest-twister-harness/tests/plugin_test.py",
|
"./scripts/pylib/pytest-twister-harness/tests/plugin_test.py",
|
||||||
"./scripts/pylib/pytest-twister-harness/tests/resources/mock_script.py",
|
|
||||||
"./scripts/pylib/pytest-twister-harness/tests/resources/shell_simulator.py",
|
|
||||||
"./scripts/pylib/twister/expr_parser.py",
|
"./scripts/pylib/twister/expr_parser.py",
|
||||||
"./scripts/pylib/twister/scl.py",
|
"./scripts/pylib/twister/scl.py",
|
||||||
"./scripts/pylib/twister/twisterlib/cmakecache.py",
|
"./scripts/pylib/twister/twisterlib/cmakecache.py",
|
||||||
|
@ -2224,7 +2215,6 @@ exclude = [
|
||||||
"./scripts/pylib/twister/twisterlib/harness.py",
|
"./scripts/pylib/twister/twisterlib/harness.py",
|
||||||
"./scripts/pylib/twister/twisterlib/jobserver.py",
|
"./scripts/pylib/twister/twisterlib/jobserver.py",
|
||||||
"./scripts/pylib/twister/twisterlib/log_helper.py",
|
"./scripts/pylib/twister/twisterlib/log_helper.py",
|
||||||
"./scripts/pylib/twister/twisterlib/mixins.py",
|
|
||||||
"./scripts/pylib/twister/twisterlib/package.py",
|
"./scripts/pylib/twister/twisterlib/package.py",
|
||||||
"./scripts/pylib/twister/twisterlib/platform.py",
|
"./scripts/pylib/twister/twisterlib/platform.py",
|
||||||
"./scripts/pylib/twister/twisterlib/quarantine.py",
|
"./scripts/pylib/twister/twisterlib/quarantine.py",
|
||||||
|
@ -2247,7 +2237,6 @@ exclude = [
|
||||||
"./scripts/tests/twister/pytest_integration/test_harness_pytest.py",
|
"./scripts/tests/twister/pytest_integration/test_harness_pytest.py",
|
||||||
"./scripts/tests/twister/test_cmakecache.py",
|
"./scripts/tests/twister/test_cmakecache.py",
|
||||||
"./scripts/tests/twister/test_config_parser.py",
|
"./scripts/tests/twister/test_config_parser.py",
|
||||||
"./scripts/tests/twister/test_data/mixins/test_to_ignore.py",
|
|
||||||
"./scripts/tests/twister/test_environment.py",
|
"./scripts/tests/twister/test_environment.py",
|
||||||
"./scripts/tests/twister/test_errors.py",
|
"./scripts/tests/twister/test_errors.py",
|
||||||
"./scripts/tests/twister/test_handlers.py",
|
"./scripts/tests/twister/test_handlers.py",
|
||||||
|
@ -2373,20 +2362,12 @@ exclude = [
|
||||||
"./scripts/west_commands/tests/test_stm32cubeprogrammer.py",
|
"./scripts/west_commands/tests/test_stm32cubeprogrammer.py",
|
||||||
"./scripts/west_commands/tests/test_stm32flash.py",
|
"./scripts/west_commands/tests/test_stm32flash.py",
|
||||||
"./scripts/west_commands/tests/test_twister.py",
|
"./scripts/west_commands/tests/test_twister.py",
|
||||||
"./scripts/west_commands/tests/test_xsdb.py",
|
|
||||||
"./scripts/west_commands/twister_cmd.py",
|
"./scripts/west_commands/twister_cmd.py",
|
||||||
"./scripts/west_commands/zcmake.py",
|
"./scripts/west_commands/zcmake.py",
|
||||||
"./scripts/west_commands/zephyr_ext_common.py",
|
"./scripts/west_commands/zephyr_ext_common.py",
|
||||||
"./scripts/west_commands/zspdx/cmakecache.py",
|
|
||||||
"./scripts/west_commands/zspdx/cmakefileapi.py",
|
"./scripts/west_commands/zspdx/cmakefileapi.py",
|
||||||
"./scripts/west_commands/zspdx/cmakefileapijson.py",
|
"./scripts/west_commands/zspdx/cmakefileapijson.py",
|
||||||
"./scripts/west_commands/zspdx/datatypes.py",
|
|
||||||
"./scripts/west_commands/zspdx/getincludes.py",
|
|
||||||
"./scripts/west_commands/zspdx/licenses.py",
|
"./scripts/west_commands/zspdx/licenses.py",
|
||||||
"./scripts/west_commands/zspdx/sbom.py",
|
|
||||||
"./scripts/west_commands/zspdx/scanner.py",
|
|
||||||
"./scripts/west_commands/zspdx/spdxids.py",
|
|
||||||
"./scripts/west_commands/zspdx/util.py",
|
|
||||||
"./scripts/west_commands/zspdx/walker.py",
|
"./scripts/west_commands/zspdx/walker.py",
|
||||||
"./scripts/west_commands/zspdx/writer.py",
|
"./scripts/west_commands/zspdx/writer.py",
|
||||||
"./scripts/zephyr_module.py",
|
"./scripts/zephyr_module.py",
|
||||||
|
@ -2409,7 +2390,6 @@ exclude = [
|
||||||
"./tests/drivers/can/host/pytest/can_shell.py",
|
"./tests/drivers/can/host/pytest/can_shell.py",
|
||||||
"./tests/drivers/can/host/pytest/conftest.py",
|
"./tests/drivers/can/host/pytest/conftest.py",
|
||||||
"./tests/drivers/can/host/pytest/test_can.py",
|
"./tests/drivers/can/host/pytest/test_can.py",
|
||||||
"./tests/kernel/timer/timer_behavior/pytest/conftest.py",
|
|
||||||
"./tests/kernel/timer/timer_behavior/pytest/saleae_logic2.py",
|
"./tests/kernel/timer/timer_behavior/pytest/saleae_logic2.py",
|
||||||
"./tests/kernel/timer/timer_behavior/pytest/test_timer.py",
|
"./tests/kernel/timer/timer_behavior/pytest/test_timer.py",
|
||||||
"./tests/misc/check_init_priorities/validate_check_init_priorities_output.py",
|
"./tests/misc/check_init_priorities/validate_check_init_priorities_output.py",
|
||||||
|
@ -2421,12 +2401,9 @@ exclude = [
|
||||||
"./tests/net/lib/lwm2m/interop/pytest/test_lwm2m.py",
|
"./tests/net/lib/lwm2m/interop/pytest/test_lwm2m.py",
|
||||||
"./tests/net/lib/lwm2m/interop/pytest/test_nosec.py",
|
"./tests/net/lib/lwm2m/interop/pytest/test_nosec.py",
|
||||||
"./tests/net/lib/lwm2m/interop/pytest/test_portfolio.py",
|
"./tests/net/lib/lwm2m/interop/pytest/test_portfolio.py",
|
||||||
"./tests/net/socket/tls_configurations/pytest/conftest.py",
|
|
||||||
"./tests/net/socket/tls_configurations/pytest/test_app_vs_openssl.py",
|
"./tests/net/socket/tls_configurations/pytest/test_app_vs_openssl.py",
|
||||||
"./tests/net/socket/udp/generate-c-string.py",
|
"./tests/net/socket/udp/generate-c-string.py",
|
||||||
"./tests/subsys/debug/gdbstub/pytest/conftest.py",
|
|
||||||
"./tests/subsys/debug/gdbstub/pytest/test_gdbstub.py",
|
"./tests/subsys/debug/gdbstub/pytest/test_gdbstub.py",
|
||||||
"./tests/subsys/logging/dictionary/pytest/conftest.py",
|
|
||||||
"./tests/subsys/logging/dictionary/pytest/test_logging_dictionary.py",
|
"./tests/subsys/logging/dictionary/pytest/test_logging_dictionary.py",
|
||||||
"./tests/ztest/ztest_param/pytest/test_parameters.py",
|
"./tests/ztest/ztest_param/pytest/test_parameters.py",
|
||||||
]
|
]
|
||||||
|
|
|
@ -13,10 +13,12 @@ udp_receive.start()
|
||||||
|
|
||||||
print("started")
|
print("started")
|
||||||
|
|
||||||
|
|
||||||
def terminate_handler(a, b):
|
def terminate_handler(a, b):
|
||||||
udp_echo.stop()
|
udp_echo.stop()
|
||||||
udp_receive.stop()
|
udp_receive.stop()
|
||||||
print("stopped")
|
print("stopped")
|
||||||
|
|
||||||
|
|
||||||
signal.signal(signal.SIGTERM, terminate_handler)
|
signal.signal(signal.SIGTERM, terminate_handler)
|
||||||
signal.signal(signal.SIGINT, terminate_handler)
|
signal.signal(signal.SIGINT, terminate_handler)
|
||||||
|
|
|
@ -2,10 +2,12 @@
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
is_writeable = os.access(sys.argv[1], os.W_OK)
|
is_writeable = os.access(sys.argv[1], os.W_OK)
|
||||||
return_code = int(not is_writeable)
|
return_code = int(not is_writeable)
|
||||||
sys.exit(return_code)
|
sys.exit(return_code)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -25,6 +25,7 @@ IMPLEMENTATION NOTES:
|
||||||
|
|
||||||
from hashlib import sha256
|
from hashlib import sha256
|
||||||
|
|
||||||
|
|
||||||
def generate_slid(symbol_name: str, slid_size: int) -> int:
|
def generate_slid(symbol_name: str, slid_size: int) -> int:
|
||||||
"""
|
"""
|
||||||
Generates the Symbol Link Identifier (SLID) for a symbol.
|
Generates the Symbol Link Identifier (SLID) for a symbol.
|
||||||
|
@ -40,6 +41,7 @@ def generate_slid(symbol_name: str, slid_size: int) -> int:
|
||||||
hash = m.digest()
|
hash = m.digest()
|
||||||
return int.from_bytes(hash[0:slid_size], byteorder='big', signed=False)
|
return int.from_bytes(hash[0:slid_size], byteorder='big', signed=False)
|
||||||
|
|
||||||
|
|
||||||
def format_slid(slid: int, slid_size: int) -> str:
|
def format_slid(slid: int, slid_size: int) -> str:
|
||||||
if slid_size == 4:
|
if slid_size == 4:
|
||||||
fmt = f"0x{slid:08X}"
|
fmt = f"0x{slid:08X}"
|
||||||
|
@ -47,6 +49,7 @@ def format_slid(slid: int, slid_size: int) -> str:
|
||||||
fmt = f"0x{slid:016X}"
|
fmt = f"0x{slid:016X}"
|
||||||
return fmt
|
return fmt
|
||||||
|
|
||||||
|
|
||||||
def repl():
|
def repl():
|
||||||
while True:
|
while True:
|
||||||
sym_name = input("Symbol name? ")
|
sym_name = input("Symbol name? ")
|
||||||
|
@ -56,6 +59,7 @@ def repl():
|
||||||
print(f" 64-bit SLID for '{sym_name}': {format_slid(slid64, 8)}")
|
print(f" 64-bit SLID for '{sym_name}': {format_slid(slid64, 8)}")
|
||||||
print()
|
print()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
print("LLEXT SLID calculation REPL")
|
print("LLEXT SLID calculation REPL")
|
||||||
print("Press ^C to exit.")
|
print("Press ^C to exit.")
|
||||||
|
|
|
@ -4,9 +4,11 @@
|
||||||
import struct
|
import struct
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
print(struct.calcsize("P") * 8)
|
print(struct.calcsize("P") * 8)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -11,6 +11,7 @@ from gdbstubs.arch.risc_v import GdbStub_RISC_V
|
||||||
from gdbstubs.arch.xtensa import GdbStub_Xtensa
|
from gdbstubs.arch.xtensa import GdbStub_Xtensa
|
||||||
from gdbstubs.arch.arm64 import GdbStub_ARM64
|
from gdbstubs.arch.arm64 import GdbStub_ARM64
|
||||||
|
|
||||||
|
|
||||||
class TgtCode:
|
class TgtCode:
|
||||||
UNKNOWN = 0
|
UNKNOWN = 0
|
||||||
X86 = 1
|
X86 = 1
|
||||||
|
@ -20,6 +21,7 @@ class TgtCode:
|
||||||
XTENSA = 5
|
XTENSA = 5
|
||||||
ARM64 = 6
|
ARM64 = 6
|
||||||
|
|
||||||
|
|
||||||
def get_gdbstub(logfile, elffile):
|
def get_gdbstub(logfile, elffile):
|
||||||
stub = None
|
stub = None
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@ setuptools.setup(
|
||||||
# TBD, just use these for now.
|
# TBD, just use these for now.
|
||||||
author='Zephyr Project',
|
author='Zephyr Project',
|
||||||
author_email='devel@lists.zephyrproject.org',
|
author_email='devel@lists.zephyrproject.org',
|
||||||
|
|
||||||
name='devicetree',
|
name='devicetree',
|
||||||
version=version,
|
version=version,
|
||||||
description='Python libraries for devicetree',
|
description='Python libraries for devicetree',
|
||||||
|
|
|
@ -11,12 +11,14 @@ Parser library for Dictionary-based Logging
|
||||||
This library along with dictionary_parser converts the
|
This library along with dictionary_parser converts the
|
||||||
input binary data to the log using log database.
|
input binary data to the log using log database.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import dictionary_parser
|
import dictionary_parser
|
||||||
from dictionary_parser.log_database import LogDatabase
|
from dictionary_parser.log_database import LogDatabase
|
||||||
|
|
||||||
|
|
||||||
def parser(logdata, dbfile, logger):
|
def parser(logdata, dbfile, logger):
|
||||||
"""function of serial parser"""
|
"""function of serial parser"""
|
||||||
# Read from database file
|
# Read from database file
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
"""
|
"""
|
||||||
Simply mock for bash script to use with unit tests.
|
Simply mock for bash script to use with unit tests.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
"""
|
"""
|
||||||
Simple shell simulator.
|
Simple shell simulator.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from zen_of_python import zen_of_python
|
from zen_of_python import zen_of_python
|
||||||
|
|
|
@ -3,5 +3,6 @@
|
||||||
# Copyright (c) 2018 Intel Corporation
|
# Copyright (c) 2018 Intel Corporation
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
|
||||||
class DisablePyTestCollectionMixin(object):
|
class DisablePyTestCollectionMixin(object):
|
||||||
__test__ = False
|
__test__ = False
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from twisterlib.mixins import DisablePyTestCollectionMixin
|
from twisterlib.mixins import DisablePyTestCollectionMixin
|
||||||
|
|
||||||
|
|
||||||
class TestClassToIgnore(DisablePyTestCollectionMixin):
|
class TestClassToIgnore(DisablePyTestCollectionMixin):
|
||||||
def test_to_ignore(self):
|
def test_to_ignore(self):
|
||||||
assert False
|
assert False
|
||||||
|
|
|
@ -41,6 +41,7 @@ TEST_CASES = [
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tc", TEST_CASES)
|
@pytest.mark.parametrize("tc", TEST_CASES)
|
||||||
@patch("runners.xsdb.os.path.exists", return_value=True)
|
@patch("runners.xsdb.os.path.exists", return_value=True)
|
||||||
@patch("runners.xsdb.XSDBBinaryRunner.check_call")
|
@patch("runners.xsdb.XSDBBinaryRunner.check_call")
|
||||||
|
@ -59,6 +60,7 @@ def test_xsdbbinaryrunner_init(check_call, path_exists, tc, runner_config):
|
||||||
|
|
||||||
assert check_call.call_args_list == [call(tc["expected_cmd"])]
|
assert check_call.call_args_list == [call(tc["expected_cmd"])]
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tc", TEST_CASES)
|
@pytest.mark.parametrize("tc", TEST_CASES)
|
||||||
@patch("runners.xsdb.os.path.exists", return_value=True)
|
@patch("runners.xsdb.os.path.exists", return_value=True)
|
||||||
@patch("runners.xsdb.XSDBBinaryRunner.check_call")
|
@patch("runners.xsdb.XSDBBinaryRunner.check_call")
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
from west import log
|
from west import log
|
||||||
|
|
||||||
|
|
||||||
# Parse a CMakeCache file and return a dict of key:value (discarding
|
# Parse a CMakeCache file and return a dict of key:value (discarding
|
||||||
# type hints).
|
# type hints).
|
||||||
def parseCMakeCacheFile(filePath):
|
def parseCMakeCacheFile(filePath):
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
|
|
||||||
# DocumentConfig contains settings used to configure how the SPDX Document
|
# DocumentConfig contains settings used to configure how the SPDX Document
|
||||||
# should be built.
|
# should be built.
|
||||||
class DocumentConfig:
|
class DocumentConfig:
|
||||||
|
@ -20,6 +21,7 @@ class DocumentConfig:
|
||||||
# docs will use to refer to this one
|
# docs will use to refer to this one
|
||||||
self.docRefID = ""
|
self.docRefID = ""
|
||||||
|
|
||||||
|
|
||||||
# Document contains the data assembled by the SBOM builder, to be used to
|
# Document contains the data assembled by the SBOM builder, to be used to
|
||||||
# create the actual SPDX Document.
|
# create the actual SPDX Document.
|
||||||
class Document:
|
class Document:
|
||||||
|
@ -56,6 +58,7 @@ class Document:
|
||||||
# written to disk, so that others can refer to it
|
# written to disk, so that others can refer to it
|
||||||
self.myDocSHA1 = ""
|
self.myDocSHA1 = ""
|
||||||
|
|
||||||
|
|
||||||
# PackageConfig contains settings used to configure how an SPDX Package should
|
# PackageConfig contains settings used to configure how an SPDX Package should
|
||||||
# be built.
|
# be built.
|
||||||
class PackageConfig:
|
class PackageConfig:
|
||||||
|
@ -95,6 +98,7 @@ class PackageConfig:
|
||||||
# may want to note this in a Package comment field
|
# may want to note this in a Package comment field
|
||||||
self.relativeBaseDir = ""
|
self.relativeBaseDir = ""
|
||||||
|
|
||||||
|
|
||||||
# Package contains the data assembled by the SBOM builder, to be used to
|
# Package contains the data assembled by the SBOM builder, to be used to
|
||||||
# create the actual SPDX Package.
|
# create the actual SPDX Package.
|
||||||
class Package:
|
class Package:
|
||||||
|
@ -131,6 +135,7 @@ class Package:
|
||||||
# If this Package was a target, which File was its main build product?
|
# If this Package was a target, which File was its main build product?
|
||||||
self.targetBuildFile = None
|
self.targetBuildFile = None
|
||||||
|
|
||||||
|
|
||||||
# RelationshipDataElementType defines whether a RelationshipData element
|
# RelationshipDataElementType defines whether a RelationshipData element
|
||||||
# (e.g., the "owner" or the "other" element) is a File, a target Package,
|
# (e.g., the "owner" or the "other" element) is a File, a target Package,
|
||||||
# a Package's ID (as other only, and only where owner type is DOCUMENT),
|
# a Package's ID (as other only, and only where owner type is DOCUMENT),
|
||||||
|
@ -142,6 +147,7 @@ class RelationshipDataElementType(Enum):
|
||||||
PACKAGEID = 3
|
PACKAGEID = 3
|
||||||
DOCUMENT = 4
|
DOCUMENT = 4
|
||||||
|
|
||||||
|
|
||||||
# RelationshipData contains the pre-analysis data about a relationship between
|
# RelationshipData contains the pre-analysis data about a relationship between
|
||||||
# Files and/or Packages/targets. It is eventually parsed into a corresponding
|
# Files and/or Packages/targets. It is eventually parsed into a corresponding
|
||||||
# Relationship after we have organized the SPDX Package and File data.
|
# Relationship after we have organized the SPDX Package and File data.
|
||||||
|
@ -179,6 +185,7 @@ class RelationshipData:
|
||||||
# from table 68 in section 11.1 of SPDX spec v2.3
|
# from table 68 in section 11.1 of SPDX spec v2.3
|
||||||
self.rlnType = ""
|
self.rlnType = ""
|
||||||
|
|
||||||
|
|
||||||
# Relationship contains the post-analysis, processed data about a relationship
|
# Relationship contains the post-analysis, processed data about a relationship
|
||||||
# in a form suitable for creating the actual SPDX Relationship in a particular
|
# in a form suitable for creating the actual SPDX Relationship in a particular
|
||||||
# Document's context.
|
# Document's context.
|
||||||
|
@ -198,6 +205,7 @@ class Relationship:
|
||||||
# from table 68 in section 11.1 of SPDX spec v2.3
|
# from table 68 in section 11.1 of SPDX spec v2.3
|
||||||
self.rlnType = ""
|
self.rlnType = ""
|
||||||
|
|
||||||
|
|
||||||
# File contains the data needed to create a File element in the context of a
|
# File contains the data needed to create a File element in the context of a
|
||||||
# particular SPDX Document and Package.
|
# particular SPDX Document and Package.
|
||||||
class File:
|
class File:
|
||||||
|
|
|
@ -6,6 +6,7 @@ from subprocess import run, PIPE
|
||||||
|
|
||||||
from west import log
|
from west import log
|
||||||
|
|
||||||
|
|
||||||
# Given a path to the applicable C compiler, a C source file, and the
|
# Given a path to the applicable C compiler, a C source file, and the
|
||||||
# corresponding TargetCompileGroup, determine which include files would
|
# corresponding TargetCompileGroup, determine which include files would
|
||||||
# be used.
|
# be used.
|
||||||
|
@ -37,6 +38,7 @@ def getCIncludes(compilerPath, srcFile, tcg):
|
||||||
# response will be in cp.stderr, not cp.stdout
|
# response will be in cp.stderr, not cp.stdout
|
||||||
return extractIncludes(cp.stderr)
|
return extractIncludes(cp.stderr)
|
||||||
|
|
||||||
|
|
||||||
# Parse the response from the CC -E -H call, to extract the include file paths
|
# Parse the response from the CC -E -H call, to extract the include file paths
|
||||||
def extractIncludes(resp):
|
def extractIncludes(resp):
|
||||||
includes = set()
|
includes = set()
|
||||||
|
|
|
@ -10,6 +10,7 @@ from zspdx.walker import WalkerConfig, Walker
|
||||||
from zspdx.scanner import ScannerConfig, scanDocument
|
from zspdx.scanner import ScannerConfig, scanDocument
|
||||||
from zspdx.writer import writeSPDX
|
from zspdx.writer import writeSPDX
|
||||||
|
|
||||||
|
|
||||||
# SBOMConfig contains settings that will be passed along to the various
|
# SBOMConfig contains settings that will be passed along to the various
|
||||||
# SBOM maker subcomponents.
|
# SBOM maker subcomponents.
|
||||||
class SBOMConfig:
|
class SBOMConfig:
|
||||||
|
@ -31,6 +32,7 @@ class SBOMConfig:
|
||||||
# should also add an SPDX document for the SDK?
|
# should also add an SPDX document for the SDK?
|
||||||
self.includeSDK = False
|
self.includeSDK = False
|
||||||
|
|
||||||
|
|
||||||
# create Cmake file-based API directories and query file
|
# create Cmake file-based API directories and query file
|
||||||
# Arguments:
|
# Arguments:
|
||||||
# 1) build_dir: build directory
|
# 1) build_dir: build directory
|
||||||
|
@ -60,6 +62,7 @@ def setupCmakeQuery(build_dir):
|
||||||
cm_fd.close()
|
cm_fd.close()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
# main entry point for SBOM maker
|
# main entry point for SBOM maker
|
||||||
# Arguments:
|
# Arguments:
|
||||||
# 1) cfg: SBOMConfig
|
# 1) cfg: SBOMConfig
|
||||||
|
|
|
@ -11,6 +11,7 @@ from west import log
|
||||||
from zspdx.licenses import LICENSES
|
from zspdx.licenses import LICENSES
|
||||||
from zspdx.util import getHashes
|
from zspdx.util import getHashes
|
||||||
|
|
||||||
|
|
||||||
# ScannerConfig contains settings used to configure how the SPDX
|
# ScannerConfig contains settings used to configure how the SPDX
|
||||||
# Document scanning should occur.
|
# Document scanning should occur.
|
||||||
class ScannerConfig:
|
class ScannerConfig:
|
||||||
|
@ -36,6 +37,7 @@ class ScannerConfig:
|
||||||
# should we calculate MD5 hashes for each Package's Files?
|
# should we calculate MD5 hashes for each Package's Files?
|
||||||
self.doMD5 = False
|
self.doMD5 = False
|
||||||
|
|
||||||
|
|
||||||
def parseLineForExpression(line):
|
def parseLineForExpression(line):
|
||||||
"""Return parsed SPDX expression if tag found in line, or None otherwise."""
|
"""Return parsed SPDX expression if tag found in line, or None otherwise."""
|
||||||
p = line.partition("SPDX-License-Identifier:")
|
p = line.partition("SPDX-License-Identifier:")
|
||||||
|
@ -47,6 +49,7 @@ def parseLineForExpression(line):
|
||||||
expression = expression.strip()
|
expression = expression.strip()
|
||||||
return expression
|
return expression
|
||||||
|
|
||||||
|
|
||||||
def getExpressionData(filePath, numLines):
|
def getExpressionData(filePath, numLines):
|
||||||
"""
|
"""
|
||||||
Scans the specified file for the first SPDX-License-Identifier:
|
Scans the specified file for the first SPDX-License-Identifier:
|
||||||
|
@ -77,6 +80,7 @@ def getExpressionData(filePath, numLines):
|
||||||
# if we get here, we didn't find an expression
|
# if we get here, we didn't find an expression
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def splitExpression(expression):
|
def splitExpression(expression):
|
||||||
"""
|
"""
|
||||||
Parse a license expression into its constituent identifiers.
|
Parse a license expression into its constituent identifiers.
|
||||||
|
@ -96,6 +100,7 @@ def splitExpression(expression):
|
||||||
|
|
||||||
return sorted(e4)
|
return sorted(e4)
|
||||||
|
|
||||||
|
|
||||||
def calculateVerificationCode(pkg):
|
def calculateVerificationCode(pkg):
|
||||||
"""
|
"""
|
||||||
Calculate the SPDX Package Verification Code for all files in the package.
|
Calculate the SPDX Package Verification Code for all files in the package.
|
||||||
|
@ -114,6 +119,7 @@ def calculateVerificationCode(pkg):
|
||||||
hSHA1.update(filelist.encode('utf-8'))
|
hSHA1.update(filelist.encode('utf-8'))
|
||||||
return hSHA1.hexdigest()
|
return hSHA1.hexdigest()
|
||||||
|
|
||||||
|
|
||||||
def checkLicenseValid(lic, doc):
|
def checkLicenseValid(lic, doc):
|
||||||
"""
|
"""
|
||||||
Check whether this license ID is a valid SPDX license ID, and add it
|
Check whether this license ID is a valid SPDX license ID, and add it
|
||||||
|
@ -126,6 +132,7 @@ def checkLicenseValid(lic, doc):
|
||||||
if lic not in LICENSES:
|
if lic not in LICENSES:
|
||||||
doc.customLicenseIDs.add(lic)
|
doc.customLicenseIDs.add(lic)
|
||||||
|
|
||||||
|
|
||||||
def getPackageLicenses(pkg):
|
def getPackageLicenses(pkg):
|
||||||
"""
|
"""
|
||||||
Extract lists of all concluded and infoInFile licenses seen.
|
Extract lists of all concluded and infoInFile licenses seen.
|
||||||
|
@ -143,6 +150,7 @@ def getPackageLicenses(pkg):
|
||||||
licsFromFiles.add(licInfo)
|
licsFromFiles.add(licInfo)
|
||||||
return sorted(list(licsConcluded)), sorted(list(licsFromFiles))
|
return sorted(list(licsConcluded)), sorted(list(licsFromFiles))
|
||||||
|
|
||||||
|
|
||||||
def normalizeExpression(licsConcluded):
|
def normalizeExpression(licsConcluded):
|
||||||
"""
|
"""
|
||||||
Combine array of license expressions into one AND'd expression,
|
Combine array of license expressions into one AND'd expression,
|
||||||
|
@ -170,6 +178,7 @@ def normalizeExpression(licsConcluded):
|
||||||
revised.append(lic)
|
revised.append(lic)
|
||||||
return " AND ".join(revised)
|
return " AND ".join(revised)
|
||||||
|
|
||||||
|
|
||||||
def scanDocument(cfg, doc):
|
def scanDocument(cfg, doc):
|
||||||
"""
|
"""
|
||||||
Scan for licenses and calculate hashes for all Files and Packages
|
Scan for licenses and calculate hashes for all Files and Packages
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
||||||
def getSPDXIDSafeCharacter(c):
|
def getSPDXIDSafeCharacter(c):
|
||||||
"""
|
"""
|
||||||
Converts a character to an SPDX-ID-safe character.
|
Converts a character to an SPDX-ID-safe character.
|
||||||
|
@ -17,6 +18,7 @@ def getSPDXIDSafeCharacter(c):
|
||||||
return c
|
return c
|
||||||
return "-"
|
return "-"
|
||||||
|
|
||||||
|
|
||||||
def convertToSPDXIDSafe(s):
|
def convertToSPDXIDSafe(s):
|
||||||
"""
|
"""
|
||||||
Converts a filename or other string to only SPDX-ID-safe characters.
|
Converts a filename or other string to only SPDX-ID-safe characters.
|
||||||
|
@ -30,6 +32,7 @@ def convertToSPDXIDSafe(s):
|
||||||
"""
|
"""
|
||||||
return "".join([getSPDXIDSafeCharacter(c) for c in s])
|
return "".join([getSPDXIDSafeCharacter(c) for c in s])
|
||||||
|
|
||||||
|
|
||||||
def getUniqueFileID(filenameOnly, timesSeen):
|
def getUniqueFileID(filenameOnly, timesSeen):
|
||||||
"""
|
"""
|
||||||
Find an SPDX ID that is unique among others seen so far.
|
Find an SPDX ID that is unique among others seen so far.
|
||||||
|
|
|
@ -6,6 +6,7 @@ import hashlib
|
||||||
|
|
||||||
from west import log
|
from west import log
|
||||||
|
|
||||||
|
|
||||||
def getHashes(filePath):
|
def getHashes(filePath):
|
||||||
"""
|
"""
|
||||||
Scan for and return hashes.
|
Scan for and return hashes.
|
||||||
|
|
|
@ -6,19 +6,23 @@ import pytest
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
def pytest_addoption(parser):
|
def pytest_addoption(parser):
|
||||||
parser.addoption('--tool')
|
parser.addoption('--tool')
|
||||||
parser.addoption('--tool-options')
|
parser.addoption('--tool-options')
|
||||||
parser.addoption('--sys-clock-hw-cycles-per-sec', default=None)
|
parser.addoption('--sys-clock-hw-cycles-per-sec', default=None)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def tool(request):
|
def tool(request):
|
||||||
return request.config.getoption('--tool')
|
return request.config.getoption('--tool')
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def tool_options(request):
|
def tool_options(request):
|
||||||
return request.config.getoption('--tool-options')
|
return request.config.getoption('--tool-options')
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def config(request):
|
def config(request):
|
||||||
build_dir = Path(request.config.getoption('--build-dir'))
|
build_dir = Path(request.config.getoption('--build-dir'))
|
||||||
|
@ -33,6 +37,7 @@ def config(request):
|
||||||
|
|
||||||
return cfgs
|
return cfgs
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def sys_clock_hw_cycles_per_sec(request, config):
|
def sys_clock_hw_cycles_per_sec(request, config):
|
||||||
if request.config.getoption('--sys-clock-hw-cycles-per-sec'):
|
if request.config.getoption('--sys-clock-hw-cycles-per-sec'):
|
||||||
|
|
|
@ -4,14 +4,17 @@
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
def pytest_addoption(parser):
|
def pytest_addoption(parser):
|
||||||
parser.addoption('--server-type')
|
parser.addoption('--server-type')
|
||||||
parser.addoption('--port')
|
parser.addoption('--port')
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def server_type(request):
|
def server_type(request):
|
||||||
return request.config.getoption('--server-type')
|
return request.config.getoption('--server-type')
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def port(request):
|
def port(request):
|
||||||
return request.config.getoption('--port')
|
return request.config.getoption('--port')
|
||||||
|
|
|
@ -6,20 +6,26 @@
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
def pytest_addoption(parser):
|
def pytest_addoption(parser):
|
||||||
parser.addoption('--gdb_target_remote')
|
parser.addoption('--gdb_target_remote')
|
||||||
parser.addoption('--gdb_timeout')
|
parser.addoption('--gdb_timeout')
|
||||||
parser.addoption('--gdb_script')
|
parser.addoption('--gdb_script')
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def gdb_script(request):
|
def gdb_script(request):
|
||||||
return request.config.getoption('--gdb_script')
|
return request.config.getoption('--gdb_script')
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def gdb_timeout(request):
|
def gdb_timeout(request):
|
||||||
return int(request.config.getoption('--gdb_timeout', default=60))
|
return int(request.config.getoption('--gdb_timeout', default=60))
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def gdb_target_remote(request):
|
def gdb_target_remote(request):
|
||||||
return request.config.getoption('--gdb_target_remote', default=":5678")
|
return request.config.getoption('--gdb_target_remote', default=":5678")
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -6,9 +6,11 @@
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
def pytest_addoption(parser):
|
def pytest_addoption(parser):
|
||||||
parser.addoption('--fpu', action="store_true")
|
parser.addoption('--fpu', action="store_true")
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def is_fpu_build(request):
|
def is_fpu_build(request):
|
||||||
return request.config.getoption('--fpu')
|
return request.config.getoption('--fpu')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue