Manual resolution:
- New test added in src/python/grpcio_test/tests/tests.json
- Timeout-related edits resolved in tools/run_tests/run_tests.py
Manual changes:
- Pass request iterator rather than request sequence in
_reflection_servicer_test.py
Manual changes:
- Fixed use of Exception.message in _invalid_metadata_test.py
- Fixed merge of one_failed_as_unavailable in rpc_server_spec.rb
- Added "set -e" to generate_build_additions.sh
The server cleanup method is untested.
The join() function that exposes it is only called by the internals of threading.py, and we don't hold a reference to the server thread to explicitly join() it, and I'm not sure we should add a reference just for this purpose.
Moreover, the threading.py only calls join(None), the code path in question isn't even exercised by the internals of threading.py. Its just there to make sure we properly follow the join(timeout) semantics.
To support magical internal build processes, the pb2 files need to be
split into pure-proto and gRPC parts. This performs that split and
further fixes bad module names in the test harness that interfered with
the intended test implementation.
An unfortunate side effect, due to limitations of protoc and holdover
behavior we must support in major version 1.x, is that trash files are
generated in split generation. This shouldn't be a problem in normal
protoc plugin use.