This is an automated email from the ASF dual-hosted git repository. linguini pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nuttx-ntfc.git
commit 09c4d7f38ae78eb3c89314cfeb46f5d177620e62 Merge: 70ca236 3e00ab1 Author: Matteo Golin <[email protected]> AuthorDate: Tue Mar 31 13:05:23 2026 -0400 Merge pull request #1 from szafonimateusz-mi/main bring in NTFC code .asf.yaml | 15 + .coveragerc | 27 + .github/workflows/master.yml | 48 + .gitignore | 20 + CONTRIBUTING.md | 134 ++ Documentation/.gitignore | 4 + Documentation/Makefile | 20 + Documentation/_static/.gitkeep | 1 + Documentation/api.rst | 56 + Documentation/components.pu | 17 + Documentation/conf.py | 70 + Documentation/config-yaml.rst | 403 +++++ Documentation/config.yaml | 126 ++ Documentation/index.rst | 26 + Documentation/multi-session.rst | 177 ++ Documentation/ntfc.yaml | 8 + Documentation/parsers.rst | 336 ++++ Documentation/quickstart.rst | 116 ++ Documentation/report.rst | 86 + Documentation/requirements.txt | 5 + Documentation/session-json.rst | 135 ++ Documentation/session.json | 34 + Documentation/usage.rst | 250 +++ Documentation/writing-test-cases.rst | 512 ++++++ LICENSE | 201 +++ README.md | 120 +- config/nuttx-build-qemu-sim-ntfc.yaml | 86 + config/nuttx-custom-serial.yaml | 15 + config/nuttx-custom-sim.yaml | 12 + config/nuttx-nrf5340-all.yaml | 33 + config/nuttx-nucleo-h743zi.yaml | 16 + config/nuttx-nucleo-h745zi.yaml | 29 + config/nuttx-qemu-armv7a.yaml | 18 + config/nuttx-qemu-armv7r.yaml | 17 + config/nuttx-qemu-armv8a.yaml | 18 + config/nuttx-qemu-riscv-rv-virt-64.yaml | 15 + config/nuttx-qemu-x86_64.yaml | 15 + config/nuttx-sim.yaml | 13 + external/README.md | 17 + pyproject.toml | 68 + src/ntfc/__init__.py | 26 + src/ntfc/__main__.py | 25 + src/ntfc/builder.py | 479 ++++++ src/ntfc/cli/clitypes.py | 77 + src/ntfc/cli/environment.py | 90 + src/ntfc/cli/main.py | 393 +++++ src/ntfc/command_builder.py | 280 ++++ src/ntfc/commands/cmd_build.py | 49 + src/ntfc/commands/cmd_collect.py | 64 + src/ntfc/commands/cmd_test.py | 187 +++ src/ntfc/core.py | 593 +++++++ src/ntfc/coreconfig.py | 156 ++ src/ntfc/cores.py | 292 ++++ src/ntfc/device/cmds.py | 67 + src/ntfc/device/common.py | 519 ++++++ src/ntfc/device/getdev.py | 57 + src/ntfc/device/getos.py | 39 + src/ntfc/device/heartbeat.py | 336 ++++ src/ntfc/device/host.py | 187 +++ src/ntfc/device/nuttx.py | 107 ++ src/ntfc/device/oscommon.py | 75 + src/ntfc/device/qemu.py | 97 ++ src/ntfc/device/serial.py | 201 +++ src/ntfc/device/sim.py | 75 + src/ntfc/device/state.py | 386 +++++ src/ntfc/envconfig.py | 148 ++ src/ntfc/ext_commands.py | 36 + src/ntfc/lib/elf/elf_parser.py | 129 ++ src/ntfc/lib/performance/perf_data_process.py | 358 ++++ src/ntfc/lib/performance/sqllite_lib.py | 79 + src/ntfc/log.yaml | 33 + src/ntfc/log/handler.py | 78 + src/ntfc/log/logger.py | 29 + src/ntfc/log/manager.py | 215 +++ src/ntfc/log/report.py | 445 +++++ src/ntfc/log/templates/module_report.html | 171 ++ src/ntfc/multi.py | 711 ++++++++ src/ntfc/parallel.py | 44 + src/ntfc/parsers/base.py | 173 ++ src/ntfc/parsers/cmocka.py | 171 ++ src/ntfc/parsers/custom.py | 270 +++ src/ntfc/parsers/gtest.py | 161 ++ src/ntfc/plugins_loader.py | 45 + src/ntfc/product.py | 171 ++ src/ntfc/productconfig.py | 199 +++ src/ntfc/products.py | 216 +++ src/ntfc/pytest/collected.py | 75 + src/ntfc/pytest/collecteditem.py | 100 ++ src/ntfc/pytest/collector.py | 209 +++ src/ntfc/pytest/configure.py | 397 +++++ src/ntfc/pytest/formatters.py | 128 ++ src/ntfc/pytest/gtest_plugin.py | 138 ++ src/ntfc/pytest/mypytest.py | 403 +++++ src/ntfc/pytest/parsers.py | 290 ++++ src/ntfc/pytest/runner.py | 119 ++ src/ntfc/pytest/signal_plugin.py | 343 ++++ src/ntfc/testfilter.py | 109 ++ src/ntfc/type_defs.py | 25 + tests/cli/test_main.py | 193 +++ tests/cli/test_main_runners.py | 437 +++++ tests/conftest.py | 108 ++ tests/device/test_common.py | 291 ++++ tests/device/test_getdev.py | 48 + tests/device/test_host.py | 194 +++ tests/device/test_nuttx.py | 49 + tests/device/test_qemu.py | 121 ++ tests/device/test_serial.py | 139 ++ tests/device/test_sim.py | 103 ++ tests/device/test_state.py | 268 +++ tests/dummydev.py | 134 ++ tests/lib/test_elfparser.py | 48 + tests/log/test_handler.py | 119 ++ tests/log/test_manager.py | 424 +++++ tests/log/test_report.py | 481 ++++++ tests/parsers/test_base.py | 204 +++ tests/parsers/test_cmocka.py | 209 +++ tests/parsers/test_custom.py | 325 ++++ tests/parsers/test_gtest.py | 215 +++ tests/pytest/test_collected.py | 32 + tests/pytest/test_collecteditem.py | 36 + tests/pytest/test_collector.py | 108 ++ tests/pytest/test_configure.py | 618 +++++++ tests/pytest/test_gtest_plugin.py | 230 +++ tests/pytest/test_mypytest.py | 251 +++ tests/pytest/test_parser_plugin.py | 488 ++++++ tests/pytest/test_runner.py | 86 + tests/pytest/test_signal_plugin.py | 437 +++++ tests/resources/multi/config.yaml | 9 + tests/resources/multi/manifest.yaml | 7 + tests/resources/nuttx/sim/config.yaml | 44 + tests/resources/nuttx/sim/config_build.yaml | 43 + tests/resources/nuttx/sim/config_simple.yaml | 12 + tests/resources/nuttx/sim/config_smp.yaml | 25 + tests/resources/nuttx/sim/kv_config | 1764 ++++++++++++++++++++ tests/resources/nuttx/sim/module_exclude.json | 13 + tests/resources/nuttx/sim/module_include.json | 10 + tests/resources/nuttx/sim/nuttx | Bin 0 -> 4170800 bytes tests/resources/tests_collect/test_test1.py | 27 + tests/resources/tests_collect/test_test2.py | 27 + tests/resources/tests_collect/test_test3.py | 31 + tests/resources/tests_collect/test_test4.py | 46 + tests/resources/tests_dirs/ntfc.yaml | 3 + tests/resources/tests_dirs/test1/test_testdir1.py | 27 + tests/resources/tests_dirs/test2/test_testdir2.py | 27 + tests/resources/tests_dirs/test2/test_testdir3.py | 27 + .../tests_dirs/test3/test4/test_testdir4.py | 27 + tests/resources/tests_exitcode/test_empty.py | 23 + tests/resources/tests_exitcode/test_fail.py | 23 + tests/resources/tests_exitcode/test_success.py | 23 + tests/resources/tests_smp/test_test1.py | 40 + tests/resources/tests_smp/test_test2.py | 23 + tests/resources/yaml_configs/01-base.yaml | 15 + tests/resources/yaml_configs/02-multicore.yaml | 8 + tests/resources/yaml_configs/03-overrides.yaml | 6 + tests/resources/yaml_configs/dummy.txt | 1 + tests/test_builder.py | 486 ++++++ tests/test_command_builder.py | 215 +++ tests/test_core.py | 597 +++++++ tests/test_coreconfig.py | 114 ++ tests/test_cores.py | 133 ++ tests/test_envconfig.py | 184 ++ tests/test_filtertest.py | 68 + tests/test_heartbeat.py | 532 ++++++ tests/test_multi.py | 1147 +++++++++++++ tests/test_parallel.py | 50 + tests/test_product.py | 58 + tests/test_productconfig.py | 250 +++ tests/test_products.py | 124 ++ tests/test_vtfc.py | 28 + tox.ini | 117 ++ typings/pytest/__init__.pyi | 38 + 171 files changed, 27261 insertions(+), 1 deletion(-)
