Repository navigation
Conversation
Runs each provider entry and test method a PR adds or changes alone, on the head and on the merge base with the head's tests. A case that passes on the base asserts nothing and needs a `// guard: <reason>` marker.
Skipped by the release:internal, release:typo and release:docs labels.
- taint filter picks Valid or Invalid from the entry's provider, so a base failure of the same-named other case cannot hide a pass - item ids carry class and provider, so same names in different providers or classes no longer collide - numeric string keys, which PHP turns into int, get a `#N` filter - all-skipped is SKIPPED whatever the exit code - guard markers come from the PHP comments of the AST node, never from string or heredoc content
alies-dev
marked this pull request as ready for review
November 8, 2026 16:21
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 45ebaac. Configure here.
| => 'passes on base, asserts nothing: make it fail on base, or add a "// guard: <reason>" marker above it', | ||
| $base !== 'PASS' && $guard !== null => 'stale guard marker: the case fails on base, remove the marker', | ||
| default => null, | ||
| }; |
There was a problem hiding this comment.
Skipped head tests pass CI
Medium Severity
When a selected case is skipped on the PR head, verdictOf returns no problem and base is never exercised, even though the check is meant to require a pass on head and a failure on the merge base (unless // guard).
Reviewed by Cursor Bugbot for commit 45ebaac. Configure here.
Contributor
✅ Performance: unchanged · Issues: unchanged
How to read this table
head 45ebaac · base 6130439 (merge-base) · workflow run |
Contributor
Author
|
i've changed my mind: we don't need it on CI (low ROI) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Adds a CI job that requires every test case a PR adds or changes to fail without the PR's changes: a case that passes on the merge base doesn't assert the change.
Each added or changed provider entry and
test*method must pass on the PR head, then fail when the PR'stests/run against the merge base'ssrc/, stubs and dictionaries. Every run has a 120 s timeout (a timeout or crash on the base counts as a failure), and more than 60 selected cases fails the check.A case that has to keep passing on the base (an edge case guarding the change) needs a marker directly above the provider entry, or above the test method and its docblock:
The
release:internal,release:typoandrelease:docslabels skip the job. Replaying #13455 (0cc606cc3..2abd992eb) flags 19 of its 48 new or changed cases.