aboutsummaryrefslogtreecommitdiffhomepage
path: root/conformance/README.md
diff options
context:
space:
mode:
authorGravatar Josh Haberman <jhaberman@gmail.com>2015-04-01 17:23:48 -0700
committerGravatar Josh Haberman <jhaberman@gmail.com>2015-04-08 13:14:10 -0700
commit35a1cc7a7c7cfd205641f15258ca991f6d3ec2bc (patch)
tree1deae768e282b203892f5e29a9d4bf1271f43397 /conformance/README.md
parent86d93063c6d662e7cae91ff8a2adf39b4d93fe53 (diff)
Added first version of conformance tests.
Change-Id: Ib75664194491643f8e4f1503a2ed942a2d1e1655
Diffstat (limited to 'conformance/README.md')
-rw-r--r--conformance/README.md45
1 files changed, 45 insertions, 0 deletions
diff --git a/conformance/README.md b/conformance/README.md
new file mode 100644
index 00000000..9388055f
--- /dev/null
+++ b/conformance/README.md
@@ -0,0 +1,45 @@
+Protocol Buffers - Google's data interchange format
+===================================================
+
+[![Build Status](https://travis-ci.org/google/protobuf.svg?branch=master)](https://travis-ci.org/google/protobuf)
+
+Copyright 2008 Google Inc.
+
+This directory contains conformance tests for testing completeness and
+correctness of Protocol Buffers implementations. These tests are designed
+to be easy to run against any Protocol Buffers implementation.
+
+This directory contains the tester process `conformance-test`, which
+contains all of the tests themselves. Then separate programs written
+in whatever language you want to test communicate with the tester
+program over a pipe.
+
+Before running any of these tests, make sure you run `make` in the base
+directory to build `protoc`, since all the tests depend on it.
+
+ $ make
+
+Then to run the tests against the C++ implementation, run:
+
+ $ cd conformance && make test_cpp
+
+More tests and languages will be added soon!
+
+Testing other Protocol Buffer implementations
+---------------------------------------------
+
+To run these tests against a new Protocol Buffers implementation, write a
+program in your language that uses the protobuf implementation you want
+to test. This program should implement the testing protocol defined in
+[conformance.proto](https://github.com/google/protobuf/blob/master/conformance/conformance.proto).
+This is designed to be as easy as possible: the C++ version is only
+150 lines and is a good example for what this program should look like
+(see [conformance_cpp.cc](https://github.com/google/protobuf/blob/master/conformance/conformance_cpp.cc)).
+The program only needs to be able to read from stdin and write to stdout.
+
+Portability
+-----------
+
+Note that the test runner currently does not work on Windows. Patches
+to fix this are welcome! (But please get in touch first to settle on
+a general implementation strategy).