mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
74 lines
2.6 KiB
Markdown
74 lines
2.6 KiB
Markdown
|
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).
|