This page consolidates the state of the official MicroProfile Rest Client 4.0 TCK runs against Cyrano. The day-to-day source of truth is TCK.md in the repo; this page reflects the reference snapshot.
Summary
| Metric | Value | Detail | Notes |
|---|---|---|---|
Tested spec |
MicroProfile Rest Client 4.0 |
Eclipse Microprofile |
Artefact |
TCK stack |
TestNG + Arquillian + ShrinkWrap |
MicroProfile standard |
Custom Arquillian container |
Tests executed |
168 |
Excluding SSL / long-running timeouts / SSE |
See "Scope" below. |
Tests passed |
140 |
≈ 83 % |
// TODO@user: refresh at next run (M4-6 / M5 target: > 95 %). |
Tests failing |
28 |
Investigation in progress |
Grouped by family — see "Remaining failures". |
Tests in error |
0 |
No JVM crash |
|
Smoke |
3 / 3 PASS |
|
Out-of-Arquillian, run first as a guardrail. |
M4-5 subset |
23 / 23 PASS |
QueryParamStyle, CDIQueryParamStyle, Inheritance, FeatureRegistration, InvokeWithRegisteredProviders, CDIInvokeWithRegisteredProviders, EntityPart |
M4-5 milestone validation. |
M4-3 subset |
2 / 2 PASS |
|
M4-3 milestone validation. |
|
The 140/168 score deliberately excludes three families: SSL ( |
TCK runner architecture
The cyrano-tck module is out of reactor — standalone modelVersion 4.0.0 POM, no <parent>. Reason: the transitive ShrinkWrap Maven Resolver 3.3 cannot parse a Model 4.1.0 POM. Same constraint as cassini-tck, foy-tck, champollion-tck, ravel-tck, knock-tck.
The MicroProfile Rest Client TCK requires an HTTP backend that plays the role of the target server. The CyranoDeployableContainer (custom Arquillian, test scope only):
-
Starts an embedded Cassini + Chappe instance on a random port, serving the TCK’s JAX-RS resources (server side).
-
Configures Cyrano’s
RestClientBuilderto point at this server (client side). -
Reuses
CassiniTestHarness(fromcassini-tck) as a shared test component. -
No dependency on Weld, Undertow or any third-party container.
Commands
# Smoke (fast — out-of-Arquillian, 3 tests)
./run-official-tck-mp-rest-client-4.0.sh
# Full official TCK suite
./run-official-tck-mp-rest-client-4.0.sh all
# Targeted test
./run-official-tck-mp-rest-client-4.0.sh -Dtest=ConfigKeyTest
./run-official-tck-mp-rest-client-4.0.sh -Dtest=CDIInvokeWithRegisteredProvidersTest
The script:
-
first installs the reactor locally (
./mvnw install -DskipTests -pl cyrano-api,cyrano-core,cyrano-cdi-vauban -am); -
invokes Maven on
cyrano-tck/pom.xmlwith thesmokeortck-officialprofile; -
produces a
cyrano-tck/target/tck-report.txtreport with theTests run: N, Failures: F, Errors: E, Skipped: Sline and the count of passed tests.
Remaining failures (28 / 168)
| Family | KO count | Known cause |
|---|---|---|
|
n/a |
SSL not wired until |
|
~5 |
JDK |
|
~3 |
|
|
~2 |
Order of values when a header is repeated — alignment with MP Rest Client §4.3. |
Various |
~6 |
CDI context propagation in |
|
~4 |
|
Others (sporadic) |
~8 |
Reproducer in progress — no stable pattern yet. |
Declared challenges
No official challenge is open against the MP Rest Client spec to date. Every failure above is a Cyrano bug, not a spec dispute.
|
The release discipline is clear (see |
TCK roadmap
| Milestone | Scope | Target |
|---|---|---|
M4-3 |
|
2 / 2 PASS — reached. |
M4-5 |
QueryParamStyle, Inheritance, FeatureRegistration, EntityPart |
23 / 23 PASS — reached. |
M4-6 |
Async + CDI context propagation + Multivalued headers + Redirect |
> 95 % of the perimeter excluding SSL/SSE. |
M5 |
SSL (trustStore, keyStore, hostnameVerifier) + long-running timeouts |
100 % of the perimeter excluding SSE. |
M6 |
SSE ( |
100 % of the official TCK. |
Going further
-
Internals — full pipeline of a call.