The README says "more suites are planned — notably network tests against external IETF and vendor test servers". This is the plan for those, and the tracking issue for the work.
What this is
A survey of the public servers that other HTTP and TLS clients — curl, rustls, reqwest, Go, the browsers — test against, and a roadmap for pointing the testbed at the ones that tell us something about OkHttp. The full write-up, with what each server offers and why it is worth having, is published at https://yschimke.github.io/okhttp-testbed/topics/test-servers.html.
The two rules the roadmap is written to
- A test asserting a connection succeeds is fragile against the internet; one asserting it is refused is not. Certificates get renewed, CDNs move, resolvers rate-limit. Prefer negative assertions against public endpoints, and put positive assertions against something we control.
- Self-host what we can, reach out for what we cannot.
go-httpbin and badssl both ship containers, so most of the HTTP-semantics and bad-chain coverage can run in the containers suite with no third party in the loop. The public endpoint then checks the same property against the real internet, and disagreement between the two is the interesting result.
Everything reaching a third party lands in a suite that reports rather than gates, alongside loomTest — a rate limit at Cloudflare is not this repository being red.
Phases
Phase 1 — infrastructure
Phase 2 — HTTP
Phase 3 — TLS
Phase 4 — DNS
Phase 5 — ECH beyond the fixture
Not in scope
- Anything needing
okhttp3.internal. The public-API-only rule is what makes -PokhttpVersion meaningful, and it is enforced by checkPublicApiOnly.
- Load or performance testing against other people's servers.
- Servers whose terms do not allow automated use. Where a service asks to be used only for clients under your control (How's My SSL), that is what we are doing — one request per scheduled run, no polling.
The README says "more suites are planned — notably network tests against external IETF and vendor test servers". This is the plan for those, and the tracking issue for the work.
What this is
A survey of the public servers that other HTTP and TLS clients — curl, rustls, reqwest, Go, the browsers — test against, and a roadmap for pointing the testbed at the ones that tell us something about OkHttp. The full write-up, with what each server offers and why it is worth having, is published at https://yschimke.github.io/okhttp-testbed/topics/test-servers.html.
The two rules the roadmap is written to
go-httpbinandbadsslboth ship containers, so most of the HTTP-semantics and bad-chain coverage can run in thecontainerssuite with no third party in the loop. The public endpoint then checks the same property against the real internet, and disagreement between the two is the interesting result.Everything reaching a third party lands in a suite that reports rather than gates, alongside
loomTest— a rate limit at Cloudflare is not this repository being red.Phases
Phase 1 — infrastructure
networksuite that reports rather than gates #6 anetworksuite module that reports rather than gatesPhase 2 — HTTP
Alt-Svc: what OkHttp does todayPhase 3 — TLS
ConnectionSpecPhase 4 — DNS
HTTPS/SVCBrecord consumptionPhase 5 — ECH beyond the fixture
Not in scope
okhttp3.internal. The public-API-only rule is what makes-PokhttpVersionmeaningful, and it is enforced bycheckPublicApiOnly.