deep understanding of the HTTP/2 speci fi cation • Many implementors are writing similar tests for their own implementations • Di ff erent programming languages make it di ffi cult to share tests between implementations
server according to the speci fi cation • Check the response from the server to make sure it complies with the speci fi cation • In HTTP/2, it is mainly tested by sending frames HTTP/2 Server h2spec Send frames Check response
add or change test cases • Even if you want to change a part of the test, you need to rebuild it • Di ffi cult to cover all implementation di ff erences… • Want to test other protocols as well (QUIC, TLS v1.3, etc…)
send the connection preface (Section 3.5) and then MAY immediately send HTTP/2 frames to such a server; servers can identify these connections by the presence of the connection preface. RFC7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)
be shared like docker containers • pushes the test cases to the registry, pulls them from the registry • Thanks to OCI Artifacts! protospec push protospec pull
fi les in a container image • One of the ways to use OCI Distribution and OCI Image, not a speci fi cation • Many container registries (ECR, GitHub, etc…) are supported • Used by Helm and Open Policy Agent to manage their con fi guration fi les • https://github.com/opencontainers/artifacts