The official MicroProfile OpenAPI 4.1 TCK verifies that an implementation produces a conformant OpenAPI 3.1 document from a set of reference applications (PetStoreApp, AirlinesApp, AnnotationTest, …). Grimm passes it at 349 / 349 on the 4.1 release (May 2026).
Status
| Metric | Value |
|---|---|
Tests executed |
349 |
Passed |
349 ✅ |
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.1 artefact is not published on Maven Central — it must be installed manually into the local M2. Procedure detailed in grimm-tck/README.md.
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.1.sh script at the repository root drives every variant.
# Smoke suite — single fast test to validate the installation
./run-official-tck-mp-openapi-4.1.sh
# Full suite — equivalent to the official 349-test TCK
./run-official-tck-mp-openapi-4.1.sh all
# Readiness matrix — runs the same test under three profiles:
# default-readiness (10 s timeout)
# extended-readiness (30 s timeout)
# no-readiness-probe
./run-official-tck-mp-openapi-4.1.sh matrix PetStoreAppTest
# Targeted test via -Dtest=
./run-official-tck-mp-openapi-4.1.sh -Dtest=AnnotationScanTest
The runner uses Arquillian + TestNG. 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 forced by ShrinkWrap Maven Resolver 3.3, transitively pulled in by the official TCK, which cannot parse Model 4.1.0 POMs and crashes on the Vidocq reactor. The rule is documented at the workspace root: do not reintegrate |
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 349/349. Should an exclusion ever be added, it would be listed in the TestNG suite file (grimm-tck/src/test/resources/tck-suite.xml) and tracked in TCK.md.