41 lines
2.1 KiB
Markdown
41 lines
2.1 KiB
Markdown
# PR#154: PIT minions on the JVM of the toolchain
|
|
|
|
> **WARNING:** This document describes only the change applied in this PR.
|
|
> It may already be outdated once the next PR is merged.
|
|
> Historic PR-documentation is not maintained along with new PRs — treat it as a snapshot, not as current documentation.
|
|
|
|
## Problem
|
|
|
|
The nightly build `main@mutation` failed on 2026-10-12, and the manual run on the merge of PR#152 on 2026-10-11 before.
|
|
Almost every method exceeded the Mutation-CRAP limit of 15, with scores of exactly C² + C, as with no killed mutant at all.
|
|
The whole run took 35 s instead of hours, and PIT reported all 5213 mutants as `NO_COVERAGE`.
|
|
|
|
The cause is PR#152: the toolchain and the JVM target are Java 25 since then, so the test classes have class version 69.
|
|
The `test` task runs on the toolchain, which is why the normal builds stay green.
|
|
The PIT plugin does not: its minions start on the JVM that runs Gradle, Java 21 in the build environment.
|
|
That JVM cannot load the tests, so the minion finds none:
|
|
|
|
Could not load de.hoennig.werkator.server.UiViewsUnitTest … has been compiled by a more recent version
|
|
of the Java Runtime (class file version 69.0), this version of the Java Runtime only recognizes class file
|
|
versions up to 65.0
|
|
Found 0 tests
|
|
|
|
## Non-Goals
|
|
|
|
- No change of Werkator's behaviour.
|
|
- No change of the Gradle launcher JVM: Gradle 8.14.5 stays on Java 21 (PR#152, ADR 0002).
|
|
- No change of the gate or of any method.
|
|
|
|
## Solution
|
|
|
|
- `pitest.jvmPath` names the executable of the Java toolchain's launcher, so the minions run on Temurin 25.
|
|
- Checked locally with Gradle on Java 21 and PIT narrowed to `UiFormats`:
|
|
without the line the minion found 0 tests and killed no mutant; with it, it found the test and killed mutants.
|
|
- A full local PIT run checks that the gate holds before the PR is marked ready.
|
|
- Werkbaum: a node under `#tests`.
|
|
- Version 1.41.5, with an "Internal:" entry in the release notes.
|
|
|
|
## Prerequisite PRs
|
|
|
|
- [PR#152](https://git.javagil.de/mi/werkator/pulls/152): Werkator on Temurin 25, which moved the tests to class version 69.
|