dawnpy-tests
Dawn’s QA and test orchestration package. Exposes the standalone
dawnpy-tests CLI - the single entry point for the QA pipeline that
must pass before any code change is committed.
This is also where the QA runner lives that other documentation pages (notably QA) link back to.
Source: github.com/railab/dawnpy-tests
Installation
Requires the core dawnpy package plus all transport extensions -
dawnpy-tests depends on the full communication feature surface
because the integration suites exercise every transport:
pip install -e tools/dawnpy
pip install -e tools/dawnpy-serial \
tools/dawnpy-can \
tools/dawnpy-udp \
tools/dawnpy-modbus
pip install -e tools/dawnpy-tests
Direct dependencies (installed automatically): dawnpy,
dawnpy-serial, dawnpy-can, dawnpy-udp, dawnpy-modbus,
click >= 8.1, ntfc >= 0.0.2.
Command
dawnpy-tests
dawnpy-tests -j 8
dawnpy-tests --test-timeout 120
dawnpy-tests --ntfc-only
dawnpy-tests --skip-ntfc
dawnpy-tests --size-only
dawnpy-tests --help
Common options:
-c/--config-file PATH: batch build configuration file. Defaults totools/config-build-all.txt.--build-root PATH: root directory for build directories. Defaults tobuild.--test-build-dir NAME: simulator test build directory under--build-root. Defaults tobuild-sim-sim-tests.--test-timeout SECONDS: simulator test timeout. Defaults to60.-j/--jobs N: number of parallel build jobs.-v/--verbose: enable verbose runner output.--batch-only: run only batch build and build size analysis.--skip-ntfc: skip NTFC tox and integration test steps.--ntfc-only: run only NTFC tox and integration test steps.--ntfc-list PATH: NTFC manifest YAML file. Defaults tontfc/manifest-host.yaml.--size-only: run only build size analysis, building missing configurations first.--debug/--no-debug: enable verbose logging.
Pipeline
The runner executes the following steps in order:
Code format check - runs
tools/scripts/check-format.sh fix, auto-fixing C/C++ formatting in-place.cppcheck - runs
tools/scripts/cppcheck.shstatic analysis.NTFC tox checks - runs
tox -c ntfc/tox.iniunless NTFC is skipped.Build all configurations - compiles every board/config listed in
tools/config-build-all.txt. Supports-j Nfor parallel builds.Simulator unit tests - runs the
nuttxbinary from the simulator test build directory. See Unit Tests.NTFC integration tests - runs each entry from the active NTFC manifest. The default manifest is
ntfc/manifest-host.yaml. See NTFC Integration Tests.Build size analysis - reports ARM binary memory usage for tracked configurations. Regression visibility only, not a pass/fail gate.
Required Outcome
All steps must pass. No exceptions.
Formatting must be clean after auto-fix.
cppcheck must pass.
NTFC tox checks must pass when NTFC is enabled.
Every configuration in
tools/config-build-all.txtmust compile.All unit tests must pass with no failures.
All active NTFC manifest entries must pass.
If any step fails, fix the issue and re-run the full suite before
committing. The runner depends on host facilities prepared by
testenv_init.sh; see QA for prerequisites.
Tests (the runner’s own tox suite)
The package itself is also tested with tox:
cd tools/dawnpy-tests && tox
tox -e py # tests + coverage
tox -e format # formatting check
tox -e flake8 # linting
tox -e type # type checking