Skip to content

CI: Run JIT compliance tests in CI (fix LLVM skip in PHPUnit) #98

@PurHur

Description

@PurHur

Problem

Locally, script/ci-local.sh reports 133 JIT compliance tests skipped and 133 VM compliance tests passing (266 total). The JIT suite never exercises LLVM paths in the default CI path, so JIT regressions slip through.

JITTest::setUp() calls PHPLLVM\Chooser::choose() and skips on failure; in the compliance run, all JIT tests skip while VM tests run.

Goal

GHA / ci-local.sh must run both VM and JIT compliance with a clear pass/fail signal for JIT.

Tasks

  • Reproduce skip reason (LLVM path, LD_LIBRARY_PATH, extension load order)
  • Ensure phpunit.xml.dist <env name="LD_LIBRARY_PATH" value="./.llvm"/> works when .llvm exists
  • Mirror ExampleWebAotTest env setup in JITTest or shared bootstrap
  • Fail CI if LLVM is expected but JIT suite is 100% skipped
  • Split optional “LLVM required” job vs VM-only job in CI: Add GitHub Actions workflow for PHPUnit (VM, compliance, real, AOT) #47

Acceptance criteria

bash script/ci-local.sh --testsuite "PHPCompiler Compliance Test Suites" reports JIT tests executed (not all skipped) when .llvm/libLLVM-9.so.1 is present.

Key files

  • test/compliance/JITTest.php
  • test/bootstrap.php
  • script/ci-local.sh
  • phpunit.xml.dist

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions