Skip to content

Complete packaged Playground PHPUnit runtime support#1850

Merged
chubes4 merged 4 commits into
mainfrom
fix/phpunit-runtime-packages
Jul 18, 2026
Merged

Complete packaged Playground PHPUnit runtime support#1850
chubes4 merged 4 commits into
mainfrom
fix/phpunit-runtime-packages

Conversation

@chubes4

@chubes4 chubes4 commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • forward PHP version, extension manifests, and backend package options through the PHPUnit recipe builder
  • pass extension manifests to packaged Playground CLI backends
  • expose PHPUnit arguments before project bootstrap so project-owned bootstrap logic can select a testsuite
  • fail closed when structured PHPUnit diagnostics report a bootstrap death despite a zero process exit

Follow-up to #1843 and #1825, discovered while running WPCOM PHPUnit against a locally rebuilt PHP.wasm runtime and Sodium side module.

Backwards compatibility

The builder inputs are additive. Existing PHPUnit recipes retain their current defaults. The diagnostic change only converts previously false-positive successful runs containing STAGE_FAIL or STAGE_DIE into failures.

How to test

  1. Run npm ci.
  2. Run npm run build.
  3. Run npm run test:runtime-services.
  4. Run npx tsx tests/playground-cli-runner-bootstrap-ini.test.ts.
  5. Run npx tsx tests/phpunit-project-autoload.test.ts.
  6. Run npm run test:php-wasm-extension-manifests.

AI assistance

  • AI assistance: Yes
  • Tool(s): OpenAI GPT-5.6 Sol with OpenCode
  • Used for: Diagnosed the downstream runtime integration failures, implemented the generic builder/runtime fixes, and added deterministic coverage.

@chubes4
chubes4 merged commit 4126aa3 into main Jul 18, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant