Repository navigation
Check that test JVM constraints are satisfiable - #13210
gh-worker-dd-mergequeue-cf854d[bot] merged 3 commits into
Conversation
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 609dac6ad6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
A versionless JVM alias can make the new check accept contradictory Java bounds, leaving tests silently skipped on every JVM.
🤖 Bits Code Review · Commit 609dac6
|
@DataDog review |
There was a problem hiding this comment.
More details
The shared eligibility logic preserves exclusion precedence over forced JDKs, and the checker handles the discussed tip and versionless-name contradictions. Confidence is limited to static inspection because Gradle tests were not executed.
🤖 Bits Code Review · Commit 63d8dd7
bric3
left a comment
There was a problem hiding this comment.
What about replacing "contradictory" with "unsatisfiable" which looks more precise in this context ?
My comments concern regression coverage for forceJdk=[tip] although don't seem blocking.
Running this check, exposed two projects
profiling-controller-oracle, minimum is Java 11, but onlyORACLE8was allowed ; fixed by #13185ignite-2.0, latest dep tests had minimum of Java 11 but a maximum Java 8, actually the same reported incheck_inst 3/4
Pre-approving
A test task whose testJvmConstraints no JVM can satisfy is skipped on every JVM while the build passes, so its tests silently stop running. Add a checkTestJvmConstraints task, run by check, that fails on such constraints. It shares the eligibility rules with the runtime onlyIf. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An includeJdk entry without a version was always counted as allowed, even with an empty version range. It is now assumed to be within the range, so it only passes when the range is not empty or it is forced. Entries named tip never match at runtime, because tip is replaced by its version first, so they no longer count as allowed or forced. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Call the rejected constraints unsatisfiable, move the check rules into the testJvmConstraints property table (including that includeJdk is only read from test tasks), and cover a forced tip entry with an empty range. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5892d90 to
42db38d
Compare
What Does This Do
Adds a
checkTestJvmConstraintstask to every project with test JVM constraints, run bycheck. It fails when no JVM can satisfy a test task'stestJvmConstraints:includeJdkentry is outside the version range and not forced; orminJavaVersionis abovemaxJavaVersion, with noforceJdkentry left to run.Motivation
A test task with unsatisfiable constraints is skipped on every JVM. The CI job still passes, so its tests silently stop running.
This happened twice, and both went unnoticed for a long time:
profiling-controller-oracle:includeJdk = ['ORACLE8']while the minimum is Java 11 (fixed by Restore Oracle JDK 8 profiler controller tests #13185).ignite-2.0latest-dep tests: minimum Java 11, maximum Java 8 (fixed by Run Ignite latest-dep tests on Java 11+ #13207).The check fails the existing
check_*CI jobs as soon as such a combination is introduced.Additional Notes
check_profilingandcheck_inston exactly those four tasks. Across all 543 projects, those are the only failures.onlyIf: they now share one function,isTestJvmAllowed.Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: APMLP-2187
🤖 Generated with Claude Code