Problem
#470 closed — test/real/ServeTest.php @group miniwebapp PATH_INFO routes pass under phpc serve. #472 stage 2 documents MINIWEBAPP_SERVE_GATE=1, but only script/miniwebapp-gates.sh checks the env var; script/ci-local.sh never reads it.
Full gate contributors expect make test / ci-local to catch serve regressions for 003 without remembering a separate env export.
Goal
When MINIWEBAPP_SERVE_GATE=1 (and loopback bind is allowed — not PHP_COMPILER_SKIP_SERVE_TESTS):
ci-local.sh runs PHPUnit with --filter ServeTest limited to @group miniwebapp, or
- Fails fast if
ServeTest miniwebapp cases are skipped while gate is on.
Default remains off until docs promote stage 2; ROADMAP can flip default after one release.
Implementation hints
| File |
Change |
script/ci-local.sh |
After existing @group serve block, if MINIWEBAPP_SERVE_GATE=1, run vendor/bin/phpunit --filter ServeTest --group miniwebapp |
script/ci-fast.sh |
Optional: same under PHP_COMPILER_SKIP_SERVE_TESTS guard |
script/miniwebapp-gates.sh |
Mark stage 2 [x] when env + ci-local hook exist |
test/unit/CiScriptsTest.php |
Assert ci-local.sh references MINIWEBAPP_SERVE_GATE |
Acceptance criteria
MINIWEBAPP_SERVE_GATE=1 ./script/ci-local.sh --filter ServeTest
# Harness (tar copy if bind-mount empty):
./script/docker-ci-local.sh --filter ServeTest
Serve tests may still skip when loopback bind fails — document alongside #245 / PHP_COMPILER_SKIP_SERVE_TESTS.
No .github/workflows/* required.
Dependencies
Links
Problem
#470 closed —
test/real/ServeTest.php@group miniwebappPATH_INFO routes pass underphpc serve. #472 stage 2 documentsMINIWEBAPP_SERVE_GATE=1, but onlyscript/miniwebapp-gates.shchecks the env var;script/ci-local.shnever reads it.Full gate contributors expect
make test/ci-localto catch serve regressions for 003 without remembering a separate env export.Goal
When
MINIWEBAPP_SERVE_GATE=1(and loopback bind is allowed — notPHP_COMPILER_SKIP_SERVE_TESTS):ci-local.shruns PHPUnit with--filter ServeTestlimited to@group miniwebapp, orServeTestminiwebapp cases are skipped while gate is on.Default remains off until docs promote stage 2; ROADMAP can flip default after one release.
Implementation hints
script/ci-local.sh@group serveblock, ifMINIWEBAPP_SERVE_GATE=1, runvendor/bin/phpunit --filter ServeTest --group miniwebappscript/ci-fast.shPHP_COMPILER_SKIP_SERVE_TESTSguardscript/miniwebapp-gates.sh[x]when env + ci-local hook existtest/unit/CiScriptsTest.phpci-local.shreferencesMINIWEBAPP_SERVE_GATEAcceptance criteria
MINIWEBAPP_SERVE_GATE=1 ./script/ci-local.sh --filter ServeTest # Harness (tar copy if bind-mount empty): ./script/docker-ci-local.sh --filter ServeTestServe tests may still skip when loopback bind fails — document alongside #245 /
PHP_COMPILER_SKIP_SERVE_TESTS.No
.github/workflows/*required.Dependencies
Links
test/real/ServeTest.php(@group miniwebapp)