|
| 1 | +# Launch configuration and named test runners |
| 2 | + |
| 3 | +Status, 2026-11-06: implemented for candidate 2026.11.6.1. Focused local |
| 4 | +controls pass; final public-dependency and cross-platform CI remain pending. |
| 5 | + |
| 6 | +A consumer choosing a debugger runner needs the configuration of the program |
| 7 | +selected to run. A separate `self env` query may describe a different profile |
| 8 | +or the first leg of a target set instead of its reachable launch leg. The |
| 9 | +launch producer already holds the selected build context and can describe it |
| 10 | +without another planning protocol. |
| 11 | + |
| 12 | +`mcpp.launch.data.configuration` therefore adds `triple`, `profile`, |
| 13 | +`platform` and `runners` to both program and test launch descriptions. |
| 14 | +The first three fields match the build result's configuration. `runners` |
| 15 | +lists nonempty effective named-runner declarations even when no platform is |
| 16 | +active. Older consumers can ignore the additive object; newer consumers test |
| 17 | +for its presence. No device or debugger name acquires core semantics. |
| 18 | + |
| 19 | +`mcpp test --runner <name>` uses the existing named-runner resolver. The same |
| 20 | +choice applies to ordinary test execution, launch description and execution |
| 21 | +of tests from an archive. A missing name is refused, rather than running the |
| 22 | +test directly. `--runner` and `--no-runner` are contradictory and refused. |
| 23 | +Timeouts, output capture, execution-host routing and test verdicts retain |
| 24 | +their existing behavior. The platform or project owns the runner's command. |
| 25 | + |
| 26 | +The IDE can use the additive configuration to choose a platform's `debuggee` |
| 27 | +runner while preserving the selected target and profile, and reject a |
| 28 | +different configuration in the second result. OpenKal platform 0.24 declares |
| 29 | +that runner using existing platform fields. The core contains no OpenKal |
| 30 | +debugger flag, loader path or JIT policy. |
| 31 | + |
| 32 | +The fresh local candidate passes E2E 01, 333, 993 and 936. E2E 993 exercises a |
| 33 | +real named runner, its returned command, ordinary and archived test execution, |
| 34 | +argument preservation and refusals. E2E 936 passes with the inherited |
| 35 | +`NO_COLOR=1` removed; its assertions remain unchanged. The build uses the OS |
| 36 | +0.3 candidate source and does not establish final public installation. |
| 37 | +An actual IDE-backend/core integration additionally passes eleven program |
| 38 | +and test launch checks without a mock. The modified target-set E2E 963 and |
| 39 | +the final packaged editor/runtime checks still require their full scopes. |
0 commit comments