aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart-test-harness/src/runner.rs
AgeCommit message (Collapse)Author
2026-05-02test(harness): force unreachable proxy for spawned mozartnsfisis
Composer fixtures with inline `package` repositories often set `dist.url` / `source.url` to RFC 2606 placeholders like `https://example.org`. Composer's PHPUnit suite swaps in InstallationManagerMock; Mozart's harness invokes the real binary, so its `reqwest`-based downloader actually hit the network and hung for ~30s per fixture before failing. Setting HTTP_PROXY / HTTPS_PROXY / NO_PROXY on the child process routes every HTTP request through 127.0.0.1:1, which fails the TCP connect immediately. The current 103 green installer tests remain green (resolver short-circuits before download); the ignored update_downgrades_unstable_packages now errors in 0.1s instead of 30s, which is the safety net we want as more inline-package fixtures get unignored. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01feat(registry): accept v1 (bare array) installed.jsonnsfisis
Composer's FilesystemRepository::initialize branches on isset($data['packages']) — object form is v2, bare array is v1 — and treats dev-package-names/dev as optional. Mirror that in InstalledPackages::read so Mozart consumes shared .test fixtures (which use v1) without harness preprocessing, and so installs over v1-era vendor directories keep working. Drop the v1→v2 wrapper that was added to mozart-test-harness for the same reason. Removes #[ignore] from update_to_empty_from_locked (2/187 green). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01feat(test-harness): add Composer .test fixture parser and runnernsfisis
Foundation for porting Composer's installer integration fixtures. Parser covers the 13 sections of InstallerTest.php; runner sets up a tempdir from COMPOSER/LOCK/INSTALLED and invokes the mozart binary. No fixtures are migrated in this commit.