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.
50 lines
1.8 KiB
50 lines
1.8 KiB
# Protobuf Java Compatibility Tests |
|
|
|
This directory contains tests to ensure protobuf library is compatible with |
|
previously released versions. |
|
|
|
## Directory Layout |
|
|
|
For each released protobuf version we are testing compatibility with, there |
|
is a sub-directory with the following layout (take v2.5.0 as an example): |
|
|
|
* v2.5.0 |
|
* test.sh |
|
* pom.xml |
|
* protos/ - unittest protos. |
|
* more_protos/ - unittest protos that import the ones in "protos". |
|
* tests/ - actual Java test classes. |
|
|
|
The testing code is extracted from regular protobuf unittests by removing: |
|
|
|
* tests that access package private methods/classes. |
|
* tests that are known to be broken by an intended behavior change (e.g., we |
|
changed the parsing recursion limit from 64 to 100). |
|
* all lite runtime tests. |
|
|
|
It's also divided into 3 submodule with tests depending on more_protos and |
|
more_protos depending on protos. This way we can test scenarios where only part |
|
of the dependency is upgraded to the new version. |
|
|
|
## How to Run The Tests |
|
|
|
We use a shell script to drive the test of different scenarios so the test |
|
will only run on unix-like environments. The script expects a few command |
|
line tools to be available on PATH: git, mvn, wget, grep, sed, java. |
|
|
|
Before running the tests, make sure you have already built the protoc binary |
|
following [the C++ installation instructions](../../src/README.md). The test |
|
scripts will use the built binary located at ${protobuf}/src/protoc. |
|
|
|
To start a test, simply run the test.sh script in each version directory. For |
|
example: |
|
|
|
$ v2.5.0/test.sh |
|
|
|
For each version, the test script will test: |
|
|
|
* only upgrading protos to the new version |
|
* only upgrading more_protos to the new version |
|
|
|
and see whether everything builds/runs fine. Both source compatibility and |
|
binary compatibility will be tested.
|
|
|