Le TCK officiel MicroProfile OpenAPI 4.1 valide qu’une implémentation produit un document OpenAPI 3.1 conforme à partir d’un ensemble d’applications de référence (PetStoreApp, AirlinesApp, AnnotationTest, etc.). Grimm le passe à 349 / 349 sur la version 4.1 (mai 2026).
Statut
| Métrique | Valeur |
|---|---|
Tests exécutés |
349 |
Réussis |
349 ✅ |
Échoués |
0 |
Erreurs |
0 |
Ignorés |
0 |
Tout écart ultérieur doit être journalisé dans TCK.md du dépôt avec : nom de test, motif, plan de correction.
Prérequis
L’artefact org.eclipse.microprofile.openapi:microprofile-openapi-tck:4.1 n’est pas publié sur Maven Central — il doit être installé manuellement dans le M2 local. Procédure détaillée dans grimm-tck/README.md.
sdk env # Java 25 + Maven 3.9.16
./mvnw -ntp install -DskipTests # installe grimm-core et grimm-cdi-vauban
Exécution du runner
Le script run-official-tck-mp-openapi-4.1.sh à la racine du dépôt orchestre toutes les variantes.
# Suite « smoke » — un seul test rapide pour valider l'installation
./run-official-tck-mp-openapi-4.1.sh
# Suite complète — équivalent du TCK officiel à 349 tests
./run-official-tck-mp-openapi-4.1.sh all
# Matrice « readiness » — exécute un même test sous trois profils :
# default-readiness (timeout 10 s)
# extended-readiness (timeout 30 s)
# no-readiness-probe
./run-official-tck-mp-openapi-4.1.sh matrix PetStoreAppTest
# Test ciblé via -Dtest=
./run-official-tck-mp-openapi-4.1.sh -Dtest=AnnotationScanTest
Le runner exécute Arquillian + TestNG. Le rapport Surefire atterrit dans grimm-tck/target/surefire-reports/.
Architecture du runner
grimm-tck est volontairement hors reactor : son pom.xml est en modelVersion 4.0.0 standalone, sans <parent>.
|
Cette détachement est imposé par ShrinkWrap Maven Resolver 3.3 transitif au TCK officiel, qui ne sait pas parser les POMs Model 4.1.0 et crashe sur le reactor Vidocq. La règle est documentée dans la racine du workspace : ne pas réintégrer |
Stack assemblée par le runner :
| Couche | Composant |
|---|---|
Spec |
|
Implémentation OpenAPI |
|
Container CDI |
Vauban ( |
Container Arquillian |
|
Transport HTTP |
Chappe ( |
Cadre de test |
TestNG (contrainte upstream — pas JUnit) |
Variantes de la matrice « readiness »
La probe de disponibilité est paramétrable :
| Profil | Sémantique |
|---|---|
|
Attente active jusqu’à 10 s avant d’exécuter les requêtes du test. |
|
Attente jusqu’à 30 s — utile pour les machines de CI lentes. |
|
Exécute directement le test sans attendre — détecte les régressions de démarrage. |
Exclusions documentées
Aucune exclusion à ce jour : la suite est exécutée intégralement et passe à 349/349. Si une exclusion devait être ajoutée, elle serait listée dans le fichier suite TestNG (grimm-tck/src/test/resources/tck-suite.xml) et tracée dans TCK.md.
Contrat qualité
Toute modification structurelle de grimm-core ou grimm-cdi-vauban doit préserver le score 349/349 avant merge. Une régression TCK est bloquante au sens CI : la PR ne passe pas.
Pour aller plus loin
-
Fonctionnement interne — comprendre ce que le TCK valide.
-
Référence — annotations et clés couvertes par les tests.
-
BUG.md — bugs reproductibles tracés.