ADD: added new version of protobuf
This commit is contained in:
@@ -12,77 +12,44 @@ 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.
|
||||
|
||||
If you're not using Bazel to run these tests, make sure you build the C++
|
||||
tester code beforehand, e.g. from the base directory:
|
||||
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.
|
||||
|
||||
$ cmake . -Dprotobuf_BUILD_CONFORMANCE=ON && cmake --build .
|
||||
|
||||
This will produce a `conformance_test_runner` binary that can be used to run
|
||||
conformance tests on any executable. Pass it `--help` for more information.
|
||||
$ make
|
||||
|
||||
Running the tests for C++
|
||||
-------------------------
|
||||
|
||||
To run the tests against the C++ implementation, run:
|
||||
|
||||
$ bazel test //src:conformance_test
|
||||
$ cd conformance && make test_cpp
|
||||
|
||||
Or alternatively with CMake:
|
||||
Running the tests for JavaScript (Node.js)
|
||||
------------------------------------------
|
||||
|
||||
$ ctest -R conformance_cpp_test
|
||||
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
|
||||
-------------------------------------
|
||||
|
||||
All of the languages in the Protobuf source tree are set up to run conformance
|
||||
tests using similar patterns. You can either use Bazel to run the
|
||||
`conformance_test` target defined in the language's root `BUILD.bazel` file,
|
||||
or create an executable for a custom test and pass it to
|
||||
`conformance_test_runner`.
|
||||
|
||||
Note: CMake can be used to build the conformance test runner, but not any of
|
||||
the conformance test executables outside C++. So if you aren't using Bazel
|
||||
you'll need to create the executable you pass to `conformance_test_runner` via
|
||||
some alternate build system.
|
||||
|
||||
While we plan to model all our supported languages more completely in Bazel,
|
||||
today some of them are a bit tricky to run. Below is a list of the commands
|
||||
(and prerequisites) to run each language's conformance tests.
|
||||
|
||||
Java:
|
||||
|
||||
$ bazel test //java/core:conformance_test //java/lite:conformance_test
|
||||
|
||||
Python:
|
||||
|
||||
$ bazel test //python:conformance_test
|
||||
|
||||
Python C++:
|
||||
|
||||
$ bazel test //python:conformance_test_cpp --define=use_fast_cpp_protos=true
|
||||
|
||||
C#:
|
||||
|
||||
$ `which dotnet || echo "You must have dotnet installed!"
|
||||
$ `bazel test //csharp:conformance_test \
|
||||
--action_env=DOTNET_CLI_TELEMETRY_OPTOUT=1 --test_env=DOTNET_CLI_HOME=~ \
|
||||
--action_env=DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
|
||||
|
||||
Objective-c (Mac only):
|
||||
|
||||
$ `bazel test //objectivec:conformance_test --macos_minimum_os=10.9
|
||||
|
||||
Ruby:
|
||||
|
||||
$ [[ $(ruby --version) == "ruby"* ]] || echo "Select a C Ruby!"
|
||||
$ bazel test //ruby:conformance_test --define=ruby_platform=c \
|
||||
--action_env=PATH --action_env=GEM_PATH --action_env=GEM_HOME
|
||||
|
||||
JRuby:
|
||||
|
||||
$ [[ $(ruby --version) == "jruby"* ]] || echo "Switch to Java Ruby!"
|
||||
$ bazel test //ruby:conformance_test_jruby --define=ruby_platform=java \
|
||||
--action_env=PATH --action_env=GEM_PATH --action_env=GEM_HOME
|
||||
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
|
||||
Kokoro runs the tests.
|
||||
|
||||
Testing other Protocol Buffer implementations
|
||||
---------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user