PB runs the upstream protobuf conformance suite. This page records the current
results and the intentionally unsupported areas. The runner scripts and how to
fetch testdata are documented in the repository (scripts/); the runner needs
buf and Node.js.
Protocol Buffers
PB tracks expected failures in
test/fixtures/protobuf_conformance/failures.txt. The current edition 2023
baseline passes with no unexpected failures.
Intentional deviations:
EditionUnstablecases are expected failures: the current Buf/protobuf toolchain rejects the upstreamedition = "UNSTABLE"fixture, and the fetch script drops it after ejection, so PB cannot import that message schema.- Protobuf and JSON conformance cases both run. The two
JsonInput.FieldNameExtension.Validatorcases (proto2 and editions) are tracked as expected failures. - JSPB conformance cases are intentionally skipped by the testee; PB does not implement that format.
- Text-format conformance cases (
PB.TextFormat) all pass. They have their own expected-failure list,test/fixtures/protobuf_conformance/text_format_failures.txt, which is currently empty; the runner fails when a listed case starts passing. Whenprotocis installed, the test suite also checks thatprotoc --encodereads PB's text output as the same value.pb_celchecksPB.TextFormatagainst the upstream.textprotosources of the CEL conformance fixtures.
CEL
CEL over protobuf messages, and with it the upstream CEL conformance suite,
lives in pb_cel.
Protovalidate
The protovalidate conformance suite runs in
pb_validate.