Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.6 KiB
73 lines
2.6 KiB
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 |
|
|
|
Running the tests for C++ |
|
------------------------- |
|
|
|
To run the tests against the C++ implementation, run: |
|
|
|
$ cd conformance && make test_cpp |
|
|
|
Running the tests for JavaScript (Node.js) |
|
------------------------------------------ |
|
|
|
To run the JavaScript tests against Node.js, make sure you have "node" |
|
on your path and then run: |
|
|
|
$ cd conformance && make test_nodejs |
|
|
|
Running the tests for Ruby (MRI) |
|
-------------------------------- |
|
|
|
To run the Ruby tests against MRI, first build the C extension: |
|
|
|
$ cd ruby && rake |
|
|
|
Then run the tests like so: |
|
|
|
$ cd conformance && make test_ruby |
|
|
|
Running the tests for other languages |
|
------------------------------------- |
|
|
|
Most of the languages in the Protobuf source tree are set up to run |
|
conformance tests. However some of them are more tricky to set up |
|
properly. See `tests.sh` in the base of the repository to see how |
|
Travis runs the tests. |
|
|
|
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).
|
|
|