1 Protocol Buffers - Google's data interchange format 2 =================================================== 3 4 [![Build Status](https://travis-ci.org/google/protobuf.svg?branch=master)](https://travis-ci.org/google/protobuf) 5 6 Copyright 2008 Google Inc. 7 8 This directory contains conformance tests for testing completeness and 9 correctness of Protocol Buffers implementations. These tests are designed 10 to be easy to run against any Protocol Buffers implementation. 11 12 This directory contains the tester process `conformance-test`, which 13 contains all of the tests themselves. Then separate programs written 14 in whatever language you want to test communicate with the tester 15 program over a pipe. 16 17 Before running any of these tests, make sure you run `make` in the base 18 directory to build `protoc`, since all the tests depend on it. 19 20 $ make 21 22 Then to run the tests against the C++ implementation, run: 23 24 $ cd conformance && make test_cpp 25 26 More tests and languages will be added soon! 27 28 Testing other Protocol Buffer implementations 29 --------------------------------------------- 30 31 To run these tests against a new Protocol Buffers implementation, write a 32 program in your language that uses the protobuf implementation you want 33 to test. This program should implement the testing protocol defined in 34 [conformance.proto](https://github.com/google/protobuf/blob/master/conformance/conformance.proto). 35 This is designed to be as easy as possible: the C++ version is only 36 150 lines and is a good example for what this program should look like 37 (see [conformance_cpp.cc](https://github.com/google/protobuf/blob/master/conformance/conformance_cpp.cc)). 38 The program only needs to be able to read from stdin and write to stdout. 39 40 Portability 41 ----------- 42 43 Note that the test runner currently does not work on Windows. Patches 44 to fix this are welcome! (But please get in touch first to settle on 45 a general implementation strategy). 46