The official MicroProfile OpenAPI 4.2 TCK verifies that an implementation produces a conformant OpenAPI 3.1 document from a set of reference applications and their test classes (PetStoreAppTest, AirlinesAppTest, StaticDocumentTest, FilterTest, ModelReaderAppTest, OASConfigServersTest, …). Grimm’s TCK run passes at 367 / 367 on TCK 4.2-RC5 (byte-identical to the 4.2 final under ballot), run on 2026-10-04; the run will be repeated on the 4.2 final. The 367 tests are the 364 tests of the official TCK plus 3 Grimm harness tests (GrimmTckSmokeTest, 1 test; DotNameCompatibilityTest, 2 tests). For reference, the same run counted 349 tests on the 4.1 TCK (passed 349 / 349 in May 2026). 4.2-RC5 adds 18: ExternalDocumentationAnnotationTest (1 method, run once per JSON and YAML format: 2), SchemaExtensionPropertyTest (6 plain model tests, run once each: 6), the 4 new @Digits methods of BeanValidationTest (run once per format: 8) and testExamplesInHeaders (run once per format: 2).
Status
| Metric | Value |
|---|---|
Tests executed |
367 (364 official TCK tests + 3 Grimm harness tests) |
Passed |
367 ✅ |
Failed |
0 |
Errors |
0 |
Skipped |
0 |
Any future regression must be logged in the repository’s TCK.md with: test name, reason, remediation plan.
Prerequisites
The org.eclipse.microprofile.openapi:microprofile-openapi-tck:4.2-RC5 artefact is published on Maven Central, like the 4.1 TCK before it: Maven resolves it during the run, with no manual installation.
sdk env # Java 25 + Maven 3.9.16
./mvnw -ntp install -DskipTests # installs grimm-core and grimm-cdi-vauban
Runner execution
The run-official-tck-mp-openapi-4.2.sh script at the repository root drives every variant.
# Smoke suite (default) — runs GrimmTckSmokeTest to validate the installation
./run-official-tck-mp-openapi-4.2.sh
# Full suite — 367 tests: the 364 official TCK tests + 3 Grimm harness tests
./run-official-tck-mp-openapi-4.2.sh all
# Readiness matrix — runs one test (default PetStoreAppTest) under three profiles:
# default-readiness (10 s timeout)
# extended-readiness (30 s timeout)
# no-readiness-probe
./run-official-tck-mp-openapi-4.2.sh matrix PetStoreAppTest
# Targeted test via -Dtest=
./run-official-tck-mp-openapi-4.2.sh -Dtest=AirlinesAppTest
The runner uses Arquillian + TestNG, invoking ./mvnw -f grimm-tck/pom.xml -Ptck-official clean test after a clean install of the reactor, so the harness is always compiled from scratch. The TCK test classes come straight from the official microprofile-openapi-tck jar, picked up by Surefire’s <dependenciesToScan> — there is no local TestNG suite file. The Surefire report lands in grimm-tck/target/surefire-reports/.
Runner architecture
grimm-tck is deliberately outside the reactor: its pom.xml uses standalone modelVersion 4.0.0, with no <parent>.
|
This detachment is deliberate: it keeps the released runtime decoupled from the official TCK, so a normal build of Grimm never resolves or runs any TCK artifact. The runner has no |
Stack assembled by the runner:
| Layer | Component |
|---|---|
Spec |
|
OpenAPI implementation |
|
CDI container |
Vauban ( |
Arquillian container |
|
HTTP transport |
Chappe ( |
Test framework |
TestNG (upstream constraint — not JUnit) |
Readiness matrix variants
The readiness probe is parameterisable:
| Profile | Semantics |
|---|---|
|
Active wait up to 10 s before running the test requests. |
|
Wait up to 30 s — useful on slow CI machines. |
|
Runs the test immediately without waiting — surfaces startup regressions. |
Documented exclusions
None to date: the full suite runs and passes at 367/367. Should an exclusion ever be added, it would be declared as a Surefire exclusion in grimm-tck/pom.xml and tracked in TCK.md.