Documentation
¶
Overview ¶
Command conformance implements the protobuf conformance test runner protocol. It validates the clean-room protobuf implementation against the official conformance test suite maintained by the protobuf project.
The runner communicates via a pipe-based protocol on stdin/stdout. Each exchange consists of a 4-byte little-endian size prefix followed by the serialized message bytes. The runner reads ConformanceRequest messages, processes them, and writes ConformanceResponse messages.
Usage:
conformance-test-runner --failure_list failing_tests.txt ./conformance
The runner is invoked by the official conformance-test-runner binary, which manages test case generation and result verification. This command only handles the request/response loop.
Supported wire formats:
- PROTOBUF: binary protobuf serialization
- JSON: canonical JSON mapping per the protobuf specification
- TEXT_FORMAT: text format serialization
Unsupported formats (JSPB) are reported as skipped in the response. The runner uses a local TypeRegistry populated with TestAllTypesProto2, TestAllTypesProto3, and all well-known types to resolve message_type strings from incoming requests.