Problem
#1881 adds VM phpc serve + flash/session flows; #1887 wires VM web-smoke curls. Neither covers AOT:
phpc build --project examples/005-SessionsWeb link
- Two
phpc cgi (or deploy wrapper) invocations with the same PHPSESSID cookie showing persisted $_SESSION
test/unit/SessionBuiltinTest.php exercises VM two-request persistence; make examples-aot-smoke stops at 000–004. Deploy docs (#445) need an honest session row.
session_start is JIT/AOT yes on master (docs/capabilities.md, #1882); session_destroy / session_regenerate_id remain VM-only (#1892).
Goal
When #1881 tree exists and AOT link is green:
test/aot/SessionsWebAotExecuteTest.php (or extend ExamplesCompileTest) — @group llvm + @group aot-link
script/examples-aot-smoke.sh — build 005, run binary twice with cookie jar (POST flash → GET shows message)
- Opt-in gate
SESSIONS_WEB_AOT_SMOKE_GATE in script/ci-defaults.env (default 0 → 1 when stable)
Implementation hints
| Piece |
Path |
Notes |
| Cookie jar |
test/support/CgiCookieJar.php (new or reuse) |
Parse Set-Cookie from first phpc cgi stdout/headers |
| Env |
PHP_COMPILER_SESSION_DIR / temp |
Isolate session files per test run |
| Link |
phpc build --project |
Same manifest style as 004-ApiJson |
| Execute |
PHPC_DEPLOY_ROOT or direct binary |
Mirror 003 MiniWebAppAotExecuteTest CGI overlay |
| Skip |
LlvmToolchain::isReady() |
Same as other @group llvm tests |
Acceptance criteria
SESSIONS_WEB_AOT_SMOKE_GATE=1 ./script/ci-local.sh --filter SessionsWebAot
SESSIONS_WEB_AOT_SMOKE_GATE=1 make examples-aot-smoke # includes 005 when green
Verification (local / Docker only)
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \
SESSIONS_WEB_AOT_SMOKE_GATE=1 vendor/bin/phpunit --filter SessionsWebAot
No GitHub Actions.
Dependencies
Links
Problem
#1881 adds VM
phpc serve+ flash/session flows; #1887 wires VM web-smoke curls. Neither covers AOT:phpc build --project examples/005-SessionsWeblinkphpc cgi(or deploy wrapper) invocations with the samePHPSESSIDcookie showing persisted$_SESSIONtest/unit/SessionBuiltinTest.phpexercises VM two-request persistence;make examples-aot-smokestops at 000–004. Deploy docs (#445) need an honest session row.session_startis JIT/AOT yes on master (docs/capabilities.md, #1882);session_destroy/session_regenerate_idremain VM-only (#1892).Goal
When #1881 tree exists and AOT link is green:
test/aot/SessionsWebAotExecuteTest.php(or extendExamplesCompileTest) —@group llvm+@group aot-linkscript/examples-aot-smoke.sh— build 005, run binary twice with cookie jar (POST flash → GET shows message)SESSIONS_WEB_AOT_SMOKE_GATEinscript/ci-defaults.env(default0→1when stable)Implementation hints
test/support/CgiCookieJar.php(new or reuse)Set-Cookiefrom firstphpc cgistdout/headersPHP_COMPILER_SESSION_DIR/ tempphpc build --projectPHPC_DEPLOY_ROOTor direct binaryMiniWebAppAotExecuteTestCGI overlayLlvmToolchain::isReady()@group llvmtestsAcceptance criteria
SESSIONS_WEB_AOT_SMOKE_GATE=1 ./script/ci-local.sh --filter SessionsWebAot SESSIONS_WEB_AOT_SMOKE_GATE=1 make examples-aot-smoke # includes 005 when green$_SESSIONfrom first without VM fallbackdocs/local-ci-matrix.mdandexamples/README.mdVerification (local / Docker only)
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \ SESSIONS_WEB_AOT_SMOKE_GATE=1 vendor/bin/phpunit --filter SessionsWebAotNo GitHub Actions.
Dependencies
Links
test/unit/SessionBuiltinTest.php