Hosam-Eldin Mostafa 90be834102 refactor: retire LIN API generator (move to deprecated/)
With AlmTester now the single contributor-facing API, the generator at
``scripts/gen_lin_api.py`` and its output at
``tests/hardware/_generated/`` have no live consumer — the previous
commit inlined the enum classes they used to provide into
``tests/hardware/alm_helpers.py``.

Moves both to ``deprecated/`` rather than deleting outright. The
deprecated layout is self-describing:

    deprecated/
      README.md          — retirement rationale + revival instructions
      gen_lin_api.py     — was scripts/gen_lin_api.py
      _generated/
        __init__.py
        lin_api.py       — last-emitted typed frame classes + IntEnums

A note in deprecated/README.md spells out the conditions that would
make reviving the generator worthwhile (a second ECU joins, the LDF
churns fast enough to make hand-syncing miss changes, mypy-in-CI gets
adopted) and the exact command to regenerate.

Docs:

- 22_generated_lin_api.md now leads with a retired-layer banner. The
  body is preserved as the design-of-record for the historical layer.
- 05_architecture_overview.md gets a refreshed "Test-side layering"
  Mermaid (AlmTester → FrameIO → LinInterface) plus a "retired layer"
  bullet pointing at deprecated/. The "Three independent entry points"
  section is annotated rather than removed — the gen_lin_api path
  there is now historical reference.

Verified: pytest --collect-only collects 87 tests; 40 unit + mock
tests still pass. The retirement is invisible to the live framework.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 01:24:12 +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)
  23. 23_config_loader_internals.md — How ecu_framework/config/loader.py is implemented: merge semantics, type coercion, schema quirks, and the PSU side-channel
  24. 24_test_wiring.md — How tests are wired to the framework: fixture topology, session lifecycle, the polymorphism boundary on lin, and the playbook for adding a new framework component

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/