Skip to content

test(perf): make the performance suite actually runnable#427

Merged
CybotTM merged 2 commits into
mainfrom
test/php-harness-improvements
Jun 23, 2026
Merged

test(perf): make the performance suite actually runnable#427
CybotTM merged 2 commits into
mainfrom
test/php-harness-improvements

Conversation

@CybotTM

@CybotTM CybotTM commented Jun 23, 2026

Copy link
Copy Markdown
Member

The config/testing/phpunit-performance.xml config used config-dir-relative paths, so PHPUnit resolved bootstrap + the testsuites under config/testing/ and the perf:* scripts silently ran nothing.

Fixes:

  • ../../ prefix on every relative path (bootstrap, source include/exclude, testsuites) so they resolve from the repo root
  • drop the global <groups>performance filter — it required @group docblock metadata PHPUnit 13 no longer honours, so testsuite runs matched 0 tests
  • point perf:export at the performance testsuite instead of --group=performance
  • drop the opcache.enable_cli ini (PHP_INI_SYSTEM, unsettable at runtime → a warning that made the scripts exit non-zero)

Result: perf:unit 15 tests, perf:integration 7, perf:export 22 — all green, exit 0 (verified in the e2e image's PHP 8.5.7). These are developer benchmark tools, not on the CI hot path.

Copilot AI review requested due to automatic review settings June 23, 2026 10:43

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the PHPUnit performance configuration by correcting relative paths to the project root, removing the redundant <groups> section, and removing the runtime setting for opcache.enable_cli. It also updates the perf:export script in composer.json to target the performance test suite. The review feedback suggests simplifying the <source> exclusions in the PHPUnit configuration by removing directories that are already outside the included ../../src directory.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread config/testing/phpunit-performance.xml
CybotTM added a commit that referenced this pull request Jun 23, 2026
…431)

**Unblocks CI for every open PR.** The legacy ExtJS Encore build (`npm
run build` -> `public/build`) fails *only* in the GitHub-Actions
buildkit environment — the identical `:e2e` image (node 24) runs `npm
ci` + `encore production` to **"Compiled successfully"** locally, but
the GHA build produces a broken `@symfony/webpack-encore`. It's not the
cli version, node version, lock, or `npm ci` (all ruled out), and it
gates the build jobs that every PR depends on.

ExtJS is being removed shortly and its built assets won't change, so per
maintainer call we **freeze them static** and retire the Encore build:
- commit `public/build` (un-ignored in `.gitignore` + `.dockerignore`)
- `Dockerfile`: drop `npm run build`, keep the SolidJS `bun run --cwd
frontend build`
- `ci.yml`: drop the "Build legacy ExtJS assets (Encore)" step

The SolidJS UI (`public/build-ui`) is still built by Vite. **This PR's
own CI passing is the validation.** Once merged, #427/#429/#430 rebase
onto it and go green.

Note: +30 MB of committed static assets (the ExtJS SDK) — accepted as a
short-term measure since the ExtJS removal will delete them.
config/testing/phpunit-performance.xml used config-dir-relative paths, so PHPUnit
resolved bootstrap + the testsuites under config/testing/ and the perf:* scripts
silently ran nothing ("No tests executed"). Fix:

- prefix every path with ../../ (bootstrap, source include/exclude, testsuites)
  so they resolve from the repo root
- drop the global <groups>performance filter — it required @group docblock
  metadata that PHPUnit 13 no longer honours, so testsuite runs matched 0 tests
- point perf:export at the `performance` testsuite instead of --group=performance
- drop the opcache.enable_cli ini (PHP_INI_SYSTEM, unsettable at runtime → a
  warning that made the scripts exit non-zero)

Now: perf:unit 15 tests, perf:integration 7, perf:export 22 — all green, exit 0.
These benchmark scripts are developer tools (not on the CI hot path).

Signed-off-by: Sebastian Mendel <github@sebastianmendel.de>
@CybotTM CybotTM force-pushed the test/php-harness-improvements branch from 5f88c3c to d7cd25a Compare June 23, 2026 12:54
@CybotTM CybotTM requested a review from Copilot June 23, 2026 12:54

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@codecov

codecov Bot commented Jun 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.92%. Comparing base (7672bcf) to head (d173a28).

Additional details and impacted files
@@            Coverage Diff            @@
##               main     #427   +/-   ##
=========================================
  Coverage     83.92%   83.92%           
  Complexity     2752     2752           
=========================================
  Files           187      187           
  Lines          7534     7534           
=========================================
  Hits           6323     6323           
  Misses         1211     1211           
Flag Coverage Δ
integration 52.09% <ø> (ø)
unit 49.94% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

….xml

The <source> block includes only ../../src, so excluding ../../vendor,
../../tests and ../../var (all outside that tree) had no effect. Keep only
src/Migrations and src/DataFixtures, which are under the included src dir.

Signed-off-by: Sebastian Mendel <github@sebastianmendel.de>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@CybotTM CybotTM merged commit 73757ce into main Jun 23, 2026
54 of 59 checks passed
@CybotTM CybotTM deleted the test/php-harness-improvements branch June 23, 2026 13:54
@sonarqubecloud

Copy link
Copy Markdown

CybotTM added a commit that referenced this pull request Jun 23, 2026
…e) (#433)

The `worklog-crud` "create → edit → delete" test
(helpers/worklog.ts:132) asserts the freshly-saved row is visible after
waiting for the save 200 + the reconciling `getData/days` refetch. Under
CI 2-worker contention the refetch → SolidJS reconcile → render can
exceed Playwright's default **5s** expect timeout — the recurring
**shard-9** flake that has re-run-gated nearly every PR this round (#427
hit it 3×).

Fix: give that one visibility assertion a **15s** window (the same the
page's other readiness waits use). No production code changes.
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.

2 participants