Home | History | Annotate | Download | only in conformance
      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