Hosam-Eldin Mostafa 032866bba0 refactor(config): convert config.py to package + detailed loader docs
- Replace ecu_framework/config.py with ecu_framework/config/ package
  (loader.py + __init__.py re-exports). Public surface unchanged — every
  call site already uses 'from ecu_framework.config import ...' which
  works identically for a module and a package. Brings config into the
  same shape as lin/, power/, flashing/.
- Enrich loader.py with module-level design notes (pipeline diagram,
  precedence rationale, "known wart" callout) and inline "why" comments:
  the EcuTestConfig forward-reference quirk, the int(k, 0) hex-key trick,
  _deep_update's mutate-in-place semantics, and the reason the in-memory
  overrides are applied last despite being precedence #1.
- Add docs/23_config_loader_internals.md covering the merge semantics,
  type-coercion philosophy, dataclass ordering quirks, PSU side-channel,
  and the test-surface checklist (four places to touch when adding a
  new config field).
- Fix the now-stale ecu_framework/config.py path in 01_run_sequence.md
  and DEVELOPER_COMMIT_GUIDE.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 19:42:35 +02:00
..
2026-04-28 23:47:17 +02:00
2026-04-29 00:56:07 +02:00

Documentation Index

A guided tour of the ECU testing framework. Start here:

  1. 01_run_sequence.md — End-to-end run sequence and call flow
  2. 02_configuration_resolution.md — How configuration is loaded and merged
  3. 03_reporting_and_metadata.md — How test documentation becomes report metadata
  4. 11_conftest_plugin_overview.md — Custom pytest plugin: hooks, call sequence, and artifacts
  5. 04_lin_interface_call_flow.md — LIN abstraction and adapter behavior (Mock, MUM, and the deprecated BabyLIN)
  6. 05_architecture_overview.md — High-level architecture and components
  7. 06_requirement_traceability.md — Requirement markers and coverage visuals
  8. 07_flash_sequence.md — ECU flashing workflow and sequence diagram
  9. 08_babylin_internals.md — BabyLIN SDK wrapper internals and call flow (DEPRECATED)
  10. 16_mum_internals.md — MUM (Melexis Universal Master) adapter internals and call flow
  11. 17_ldf_parser.md — LDF parser, ldf fixture, and per-frame pack/unpack helpers
  12. 18_test_catalog.md — Per-test catalog: purpose, markers, hardware needs, expected result
  13. DEVELOPER_COMMIT_GUIDE.md — What to commit vs ignore, commands
  14. 09_raspberry_pi_deployment.md — Run on Raspberry Pi (venv, service, hardware notes)
  15. 10_build_custom_image.md — Build a custom Raspberry Pi OS image with the framework baked in
  16. 12_using_the_framework.md — Practical usage: local, hardware (MUM, or the deprecated BabyLIN), CI, and Pi
  17. 13_unit_testing_guide.md — Unit tests layout, markers, coverage, and tips
  18. 14_power_supply.md — Owon PSU control, configuration, tests, and quick demo script
  19. 15_report_properties_cheatsheet.md — Standardized keys for record_property/rp across suites
  20. 19_frame_io_and_alm_helpers.md — Hardware-test helpers: FrameIO (generic LDF I/O) and AlmTester (ALM_Node domain), plus the tests/hardware/_test_case_template.py starting point
  21. 20_docker_image.md — Containerizing the framework: mock-only CI image, hardware-passthrough image, the Melexis-package obstacle, compose & CI examples
  22. 21_yocto_image_for_raspberry_pi.md — Building a Yocto image that turns a Raspberry Pi into a self-contained test bench (BSP layout, recipes, network/USB config, deploy & maintenance)

Related references:

  • Root project guide: ../README.md
  • Full framework guide: ../TESTING_FRAMEWORK_GUIDE.md
  • BabyLIN placement and integration: ../vendor/README.md (deprecated; only relevant for legacy rigs)
  • MUM source scripts and protocol details: ../vendor/automated_lin_test/README.md
  • PSU quick demo and scripts: ../vendor/Owon/