diff options
author | 2018-07-10 10:49:48 +0200 | |
---|---|---|
committer | 2018-07-10 11:01:57 +0200 | |
commit | 9162bd920751d3e8c7b0fc3af3009af7e4b3b828 (patch) | |
tree | 62c6ad919e67046ab1ed5125e001a3e7451beca9 /third_party/protobuf/3.6.0/java/compatibility_tests/README.md | |
parent | 3520d0df30bea0746579c796fe3ca462a809473d (diff) |
third_party/protobuf: update protobuf in third_party to version 3.6.0
Split out from https://github.com/bazelbuild/bazel/pull/5439
Diffstat (limited to 'third_party/protobuf/3.6.0/java/compatibility_tests/README.md')
-rw-r--r-- | third_party/protobuf/3.6.0/java/compatibility_tests/README.md | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/third_party/protobuf/3.6.0/java/compatibility_tests/README.md b/third_party/protobuf/3.6.0/java/compatibility_tests/README.md new file mode 100644 index 0000000000..72c6034c99 --- /dev/null +++ b/third_party/protobuf/3.6.0/java/compatibility_tests/README.md @@ -0,0 +1,50 @@ +# 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. |