Cette page consolide l’état des tests TCK officiels MicroProfile Rest Client 4.0 exécutés contre Cyrano. La source de vérité au quotidien est TCK.md dans le repo ; cette page reflète le snapshot de référence.
Synthèse
| Métrique | Valeur | Détail | Notes |
|---|---|---|---|
Spec testée |
MicroProfile Rest Client 4.0 |
Eclipse Microprofile |
Artefact |
Stack TCK |
TestNG + Arquillian + ShrinkWrap |
Standard MicroProfile |
Container Arquillian custom |
Tests exécutés |
168 |
Hors SSL / timeouts longue durée / SSE |
Voir « Périmètre » plus bas. |
Tests passés |
140 |
≈ 83 % |
// TODO@user: actualiser au prochain run (objectif M4-6 / M5 : > 95 %). |
Tests en échec |
28 |
Investigation en cours |
Regroupés par famille — voir « Échecs résiduels ». |
Tests en erreur |
0 |
Aucun crash JVM |
|
Smoke |
3 / 3 PASS |
|
Hors Arquillian, exécuté en premier comme garde-fou. |
Sous-ensemble M4-5 |
23 / 23 PASS |
QueryParamStyle, CDIQueryParamStyle, Inheritance, FeatureRegistration, InvokeWithRegisteredProviders, CDIInvokeWithRegisteredProviders, EntityPart |
Validation jalon M4-5. |
Sous-ensemble M4-3 |
2 / 2 PASS |
|
Validation jalon M4-3. |
|
Le score de 140/168 exclut volontairement trois familles de tests : SSL ( |
Architecture du runner TCK
Le module cyrano-tck est hors reactor — POM modelVersion 4.0.0 standalone, sans <parent>. Raison : la transitive ShrinkWrap Maven Resolver 3.3 ne sait pas parser un POM Model 4.1.0. Même contrainte que cassini-tck, foy-tck, champollion-tck, ravel-tck, knock-tck.
Le TCK MicroProfile Rest Client exige un backend HTTP qui joue le rôle de serveur cible. Le CyranoDeployableContainer (custom Arquillian, scope test uniquement) :
-
Démarre une instance Cassini + Chappe embarquée sur un port aléatoire, qui sert les ressources JAX-RS du TCK (côté serveur).
-
Configure le
RestClientBuilderde Cyrano pour pointer sur ce serveur (côté client). -
Réutilise
CassiniTestHarness(decassini-tck) comme composant de test partagé. -
Aucune dépendance à Weld, Undertow ou tout container tiers.
Commandes
# Smoke (rapide — hors Arquillian, 3 tests)
./run-official-tck-mp-rest-client-4.0.sh
# Suite TCK officielle complète
./run-official-tck-mp-rest-client-4.0.sh all
# Test ciblé
./run-official-tck-mp-rest-client-4.0.sh -Dtest=ConfigKeyTest
./run-official-tck-mp-rest-client-4.0.sh -Dtest=CDIInvokeWithRegisteredProvidersTest
Le script :
-
installe d’abord le reactor en local (
./mvnw install -DskipTests -pl cyrano-api,cyrano-core,cyrano-cdi-vauban -am) ; -
invoque Maven sur
cyrano-tck/pom.xmlavec le profilsmokeoutck-official; -
produit un rapport
cyrano-tck/target/tck-report.txtavec la ligneTests run: N, Failures: F, Errors: E, Skipped: Set le nombre de tests réussis.
Échecs résiduels (28 / 168)
| Famille | Nb tests KO | Cause connue |
|---|---|---|
|
n/a |
SSL non câblé tant que |
|
~5 |
|
|
~3 |
Politique |
|
~2 |
Ordre des values quand un header est répété — alignement avec MP Rest Client §4.3. |
|
~6 |
Propagation de contexte CDI dans le |
|
~4 |
Cycle de vie |
Autres (sporadiques) |
~8 |
Reproducer en cours — pas de pattern stable. |
Challenges déclarés
Aucun challenge officiel n’est ouvert auprès de la spec MP Rest Client à ce jour. Tous les échecs ci-dessus sont bugs Cyrano, pas des litiges spec.
|
La discipline de release est claire (cf. |
Roadmap TCK
| Jalon | Périmètre | Cible |
|---|---|---|
M4-3 |
|
2 / 2 PASS — atteint. |
M4-5 |
QueryParamStyle, Inheritance, FeatureRegistration, EntityPart |
23 / 23 PASS — atteint. |
M4-6 |
Async + propagation contexte CDI + Multivalued headers + Redirect |
> 95 % du périmètre hors SSL/SSE. |
M5 |
SSL (trustStore, keyStore, hostnameVerifier) + Timeouts longue durée |
100 % périmètre hors SSE. |
M6 |
SSE ( |
100 % du TCK officiel. |
Aller plus loin
-
Fonctionnement interne — pipeline complet d’un appel.