Merge github.com:grpc/grpc into its-raining-jobs

Conflicts:
	tools/run_tests/run_tests.py
pull/1729/head
Craig Tiller 10 years ago
commit da2220aeed
  1. 20
      .travis.yml
  2. 112
      Makefile
  3. 10
      src/core/httpcli/httpcli.c
  4. 7
      src/core/iomgr/pollset_posix.c
  5. 6
      src/core/iomgr/sockaddr_utils.c
  6. 13
      src/core/surface/call.h
  7. 16
      src/core/surface/call_log_batch.c
  8. 5
      src/core/surface/server.c
  9. 10
      src/core/tsi/ssl_transport_security.c
  10. 77
      src/csharp/README.md
  11. 2
      src/node/examples/math_server.js
  12. 2
      src/node/examples/stock_server.js
  13. 6
      src/node/interop/interop_client.js
  14. 2
      src/node/package.json
  15. 4
      src/node/src/client.js
  16. 119
      src/objective-c/README.md
  17. 2
      src/python/src/grpc/_adapter/_face_test_case.py
  18. 4
      src/python/src/grpc/_adapter/_links_test.py
  19. 2
      src/python/src/grpc/_adapter/_lonely_rear_link_test.py
  20. 2
      src/python/src/grpc/_adapter/fore.py
  21. 2
      src/python/src/grpc/_adapter/rear.py
  22. 2
      src/python/src/grpc/early_adopter/implementations.py
  23. 2
      src/python/src/grpc/framework/base/implementations_test.py
  24. 2
      src/python/src/grpc/framework/face/_test_case.py
  25. 2
      src/python/src/grpc/framework/face/demonstration.py
  26. 2
      src/python/src/grpc/framework/face/testing/base_util.py
  27. 2
      src/python/src/grpc/framework/face/testing/future_invocation_asynchronous_event_service_test_case.py
  28. 2
      src/python/src/setup.py
  29. 6
      src/ruby/.rubocop_todo.yml
  30. 4
      src/ruby/ext/grpc/rb_server.c
  31. 60
      src/ruby/lib/grpc/generic/rpc_server.rb
  32. 2
      src/ruby/lib/grpc/version.rb
  33. 4
      src/ruby/spec/generic/rpc_server_pool_spec.rb
  34. 42
      src/ruby/spec/generic/rpc_server_spec.rb
  35. 24
      templates/Makefile.template
  36. 4
      test/core/channel/channel_stack_test.c
  37. 2
      test/core/end2end/tests/bad_hostname.c
  38. 2
      test/core/end2end/tests/cancel_after_accept.c
  39. 2
      test/core/end2end/tests/cancel_after_accept_and_writes_closed.c
  40. 2
      test/core/end2end/tests/cancel_after_invoke.c
  41. 2
      test/core/end2end/tests/cancel_before_invoke.c
  42. 2
      test/core/end2end/tests/cancel_in_a_vacuum.c
  43. 2
      test/core/end2end/tests/census_simple_request.c
  44. 2
      test/core/end2end/tests/disappearing_server.c
  45. 2
      test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c
  46. 2
      test/core/end2end/tests/early_server_shutdown_finishes_tags.c
  47. 2
      test/core/end2end/tests/empty_batch.c
  48. 2
      test/core/end2end/tests/graceful_server_shutdown.c
  49. 2
      test/core/end2end/tests/invoke_large_request.c
  50. 2
      test/core/end2end/tests/max_concurrent_streams.c
  51. 2
      test/core/end2end/tests/max_message_length.c
  52. 2
      test/core/end2end/tests/no_op.c
  53. 2
      test/core/end2end/tests/ping_pong_streaming.c
  54. 4
      test/core/end2end/tests/registered_call.c
  55. 2
      test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c
  56. 2
      test/core/end2end/tests/request_response_with_metadata_and_payload.c
  57. 4
      test/core/end2end/tests/request_response_with_payload.c
  58. 8
      test/core/end2end/tests/request_response_with_payload_and_call_creds.c
  59. 2
      test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c
  60. 2
      test/core/end2end/tests/request_with_large_metadata.c
  61. 2
      test/core/end2end/tests/request_with_payload.c
  62. 2
      test/core/end2end/tests/server_finishes_request.c
  63. 4
      test/core/end2end/tests/simple_delayed_request.c
  64. 4
      test/core/end2end/tests/simple_request.c
  65. 2
      test/core/end2end/tests/simple_request_with_high_initial_sequence_number.c
  66. 4
      test/core/httpcli/httpcli_test.c
  67. 6
      test/core/iomgr/endpoint_tests.c
  68. 8
      test/core/iomgr/sockaddr_utils_test.c
  69. 10
      test/core/iomgr/tcp_server_posix_test.c
  70. 32
      test/core/support/cmdline_test.c
  71. 4
      test/core/support/env_test.c
  72. 10
      test/core/support/file_test.c
  73. 8
      test/core/support/histogram_test.c
  74. 12
      test/core/support/slice_test.c
  75. 10
      test/core/support/string_test.c
  76. 8
      test/core/surface/byte_buffer_reader_test.c
  77. 12
      test/core/surface/completion_queue_test.c
  78. 8
      test/core/transport/chttp2/hpack_table_test.c
  79. 16
      test/core/transport/chttp2/stream_map_test.c
  80. 8
      test/core/transport/chttp2/timeout_encoding_test.c
  81. 20
      test/core/transport/metadata_test.c
  82. 4
      test/cpp/interop/interop_client.cc
  83. 2
      third_party/protobuf
  84. 34
      tools/run_tests/antagonist.py
  85. 2
      tools/run_tests/run_sanity.sh
  86. 25
      tools/run_tests/run_tests.py

@ -17,21 +17,21 @@ env:
- CPPFLAGS=-I/tmp/prebuilt/include - CPPFLAGS=-I/tmp/prebuilt/include
- NUGET="mono nuget.exe" - NUGET="mono nuget.exe"
matrix: matrix:
- CONFIG=opt TEST=sanity - CONFIG=opt TEST=sanity JOBS=1
- CONFIG=gcov TEST=c - CONFIG=gcov TEST=c JOBS=16
- CONFIG=gcov TEST=c++ - CONFIG=gcov TEST=c++ JOBS=16
- CONFIG=opt TEST="c c++" - CONFIG=opt TEST="c c++" JOBS=16
- CONFIG=opt TEST=node - CONFIG=opt TEST=node JOBS=16
- CONFIG=opt TEST=ruby - CONFIG=opt TEST=ruby JOBS=16
- CONFIG=opt TEST=python - CONFIG=opt TEST=python JOBS=1
- CONFIG=opt TEST=csharp - CONFIG=opt TEST=csharp JOBS=16
- USE_GCC=4.4 CONFIG=opt TEST=build - USE_GCC=4.4 CONFIG=opt TEST=build JOBS=16
script: script:
- rvm use $RUBY_VERSION - rvm use $RUBY_VERSION
- gem install bundler - gem install bundler
- ./tools/run_tests/prepare_travis.sh - ./tools/run_tests/prepare_travis.sh
- if [ ! -z "$USE_GCC" ] ; then export CC=gcc-$USE_GCC ; export CXX=g++-$USE_GCC ; fi - if [ ! -z "$USE_GCC" ] ; then export CC=gcc-$USE_GCC ; export CXX=g++-$USE_GCC ; fi
- ./tools/run_tests/run_tests.py -l $TEST -t -j 16 -c $CONFIG -s 4.0 - ./tools/run_tests/run_tests.py -l $TEST -t -j $JOBS -c $CONFIG -s 4.0
after_success: after_success:
- if [ "$CONFIG" = "gcov" ] ; then coveralls --exclude third_party --exclude gens --exclude test --exclude src/compiler -b. --gcov-options '\-p' ; fi - if [ "$CONFIG" = "gcov" ] ; then coveralls --exclude third_party --exclude gens --exclude test --exclude src/compiler -b. --gcov-options '\-p' ; fi
notifications: notifications:

@ -1167,6 +1167,8 @@ buildtests_cxx: privatelibs_cxx $(BINDIR)/$(CONFIG)/async_end2end_test $(BINDIR)
test: test_c test_cxx test: test_c test_cxx
flaky_test: flaky_test_c flaky_test_cxx
test_c: buildtests_c test_c: buildtests_c
$(E) "[RUN] Testing alarm_heap_test" $(E) "[RUN] Testing alarm_heap_test"
$(Q) $(BINDIR)/$(CONFIG)/alarm_heap_test || ( echo test alarm_heap_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/alarm_heap_test || ( echo test alarm_heap_test failed ; exit 1 )
@ -1180,16 +1182,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/bin_encoder_test || ( echo test bin_encoder_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/bin_encoder_test || ( echo test bin_encoder_test failed ; exit 1 )
$(E) "[RUN] Testing census_hash_table_test" $(E) "[RUN] Testing census_hash_table_test"
$(Q) $(BINDIR)/$(CONFIG)/census_hash_table_test || ( echo test census_hash_table_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/census_hash_table_test || ( echo test census_hash_table_test failed ; exit 1 )
$(E) "[RUN] Testing census_statistics_multiple_writers_circular_buffer_test"
$(Q) $(BINDIR)/$(CONFIG)/census_statistics_multiple_writers_circular_buffer_test || ( echo test census_statistics_multiple_writers_circular_buffer_test failed ; exit 1 )
$(E) "[RUN] Testing census_statistics_multiple_writers_test"
$(Q) $(BINDIR)/$(CONFIG)/census_statistics_multiple_writers_test || ( echo test census_statistics_multiple_writers_test failed ; exit 1 )
$(E) "[RUN] Testing census_statistics_performance_test"
$(Q) $(BINDIR)/$(CONFIG)/census_statistics_performance_test || ( echo test census_statistics_performance_test failed ; exit 1 )
$(E) "[RUN] Testing census_statistics_quick_test"
$(Q) $(BINDIR)/$(CONFIG)/census_statistics_quick_test || ( echo test census_statistics_quick_test failed ; exit 1 )
$(E) "[RUN] Testing census_statistics_small_log_test"
$(Q) $(BINDIR)/$(CONFIG)/census_statistics_small_log_test || ( echo test census_statistics_small_log_test failed ; exit 1 )
$(E) "[RUN] Testing census_stub_test" $(E) "[RUN] Testing census_stub_test"
$(Q) $(BINDIR)/$(CONFIG)/census_stub_test || ( echo test census_stub_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/census_stub_test || ( echo test census_stub_test failed ; exit 1 )
$(E) "[RUN] Testing census_window_stats_test" $(E) "[RUN] Testing census_window_stats_test"
@ -1302,8 +1294,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/transport_security_test || ( echo test transport_security_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/transport_security_test || ( echo test transport_security_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fake_security_bad_hostname_test" $(E) "[RUN] Testing chttp2_fake_security_bad_hostname_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_bad_hostname_test || ( echo test chttp2_fake_security_bad_hostname_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_bad_hostname_test || ( echo test chttp2_fake_security_bad_hostname_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fake_security_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_test || ( echo test chttp2_fake_security_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fake_security_cancel_after_accept_and_writes_closed_test" $(E) "[RUN] Testing chttp2_fake_security_cancel_after_accept_and_writes_closed_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fake_security_cancel_after_accept_and_writes_closed_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fake_security_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fake_security_cancel_after_invoke_test" $(E) "[RUN] Testing chttp2_fake_security_cancel_after_invoke_test"
@ -1324,8 +1314,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_empty_batch_test || ( echo test chttp2_fake_security_empty_batch_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_empty_batch_test || ( echo test chttp2_fake_security_empty_batch_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fake_security_graceful_server_shutdown_test" $(E) "[RUN] Testing chttp2_fake_security_graceful_server_shutdown_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_graceful_server_shutdown_test || ( echo test chttp2_fake_security_graceful_server_shutdown_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_graceful_server_shutdown_test || ( echo test chttp2_fake_security_graceful_server_shutdown_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fake_security_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_invoke_large_request_test || ( echo test chttp2_fake_security_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fake_security_max_concurrent_streams_test" $(E) "[RUN] Testing chttp2_fake_security_max_concurrent_streams_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_max_concurrent_streams_test || ( echo test chttp2_fake_security_max_concurrent_streams_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_max_concurrent_streams_test || ( echo test chttp2_fake_security_max_concurrent_streams_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fake_security_max_message_length_test" $(E) "[RUN] Testing chttp2_fake_security_max_message_length_test"
@ -1360,8 +1348,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_fake_security_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_fake_security_simple_request_with_high_initial_sequence_number_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_bad_hostname_test" $(E) "[RUN] Testing chttp2_fullstack_bad_hostname_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_bad_hostname_test || ( echo test chttp2_fullstack_bad_hostname_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_bad_hostname_test || ( echo test chttp2_fullstack_bad_hostname_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_test || ( echo test chttp2_fullstack_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_cancel_after_accept_and_writes_closed_test" $(E) "[RUN] Testing chttp2_fullstack_cancel_after_accept_and_writes_closed_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_cancel_after_invoke_test" $(E) "[RUN] Testing chttp2_fullstack_cancel_after_invoke_test"
@ -1382,8 +1368,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_test || ( echo test chttp2_fullstack_empty_batch_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_test || ( echo test chttp2_fullstack_empty_batch_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_graceful_server_shutdown_test" $(E) "[RUN] Testing chttp2_fullstack_graceful_server_shutdown_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_test || ( echo test chttp2_fullstack_graceful_server_shutdown_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_test || ( echo test chttp2_fullstack_graceful_server_shutdown_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_test || ( echo test chttp2_fullstack_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_max_concurrent_streams_test" $(E) "[RUN] Testing chttp2_fullstack_max_concurrent_streams_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_test || ( echo test chttp2_fullstack_max_concurrent_streams_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_test || ( echo test chttp2_fullstack_max_concurrent_streams_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_max_message_length_test" $(E) "[RUN] Testing chttp2_fullstack_max_message_length_test"
@ -1418,8 +1402,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_fullstack_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_fullstack_simple_request_with_high_initial_sequence_number_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_bad_hostname_test" $(E) "[RUN] Testing chttp2_fullstack_uds_posix_bad_hostname_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_bad_hostname_test || ( echo test chttp2_fullstack_uds_posix_bad_hostname_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_bad_hostname_test || ( echo test chttp2_fullstack_uds_posix_bad_hostname_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_test || ( echo test chttp2_fullstack_uds_posix_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test" $(E) "[RUN] Testing chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_cancel_after_invoke_test" $(E) "[RUN] Testing chttp2_fullstack_uds_posix_cancel_after_invoke_test"
@ -1440,8 +1422,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_test || ( echo test chttp2_fullstack_uds_posix_empty_batch_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_test || ( echo test chttp2_fullstack_uds_posix_empty_batch_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_graceful_server_shutdown_test" $(E) "[RUN] Testing chttp2_fullstack_uds_posix_graceful_server_shutdown_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_test || ( echo test chttp2_fullstack_uds_posix_graceful_server_shutdown_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_test || ( echo test chttp2_fullstack_uds_posix_graceful_server_shutdown_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_test || ( echo test chttp2_fullstack_uds_posix_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_max_concurrent_streams_test" $(E) "[RUN] Testing chttp2_fullstack_uds_posix_max_concurrent_streams_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_test || ( echo test chttp2_fullstack_uds_posix_max_concurrent_streams_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_test || ( echo test chttp2_fullstack_uds_posix_max_concurrent_streams_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_max_message_length_test" $(E) "[RUN] Testing chttp2_fullstack_uds_posix_max_message_length_test"
@ -1476,8 +1456,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_fullstack_bad_hostname_test" $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_bad_hostname_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_bad_hostname_test || ( echo test chttp2_simple_ssl_fullstack_bad_hostname_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_bad_hostname_test || ( echo test chttp2_simple_ssl_fullstack_bad_hostname_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_fullstack_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_test || ( echo test chttp2_simple_ssl_fullstack_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test" $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_fullstack_cancel_after_invoke_test" $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_cancel_after_invoke_test"
@ -1498,8 +1476,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_empty_batch_test || ( echo test chttp2_simple_ssl_fullstack_empty_batch_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_empty_batch_test || ( echo test chttp2_simple_ssl_fullstack_empty_batch_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_fullstack_graceful_server_shutdown_test" $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_graceful_server_shutdown_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_graceful_server_shutdown_test || ( echo test chttp2_simple_ssl_fullstack_graceful_server_shutdown_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_graceful_server_shutdown_test || ( echo test chttp2_simple_ssl_fullstack_graceful_server_shutdown_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_fullstack_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_invoke_large_request_test || ( echo test chttp2_simple_ssl_fullstack_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_fullstack_max_concurrent_streams_test" $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_max_concurrent_streams_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test || ( echo test chttp2_simple_ssl_fullstack_max_concurrent_streams_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test || ( echo test chttp2_simple_ssl_fullstack_max_concurrent_streams_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_fullstack_max_message_length_test" $(E) "[RUN] Testing chttp2_simple_ssl_fullstack_max_message_length_test"
@ -1534,8 +1510,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test" $(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test" $(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test" $(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test"
@ -1556,8 +1530,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test" $(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test" $(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test" $(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test"
@ -1592,8 +1564,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_bad_hostname_test" $(E) "[RUN] Testing chttp2_socket_pair_bad_hostname_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_test || ( echo test chttp2_socket_pair_bad_hostname_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_test || ( echo test chttp2_socket_pair_bad_hostname_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_test || ( echo test chttp2_socket_pair_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_cancel_after_accept_and_writes_closed_test" $(E) "[RUN] Testing chttp2_socket_pair_cancel_after_accept_and_writes_closed_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_socket_pair_cancel_after_accept_and_writes_closed_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_socket_pair_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_cancel_after_invoke_test" $(E) "[RUN] Testing chttp2_socket_pair_cancel_after_invoke_test"
@ -1614,8 +1584,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_test || ( echo test chttp2_socket_pair_empty_batch_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_test || ( echo test chttp2_socket_pair_empty_batch_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_graceful_server_shutdown_test" $(E) "[RUN] Testing chttp2_socket_pair_graceful_server_shutdown_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_test || ( echo test chttp2_socket_pair_graceful_server_shutdown_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_test || ( echo test chttp2_socket_pair_graceful_server_shutdown_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_test || ( echo test chttp2_socket_pair_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_max_concurrent_streams_test" $(E) "[RUN] Testing chttp2_socket_pair_max_concurrent_streams_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_test || ( echo test chttp2_socket_pair_max_concurrent_streams_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_test || ( echo test chttp2_socket_pair_max_concurrent_streams_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_max_message_length_test" $(E) "[RUN] Testing chttp2_socket_pair_max_message_length_test"
@ -1650,8 +1618,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test" $(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test" $(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test" $(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test"
@ -1672,8 +1638,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_empty_batch_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_empty_batch_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test" $(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test" $(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_max_message_length_test" $(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_max_message_length_test"
@ -1708,8 +1672,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_bad_hostname_test" $(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_bad_hostname_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_bad_hostname_test || ( echo test chttp2_socket_pair_with_grpc_trace_bad_hostname_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_bad_hostname_test || ( echo test chttp2_socket_pair_with_grpc_trace_bad_hostname_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test || ( echo test chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test" $(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test" $(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test"
@ -1730,8 +1692,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_test || ( echo test chttp2_socket_pair_with_grpc_trace_empty_batch_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_test || ( echo test chttp2_socket_pair_with_grpc_trace_empty_batch_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test" $(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test || ( echo test chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test || ( echo test chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_test || ( echo test chttp2_socket_pair_with_grpc_trace_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test" $(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test || ( echo test chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test || ( echo test chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_max_message_length_test" $(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_max_message_length_test"
@ -1788,8 +1748,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_unsecure_test || ( echo test chttp2_fullstack_empty_batch_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_unsecure_test || ( echo test chttp2_fullstack_empty_batch_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_graceful_server_shutdown_unsecure_test" $(E) "[RUN] Testing chttp2_fullstack_graceful_server_shutdown_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_unsecure_test || ( echo test chttp2_fullstack_graceful_server_shutdown_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_unsecure_test || ( echo test chttp2_fullstack_graceful_server_shutdown_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_invoke_large_request_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_unsecure_test || ( echo test chttp2_fullstack_invoke_large_request_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_max_concurrent_streams_unsecure_test" $(E) "[RUN] Testing chttp2_fullstack_max_concurrent_streams_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_unsecure_test || ( echo test chttp2_fullstack_max_concurrent_streams_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_unsecure_test || ( echo test chttp2_fullstack_max_concurrent_streams_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_max_message_length_unsecure_test" $(E) "[RUN] Testing chttp2_fullstack_max_message_length_unsecure_test"
@ -1844,8 +1802,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_unsecure_test || ( echo test chttp2_fullstack_uds_posix_empty_batch_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_unsecure_test || ( echo test chttp2_fullstack_uds_posix_empty_batch_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test" $(E) "[RUN] Testing chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test || ( echo test chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test || ( echo test chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test || ( echo test chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test" $(E) "[RUN] Testing chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test || ( echo test chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test || ( echo test chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_max_message_length_unsecure_test" $(E) "[RUN] Testing chttp2_fullstack_uds_posix_max_message_length_unsecure_test"
@ -1900,8 +1856,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_unsecure_test || ( echo test chttp2_socket_pair_empty_batch_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_unsecure_test || ( echo test chttp2_socket_pair_empty_batch_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_graceful_server_shutdown_unsecure_test" $(E) "[RUN] Testing chttp2_socket_pair_graceful_server_shutdown_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_unsecure_test || ( echo test chttp2_socket_pair_graceful_server_shutdown_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_unsecure_test || ( echo test chttp2_socket_pair_graceful_server_shutdown_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_invoke_large_request_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_unsecure_test || ( echo test chttp2_socket_pair_invoke_large_request_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_max_concurrent_streams_unsecure_test" $(E) "[RUN] Testing chttp2_socket_pair_max_concurrent_streams_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_unsecure_test || ( echo test chttp2_socket_pair_max_concurrent_streams_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_unsecure_test || ( echo test chttp2_socket_pair_max_concurrent_streams_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_max_message_length_unsecure_test" $(E) "[RUN] Testing chttp2_socket_pair_max_message_length_unsecure_test"
@ -1956,8 +1910,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test" $(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test" $(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test" $(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test"
@ -2012,8 +1964,6 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test || ( echo test chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test || ( echo test chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test" $(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test || ( echo test chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test || ( echo test chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test || ( echo test chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test" $(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test || ( echo test chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test || ( echo test chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test" $(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test"
@ -2046,6 +1996,61 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test || ( echo test chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test || ( echo test chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test failed ; exit 1 )
flaky_test_c: buildtests_c
$(E) "[RUN] Testing census_statistics_multiple_writers_circular_buffer_test"
$(Q) $(BINDIR)/$(CONFIG)/census_statistics_multiple_writers_circular_buffer_test || ( echo test census_statistics_multiple_writers_circular_buffer_test failed ; exit 1 )
$(E) "[RUN] Testing census_statistics_multiple_writers_test"
$(Q) $(BINDIR)/$(CONFIG)/census_statistics_multiple_writers_test || ( echo test census_statistics_multiple_writers_test failed ; exit 1 )
$(E) "[RUN] Testing census_statistics_performance_test"
$(Q) $(BINDIR)/$(CONFIG)/census_statistics_performance_test || ( echo test census_statistics_performance_test failed ; exit 1 )
$(E) "[RUN] Testing census_statistics_quick_test"
$(Q) $(BINDIR)/$(CONFIG)/census_statistics_quick_test || ( echo test census_statistics_quick_test failed ; exit 1 )
$(E) "[RUN] Testing census_statistics_small_log_test"
$(Q) $(BINDIR)/$(CONFIG)/census_statistics_small_log_test || ( echo test census_statistics_small_log_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fake_security_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_test || ( echo test chttp2_fake_security_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fake_security_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fake_security_invoke_large_request_test || ( echo test chttp2_fake_security_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_test || ( echo test chttp2_fullstack_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_test || ( echo test chttp2_fullstack_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_test || ( echo test chttp2_fullstack_uds_posix_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_test || ( echo test chttp2_fullstack_uds_posix_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_fullstack_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_test || ( echo test chttp2_simple_ssl_fullstack_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_fullstack_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_invoke_large_request_test || ( echo test chttp2_simple_ssl_fullstack_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_test || ( echo test chttp2_socket_pair_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_test || ( echo test chttp2_socket_pair_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test || ( echo test chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_invoke_large_request_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_test || ( echo test chttp2_socket_pair_with_grpc_trace_invoke_large_request_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_invoke_large_request_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_unsecure_test || ( echo test chttp2_fullstack_invoke_large_request_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test || ( echo test chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_invoke_large_request_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_unsecure_test || ( echo test chttp2_socket_pair_invoke_large_request_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test failed ; exit 1 )
$(E) "[RUN] Testing chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test"
$(Q) $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test || ( echo test chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test failed ; exit 1 )
test_cxx: buildtests_cxx test_cxx: buildtests_cxx
$(E) "[RUN] Testing async_end2end_test" $(E) "[RUN] Testing async_end2end_test"
$(Q) $(BINDIR)/$(CONFIG)/async_end2end_test || ( echo test async_end2end_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/async_end2end_test || ( echo test async_end2end_test failed ; exit 1 )
@ -2085,6 +2090,9 @@ test_cxx: buildtests_cxx
$(Q) $(BINDIR)/$(CONFIG)/thread_stress_test || ( echo test thread_stress_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/thread_stress_test || ( echo test thread_stress_test failed ; exit 1 )
flaky_test_cxx: buildtests_cxx
test_python: static_c test_python: static_c
$(E) "[RUN] Testing python code" $(E) "[RUN] Testing python code"
$(Q) tools/run_tests/run_tests.py -lpython -c$(CONFIG) $(Q) tools/run_tests/run_tests.py -lpython -c$(CONFIG)

@ -67,7 +67,6 @@ static grpc_httpcli_post_override g_post_override = NULL;
static void next_address(internal_request *req); static void next_address(internal_request *req);
static void finish(internal_request *req, int success) { static void finish(internal_request *req, int success) {
gpr_log(GPR_DEBUG, "%s", __FUNCTION__);
req->on_response(req->user_data, success ? &req->parser.r : NULL); req->on_response(req->user_data, success ? &req->parser.r : NULL);
grpc_httpcli_parser_destroy(&req->parser); grpc_httpcli_parser_destroy(&req->parser);
if (req->addresses != NULL) { if (req->addresses != NULL) {
@ -86,8 +85,6 @@ static void on_read(void *user_data, gpr_slice *slices, size_t nslices,
internal_request *req = user_data; internal_request *req = user_data;
size_t i; size_t i;
gpr_log(GPR_DEBUG, "%s nslices=%d status=%d", __FUNCTION__, nslices, status);
for (i = 0; i < nslices; i++) { for (i = 0; i < nslices; i++) {
if (GPR_SLICE_LENGTH(slices[i])) { if (GPR_SLICE_LENGTH(slices[i])) {
req->have_read_byte = 1; req->have_read_byte = 1;
@ -120,13 +117,11 @@ done:
} }
static void on_written(internal_request *req) { static void on_written(internal_request *req) {
gpr_log(GPR_DEBUG, "%s", __FUNCTION__);
grpc_endpoint_notify_on_read(req->ep, on_read, req); grpc_endpoint_notify_on_read(req->ep, on_read, req);
} }
static void done_write(void *arg, grpc_endpoint_cb_status status) { static void done_write(void *arg, grpc_endpoint_cb_status status) {
internal_request *req = arg; internal_request *req = arg;
gpr_log(GPR_DEBUG, "%s", __FUNCTION__);
switch (status) { switch (status) {
case GRPC_ENDPOINT_CB_OK: case GRPC_ENDPOINT_CB_OK:
on_written(req); on_written(req);
@ -141,7 +136,6 @@ static void done_write(void *arg, grpc_endpoint_cb_status status) {
static void start_write(internal_request *req) { static void start_write(internal_request *req) {
gpr_slice_ref(req->request_text); gpr_slice_ref(req->request_text);
gpr_log(GPR_DEBUG, "%s", __FUNCTION__);
switch ( switch (
grpc_endpoint_write(req->ep, &req->request_text, 1, done_write, req)) { grpc_endpoint_write(req->ep, &req->request_text, 1, done_write, req)) {
case GRPC_ENDPOINT_WRITE_DONE: case GRPC_ENDPOINT_WRITE_DONE:
@ -159,7 +153,6 @@ static void on_secure_transport_setup_done(void *rp,
grpc_security_status status, grpc_security_status status,
grpc_endpoint *secure_endpoint) { grpc_endpoint *secure_endpoint) {
internal_request *req = rp; internal_request *req = rp;
gpr_log(GPR_DEBUG, "%s", __FUNCTION__);
if (status != GRPC_SECURITY_OK) { if (status != GRPC_SECURITY_OK) {
gpr_log(GPR_ERROR, "Secure transport setup failed with error %d.", status); gpr_log(GPR_ERROR, "Secure transport setup failed with error %d.", status);
finish(req, 0); finish(req, 0);
@ -172,7 +165,6 @@ static void on_secure_transport_setup_done(void *rp,
static void on_connected(void *arg, grpc_endpoint *tcp) { static void on_connected(void *arg, grpc_endpoint *tcp) {
internal_request *req = arg; internal_request *req = arg;
gpr_log(GPR_DEBUG, "%s", __FUNCTION__);
if (!tcp) { if (!tcp) {
next_address(req); next_address(req);
return; return;
@ -200,7 +192,6 @@ static void on_connected(void *arg, grpc_endpoint *tcp) {
static void next_address(internal_request *req) { static void next_address(internal_request *req) {
grpc_resolved_address *addr; grpc_resolved_address *addr;
gpr_log(GPR_DEBUG, "%s", __FUNCTION__);
if (req->next_address == req->addresses->naddrs) { if (req->next_address == req->addresses->naddrs) {
finish(req, 0); finish(req, 0);
return; return;
@ -212,7 +203,6 @@ static void next_address(internal_request *req) {
static void on_resolved(void *arg, grpc_resolved_addresses *addresses) { static void on_resolved(void *arg, grpc_resolved_addresses *addresses) {
internal_request *req = arg; internal_request *req = arg;
gpr_log(GPR_DEBUG, "%s", __FUNCTION__);
if (!addresses) { if (!addresses) {
finish(req, 0); finish(req, 0);
return; return;

@ -174,6 +174,8 @@ void grpc_pollset_del_fd(grpc_pollset *pollset, grpc_fd *fd) {
int grpc_pollset_work(grpc_pollset *pollset, gpr_timespec deadline) { int grpc_pollset_work(grpc_pollset *pollset, gpr_timespec deadline) {
/* pollset->mu already held */ /* pollset->mu already held */
gpr_timespec now = gpr_now(); gpr_timespec now = gpr_now();
/* FIXME(ctiller): see below */
gpr_timespec maximum_deadline = gpr_time_add(now, gpr_time_from_seconds(1));
int r; int r;
if (gpr_time_cmp(now, deadline) > 0) { if (gpr_time_cmp(now, deadline) > 0) {
return 0; return 0;
@ -184,6 +186,11 @@ int grpc_pollset_work(grpc_pollset *pollset, gpr_timespec deadline) {
if (grpc_alarm_check(&pollset->mu, now, &deadline)) { if (grpc_alarm_check(&pollset->mu, now, &deadline)) {
return 1; return 1;
} }
/* FIXME(ctiller): we should not clamp deadline, however we have some
stuck at shutdown bugs that this resolves */
if (gpr_time_cmp(deadline, maximum_deadline) > 0) {
deadline = maximum_deadline;
}
gpr_tls_set(&g_current_thread_poller, (gpr_intptr)pollset); gpr_tls_set(&g_current_thread_poller, (gpr_intptr)pollset);
r = pollset->vtable->maybe_work(pollset, deadline, now, 1); r = pollset->vtable->maybe_work(pollset, deadline, now, 1);
gpr_tls_set(&g_current_thread_poller, 0); gpr_tls_set(&g_current_thread_poller, 0);

@ -169,8 +169,7 @@ int grpc_sockaddr_get_port(const struct sockaddr *addr) {
case AF_UNIX: case AF_UNIX:
return 1; return 1;
default: default:
gpr_log(GPR_ERROR, "Unknown socket family %d in %s", addr->sa_family, gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_get_port", addr->sa_family);
__FUNCTION__);
return 0; return 0;
} }
} }
@ -184,8 +183,7 @@ int grpc_sockaddr_set_port(const struct sockaddr *addr, int port) {
((struct sockaddr_in6 *)addr)->sin6_port = htons(port); ((struct sockaddr_in6 *)addr)->sin6_port = htons(port);
return 1; return 1;
default: default:
gpr_log(GPR_ERROR, "Unknown socket family %d in %s", addr->sa_family, gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_set_port", addr->sa_family);
__FUNCTION__);
return 0; return 0;
} }
} }

@ -122,6 +122,16 @@ void grpc_call_log_batch(char *file, int line, gpr_log_severity severity,
grpc_call *call, const grpc_op *ops, size_t nops, grpc_call *call, const grpc_op *ops, size_t nops,
void *tag); void *tag);
void grpc_server_log_request_call(char *file, int line,
gpr_log_severity severity,
grpc_server *server,
grpc_call **call,
grpc_call_details *details,
grpc_metadata_array *initial_metadata,
grpc_completion_queue *cq_bound_to_call,
grpc_completion_queue *cq_for_notification,
void *tag);
/* Set a context pointer. /* Set a context pointer.
No thread safety guarantees are made wrt this value. */ No thread safety guarantees are made wrt this value. */
void grpc_call_context_set(grpc_call *call, grpc_context_index elem, void *value, void grpc_call_context_set(grpc_call *call, grpc_context_index elem, void *value,
@ -132,6 +142,9 @@ void *grpc_call_context_get(grpc_call *call, grpc_context_index elem);
#define GRPC_CALL_LOG_BATCH(sev, call, ops, nops, tag) \ #define GRPC_CALL_LOG_BATCH(sev, call, ops, nops, tag) \
if (grpc_trace_batch) grpc_call_log_batch(sev, call, ops, nops, tag) if (grpc_trace_batch) grpc_call_log_batch(sev, call, ops, nops, tag)
#define GRPC_SERVER_LOG_REQUEST_CALL(sev, server, call, details, initial_metadata, cq_bound_to_call, cq_for_notifications, tag) \
if (grpc_trace_batch) grpc_server_log_request_call(sev, server, call, details, initial_metadata, cq_bound_to_call, cq_for_notifications, tag)
gpr_uint8 grpc_call_is_client(grpc_call *call); gpr_uint8 grpc_call_is_client(grpc_call *call);
#endif /* GRPC_INTERNAL_CORE_SURFACE_CALL_H */ #endif /* GRPC_INTERNAL_CORE_SURFACE_CALL_H */

@ -119,3 +119,19 @@ void grpc_call_log_batch(char *file, int line, gpr_log_severity severity,
gpr_free(tmp); gpr_free(tmp);
} }
} }
void grpc_server_log_request_call(char *file, int line,
gpr_log_severity severity,
grpc_server *server,
grpc_call **call,
grpc_call_details *details,
grpc_metadata_array *initial_metadata,
grpc_completion_queue *cq_bound_to_call,
grpc_completion_queue *cq_for_notification,
void *tag) {
gpr_log(file, line, severity,
"grpc_server_request_call(server=%p, call=%p, details=%p, "
"initial_metadata=%p, cq_bound_to_call=%p, cq_for_notification=%p, "
"tag=%p)", server, call, details, initial_metadata,
cq_bound_to_call, cq_for_notification, tag);
}

@ -665,7 +665,7 @@ void *grpc_server_register_method(grpc_server *server, const char *method,
const char *host) { const char *host) {
registered_method *m; registered_method *m;
if (!method) { if (!method) {
gpr_log(GPR_ERROR, "%s method string cannot be NULL", __FUNCTION__); gpr_log(GPR_ERROR, "grpc_server_register_method method string cannot be NULL");
return NULL; return NULL;
} }
for (m = server->registered_methods; m; m = m->next) { for (m = server->registered_methods; m; m = m->next) {
@ -1010,6 +1010,9 @@ grpc_call_error grpc_server_request_call(
grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_bound_to_call,
grpc_completion_queue *cq_for_notification, void *tag) { grpc_completion_queue *cq_for_notification, void *tag) {
requested_call rc; requested_call rc;
GRPC_SERVER_LOG_REQUEST_CALL(GPR_INFO, server, call, details,
initial_metadata, cq_bound_to_call,
cq_for_notification, tag);
grpc_cq_begin_op(cq_for_notification, NULL); grpc_cq_begin_op(cq_for_notification, NULL);
rc.type = BATCH_CALL; rc.type = BATCH_CALL;
rc.tag = tag; rc.tag = tag;

@ -639,7 +639,7 @@ static tsi_result ssl_protector_protect(tsi_frame_protector* self,
tsi_result result = TSI_OK; tsi_result result = TSI_OK;
/* First see if we have some pending data in the SSL BIO. */ /* First see if we have some pending data in the SSL BIO. */
size_t pending_in_ssl = BIO_ctrl_pending(impl->from_ssl); size_t pending_in_ssl = BIO_pending(impl->from_ssl);
if (pending_in_ssl > 0) { if (pending_in_ssl > 0) {
*unprotected_bytes_size = 0; *unprotected_bytes_size = 0;
read_from_ssl = BIO_read(impl->from_ssl, protected_output_frames, read_from_ssl = BIO_read(impl->from_ssl, protected_output_frames,
@ -694,7 +694,7 @@ static tsi_result ssl_protector_protect_flush(
impl->buffer_offset = 0; impl->buffer_offset = 0;
} }
*still_pending_size = BIO_ctrl_pending(impl->from_ssl); *still_pending_size = BIO_pending(impl->from_ssl);
if (*still_pending_size == 0) return TSI_OK; if (*still_pending_size == 0) return TSI_OK;
read_from_ssl = BIO_read(impl->from_ssl, protected_output_frames, read_from_ssl = BIO_read(impl->from_ssl, protected_output_frames,
@ -704,7 +704,7 @@ static tsi_result ssl_protector_protect_flush(
return TSI_INTERNAL_ERROR; return TSI_INTERNAL_ERROR;
} }
*protected_output_frames_size = read_from_ssl; *protected_output_frames_size = read_from_ssl;
*still_pending_size = BIO_ctrl_pending(impl->from_ssl); *still_pending_size = BIO_pending(impl->from_ssl);
return TSI_OK; return TSI_OK;
} }
@ -782,7 +782,7 @@ static tsi_result ssl_handshaker_get_bytes_to_send_to_peer(tsi_handshaker* self,
} }
} }
*bytes_size = (size_t)bytes_read_from_ssl; *bytes_size = (size_t)bytes_read_from_ssl;
return BIO_ctrl_pending(impl->from_ssl) == 0 ? TSI_OK : TSI_INCOMPLETE_DATA; return BIO_pending(impl->from_ssl) == 0 ? TSI_OK : TSI_INCOMPLETE_DATA;
} }
static tsi_result ssl_handshaker_get_result(tsi_handshaker* self) { static tsi_result ssl_handshaker_get_result(tsi_handshaker* self) {
@ -818,7 +818,7 @@ static tsi_result ssl_handshaker_process_bytes_from_peer(
ssl_result = SSL_get_error(impl->ssl, ssl_result); ssl_result = SSL_get_error(impl->ssl, ssl_result);
switch (ssl_result) { switch (ssl_result) {
case SSL_ERROR_WANT_READ: case SSL_ERROR_WANT_READ:
if (BIO_ctrl_pending(impl->from_ssl) == 0) { if (BIO_pending(impl->from_ssl) == 0) {
/* We need more data. */ /* We need more data. */
return TSI_INCOMPLETE_DATA; return TSI_INCOMPLETE_DATA;
} else { } else {

@ -6,7 +6,7 @@ A C# implementation of gRPC.
Status Status
------ ------
Ready for early adopters. Alpha : Ready for early adopters.
Usage: Windows Usage: Windows
-------------- --------------
@ -19,22 +19,60 @@ Usage: Windows
That will also pull all the transitive dependencies (including the native libraries that That will also pull all the transitive dependencies (including the native libraries that
gRPC C# is internally using). gRPC C# is internally using).
- TODO: link to Helloworld example - Helloworld project example can be found in https://github.com/grpc/grpc-common/tree/master/csharp.
Usage: Linux (Mono) Usage: Linux (Mono)
-------------- --------------
- Prerequisites: Mono framework, MonoDevelop 5.9 with NuGet add-in installed. - Prerequisites: Mono 3.2.8+, MonoDevelop 5.9 with NuGet add-in installed.
- Install gRPC C Core using instructions in https://github.com/grpc/homebrew-grpc - Install Linuxbrew and gRPC C Core using instructions in https://github.com/grpc/homebrew-grpc
- TODO: explain using LD_LIBRARY_PATH or installation to /usr/local - gRPC C# depends on native shared library libgrpc_csharp_ext.so (Unix flavor of grpc_csharp_ext.dll).
This library will be installed to `~/.linuxbrew/lib` by the previous step.
To make it visible to mono, you need to:
- (preferred approach) add `libgrpc_csharp_ext.so` to `/etc/ld.so.cache` by running:
```sh
echo "$HOME/.linuxbrew/lib" | sudo tee /etc/ld.so.conf.d/zzz_brew_lib.conf
sudo ldconfig
```
- (adhoc approach) set `LD_LIBRARY_PATH` environment variable to point to directory containing `libgrpc_csharp_ext.so`:
```sh
export LD_LIBRARY_PATH=$HOME/.linuxbrew/lib:${LD_LIBRARY_PATH}
```
- Open MonoDevelop and start a new project/solution. - Open MonoDevelop and start a new project/solution.
- Add NuGet package `Grpc` as a dependency (Project -> Add NuGet packages). - Add NuGet package `Grpc` as a dependency (Project -> Add NuGet packages).
- TODO: link to Helloworld example - Helloworld project example can be found in https://github.com/grpc/grpc-common/tree/master/csharp.
Usage: MacOS (Mono)
--------------
- WARNING: As of now gRPC C# only works on 64bit version of Mono (because we don't compile
the native extension for C# in 32bit mode yet). That means your development experience
with Xamarin Studio on MacOS will not be great, as you won't be able to run your
code directly from Xamarin Studio (which requires 32bit version of Mono).
- Prerequisites: Xamarin Studio with NuGet add-in installed.
- Install Homebrew and gRPC C Core using instructions in https://github.com/grpc/homebrew-grpc
- Install 64-bit version of mono with command `brew install mono` (assumes you've already installed Homebrew).
- Open Xamarin Studio and start a new project/solution.
- Add NuGet package `Grpc` as a dependency (Project -> Add NuGet packages).
- *You will be able to build your project in Xamarin Studio, but to run or test it,
you will need to run it under 64-bit version of Mono.*
- Helloworld project example can be found in https://github.com/grpc/grpc-common/tree/master/csharp.
Building: Windows Building: Windows
----------------- -----------------
@ -47,9 +85,10 @@ If you are a user of gRPC C#, go to Usage section above.
- The grpc_csharp_ext native library needs to be built so you can build the Grpc C# solution. You can - The grpc_csharp_ext native library needs to be built so you can build the Grpc C# solution. You can
either build the native solution in `vsprojects/grpc.sln` from Visual Studio manually, or you can use either build the native solution in `vsprojects/grpc.sln` from Visual Studio manually, or you can use
a convenience batch script that builds everything for you. a convenience batch script that builds everything for you.
```
buildall.bat ```
``` buildall.bat
```
- Open Grpc.sln using Visual Studio 2013. NuGet dependencies will be restored - Open Grpc.sln using Visual Studio 2013. NuGet dependencies will be restored
upon build (you need to have NuGet add-in installed). upon build (you need to have NuGet add-in installed).
@ -61,11 +100,12 @@ Building: Linux & Mono
You only need to go through these steps if you are planning to develop gRPC C#. You only need to go through these steps if you are planning to develop gRPC C#.
If you are a user of gRPC C#, go to Usage section above. If you are a user of gRPC C#, go to Usage section above.
- Prerequisites for development: Mono framework, MonoDevelop 5.9 with NuGet and Nunit add-ins installed. - Prerequisites for development: Mono 3.2.8+, MonoDevelop 5.9 with NuGet and NUnit add-ins installed.
```
sudo apt-get install mono-devel ```sh
sudo apt-get install nunit nunit-console sudo apt-get install mono-devel
``` sudo apt-get install nunit nunit-console
```
You can use older versions of MonoDevelop, but then you might need to restore You can use older versions of MonoDevelop, but then you might need to restore
NuGet dependencies manually (by `nuget restore`), because older versions of MonoDevelop NuGet dependencies manually (by `nuget restore`), because older versions of MonoDevelop
@ -73,10 +113,10 @@ don't support NuGet add-in.
- Compile and install the gRPC C# extension library (that will be used via - Compile and install the gRPC C# extension library (that will be used via
P/Invoke from C#). P/Invoke from C#).
``` ```sh
make grpc_csharp_ext make grpc_csharp_ext
sudo make install_grpc_csharp_ext sudo make install_grpc_csharp_ext
``` ```
- Use MonoDevelop to open the solution Grpc.sln - Use MonoDevelop to open the solution Grpc.sln
@ -95,7 +135,6 @@ Then you should be able to run all the test from the Test View.
After building the solution, you can also run the tests from command line After building the solution, you can also run the tests from command line
using nunit-console tool. using nunit-console tool.
``` ```
# from Grpc.Core.Test/bin/Debug directory # from Grpc.Core.Test/bin/Debug directory
nunit-console Grpc.Core.Tests.dll nunit-console Grpc.Core.Tests.dll

@ -119,7 +119,7 @@ var server = new Server({
}); });
if (require.main === module) { if (require.main === module) {
server.bind('0.0.0.0:7070'); server.bind('0.0.0.0:50051');
server.listen(); server.listen();
} }

@ -83,7 +83,7 @@ var stockServer = new StockServer({
}); });
if (require.main === module) { if (require.main === module) {
stockServer.bind('0.0.0.0:8080'); stockServer.bind('0.0.0.0:50051');
stockServer.listen(); stockServer.listen();
} }

@ -154,13 +154,15 @@ function serverStreaming(client, done) {
arg.response_parameters[resp_index].size); arg.response_parameters[resp_index].size);
resp_index += 1; resp_index += 1;
}); });
call.on('status', function(status) { call.on('end', function() {
assert.strictEqual(status.code, grpc.status.OK);
assert.strictEqual(resp_index, 4); assert.strictEqual(resp_index, 4);
if (done) { if (done) {
done(); done();
} }
}); });
call.on('status', function(status) {
assert.strictEqual(status.code, grpc.status.OK);
});
} }
/** /**

@ -1,6 +1,6 @@
{ {
"name": "grpc", "name": "grpc",
"version": "0.8.0", "version": "0.9.0",
"author": "Google Inc.", "author": "Google Inc.",
"description": "gRPC Library for Node", "description": "gRPC Library for Node",
"homepage": "http://www.grpc.io/", "homepage": "http://www.grpc.io/",

@ -125,10 +125,6 @@ function _read(size) {
self.finished = true; self.finished = true;
return; return;
} }
if (self.finished) {
self.push(null);
return;
}
var data = event.read; var data = event.read;
if (self.push(self.deserialize(data)) && data !== null) { if (self.push(self.deserialize(data)) && data !== null) {
var read_batch = {}; var read_batch = {};

@ -1,43 +1,119 @@
# gRPC for Objective-C # gRPC for Objective-C
## How to generate a client library from a Protocol Buffers definition - [Install protoc with the gRPC plugin](#install)
- [Use protoc to generate a gRPC library](#protoc)
- [Integrate the generated gRPC library in your project](#cocoapods)
- [Use the generated library in your code](#use)
- [Alternative methods](#alternatives)
- [Install protoc and the gRPC plugin without using Homebrew](#nohomebrew)
- [Integrate the generated gRPC library without using Cocoapods](#nococoapods)
First install v3 of the Protocol Buffers compiler (_protoc_), by cloning [its Git repository](https://github.com/google/protobuf) and following these [installation instructions](https://github.com/google/protobuf#c-installation---unix) (the ones titled C++; don't miss the note for Mac users). <a name="install"></a>
## Install protoc with the gRPC plugin
Then clone this repository and execute the following commands from the root directory where it was cloned. On Mac OS X, install [homebrew][]. On Linux, install [linuxbrew][].
Compile the gRPC plugins for _protoc_: Run the following command to install the Protocol Buffers compiler (_protoc_) and the gRPC _protoc_ plugin:
```sh ```sh
make plugins $ curl -fsSL https://goo.gl/getgrpc | bash -
``` ```
This will download and run the [gRPC install script][]. After the command completes, you're ready to proceed.
<a name="protoc"></a>
## Use protoc to generate a gRPC library
Run _protoc_ with the following flags to generate the client library for your `.proto` files:
Create a symbolic link to the compiled plugin binary somewhere in your `$PATH`:
```sh ```sh
ln -s `pwd`/bins/opt/grpc_objective_c_plugin /usr/local/bin/protoc-gen-objcgrpc protoc --objc_out=. --objcgrpc_out=. *.proto
``` ```
(Notice that the name of the created link must begin with "protoc-gen-" for _protoc_ to recognize it as a plugin).
If you don't want to create the symbolic link, you can alternatively copy the binary (with the appropriate name). Or you might prefer instead to specify the plugin's path as a flag when invoking _protoc_, in which case no system modification nor renaming is necessary. This will generate a pair of `.pbobjc.h`/`.pbobjc.m` files for each `.proto` file, with the messages and enums defined in them. And a pair of `.pbrpc.h`/`.pbrpc.m` files for each `.proto` file with services defined. The latter contains the code to make remote calls to the specified API.
Finally, run _protoc_ with the following flags to generate the client library for your `.proto` files: <a name="cocoapods"></a>
## Integrate the generated gRPC library in your project
Install [Cocoapods](https://cocoapods.org/#install).
You need to create a Podspec file for the generated library. You may simply copy the following example to the directory where the source files were generated, updating the name and other metadata of the Podspec as necessary:
```ruby
Pod::Spec.new do |s|
s.name = '<Podspec file name>'
s.version = '...'
s.summary = 'Client library to make RPCs to <my proto API>'
s.homepage = '...'
s.license = '...'
s.authors = { '<my name>' => '<my email>' }
s.ios.deployment_target = '6.0'
s.osx.deployment_target = '10.8'
s.subspec 'Messages' do |ms|
ms.source_files = '*.pbobjc.{h,m}'
ms.requires_arc = false
ms.dependency 'Protobuf', '~> 3.0'
end
s.subspec 'Services' do |ss|
ss.source_files = '*.pbrpc.{h,m}'
ss.requires_arc = true
ss.dependency 'gRPC', '~> 0.0'
ss.dependency '<Podspec file name>/Messages'
end
end
```
The file should be named `<Podspec file name>.podspec`. You can refer to this [example Podspec][]. Once your library has a Podspec, Cocoapods can install it into any XCode project. For that, go into your project's directory and create a Podfile by running:
```sh ```sh
protoc --objc_out=. --objcgrpc_out=. *.proto pod init
``` ```
This will generate a pair of `.pbobjc.h`/`.pbobjc.m` files for each `.proto` file, with the messages and enums defined in them. And a pair of `.pbrpc.h`/`.pbrpc.m` files for each `.proto` file with services defined. The latter contains the code to make remote calls to the specified API. Next add a line to your Podfile to refer to your library's Podspec. Use `:path` as described [here](https://guides.cocoapods.org/using/the-podfile.html#using-the-files-from-a-folder-local-to-the-machine):
```ruby
pod '<Podspec file name>', :path => 'path/to/the/directory/of/your/podspec'
```
You can look at this [example Podfile][].
Finally, in your project's directory, run:
## How to integrate a generated gRPC library in your project ```sh
pod install
```
<a name="use"></a>
## Use the generated library in your code
Please check this [sample app][] for examples of how to use a generated gRPC library.
<a name="alternatives"></a>
## Alternative methods
### If you use Cocoapods <a name="nohomebrew"></a>
### Install protoc and the gRPC plugin without using Homebrew
This is the recommended approach. First install v3 of the Protocol Buffers compiler (_protoc_), by cloning [its Git repository](https://github.com/google/protobuf) and following these [installation instructions](https://github.com/google/protobuf#c-installation---unix) (the ones titled C++; don't miss the note for Mac users).
Then clone this repository and execute the following commands from the root directory where it was cloned.
Compile the gRPC plugins for _protoc_:
```sh
make plugins
```
You need to create a Podspec file for the generated library. This is simply a matter of copying an example like [this one](https://github.com/grpc/grpc/blob/master/src/objective-c/examples/Sample/RemoteTestClient/RemoteTest.podspec) to the directory where the source files were generated. Update the name and other metadata of the Podspec as suitable. Create a symbolic link to the compiled plugin binary somewhere in your `$PATH`:
```sh
ln -s `pwd`/bins/opt/grpc_objective_c_plugin /usr/local/bin/protoc-gen-objcgrpc
```
(Notice that the name of the created link must begin with "protoc-gen-" for _protoc_ to recognize it as a plugin).
Once your library has a Podspec, refer to it from your Podfile using `:path` as described [here](https://guides.cocoapods.org/using/the-podfile.html#using-the-files-from-a-folder-local-to-the-machine). If you don't want to create the symbolic link, you can alternatively copy the binary (with the appropriate name). Or you might prefer instead to specify the plugin's path as a flag when invoking _protoc_, in which case no system modification nor renaming is necessary.
### If you don't use Cocoapods <a name="nococoapods"></a>
### Integrate the generated gRPC library without using Cocoapods
You need to compile the generated `.pbpbjc.*` files (the enums and messages) without ARC support, and the generated `.pbrpc.*` files (the services) with ARC support. The generated code depends on v0.3+ of the Objective-C gRPC runtime library and v3.0+ of the Objective-C Protobuf runtime library. You need to compile the generated `.pbpbjc.*` files (the enums and messages) without ARC support, and the generated `.pbrpc.*` files (the services) with ARC support. The generated code depends on v0.3+ of the Objective-C gRPC runtime library and v3.0+ of the Objective-C Protobuf runtime library.
@ -45,3 +121,10 @@ These libraries need to be integrated into your project as described in their re
* [Podspec](https://github.com/grpc/grpc/blob/master/gRPC.podspec) for the Objective-C gRPC runtime library. This can be tedious to configure manually. * [Podspec](https://github.com/grpc/grpc/blob/master/gRPC.podspec) for the Objective-C gRPC runtime library. This can be tedious to configure manually.
* [Podspec](https://github.com/jcanizales/protobuf/blob/add-podspec/Protobuf.podspec) for the Objective-C Protobuf runtime library. * [Podspec](https://github.com/jcanizales/protobuf/blob/add-podspec/Protobuf.podspec) for the Objective-C Protobuf runtime library.
[homebrew]:http://brew.sh
[linuxbrew]:https://github.com/Homebrew/linuxbrew
[gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install
[example Podspec]:https://github.com/grpc/grpc/blob/master/src/objective-c/examples/Sample/RemoteTestClient/RemoteTest.podspec
[example Podfile]:https://github.com/grpc/grpc/blob/master/src/objective-c/examples/Sample/Podfile
[sample app]: https://github.com/grpc/grpc/tree/master/src/objective-c/examples/Sample

@ -43,7 +43,7 @@ from grpc.framework.foundation import logging_pool
_TIMEOUT = 3 _TIMEOUT = 3
_MAXIMUM_TIMEOUT = 90 _MAXIMUM_TIMEOUT = 90
_MAXIMUM_POOL_SIZE = 400 _MAXIMUM_POOL_SIZE = 4
class FaceTestCase(test_case.FaceTestCase, coverage.BlockingCoverage): class FaceTestCase(test_case.FaceTestCase, coverage.BlockingCoverage):

@ -54,8 +54,8 @@ def _transform_metadata(unused_metadata):
class RoundTripTest(unittest.TestCase): class RoundTripTest(unittest.TestCase):
def setUp(self): def setUp(self):
self.fore_link_pool = logging_pool.pool(80) self.fore_link_pool = logging_pool.pool(8)
self.rear_link_pool = logging_pool.pool(80) self.rear_link_pool = logging_pool.pool(8)
def tearDown(self): def tearDown(self):
self.rear_link_pool.shutdown(wait=True) self.rear_link_pool.shutdown(wait=True)

@ -43,7 +43,7 @@ _TIMEOUT = 2
class LonelyRearLinkTest(unittest.TestCase): class LonelyRearLinkTest(unittest.TestCase):
def setUp(self): def setUp(self):
self.pool = logging_pool.pool(80) self.pool = logging_pool.pool(8)
def tearDown(self): def tearDown(self):
self.pool.shutdown(wait=True) self.pool.shutdown(wait=True)

@ -41,7 +41,7 @@ from grpc.framework.base import null
from grpc.framework.foundation import activated from grpc.framework.foundation import activated
from grpc.framework.foundation import logging_pool from grpc.framework.foundation import logging_pool
_THREAD_POOL_SIZE = 100 _THREAD_POOL_SIZE = 10
@enum.unique @enum.unique

@ -41,7 +41,7 @@ from grpc.framework.base import null
from grpc.framework.foundation import activated from grpc.framework.foundation import activated
from grpc.framework.foundation import logging_pool from grpc.framework.foundation import logging_pool
_THREAD_POOL_SIZE = 100 _THREAD_POOL_SIZE = 10
_INVOCATION_EVENT_KINDS = ( _INVOCATION_EVENT_KINDS = (
_low.Event.Kind.METADATA_ACCEPTED, _low.Event.Kind.METADATA_ACCEPTED,

@ -41,7 +41,7 @@ from grpc.framework.base import util as _base_utilities
from grpc.framework.face import implementations as _face_implementations from grpc.framework.face import implementations as _face_implementations
from grpc.framework.foundation import logging_pool from grpc.framework.foundation import logging_pool
_THREAD_POOL_SIZE = 80 _THREAD_POOL_SIZE = 8
_ONE_DAY_IN_SECONDS = 24 * 60 * 60 _ONE_DAY_IN_SECONDS = 24 * 60 * 60

@ -36,7 +36,7 @@ from grpc.framework.base import interfaces_test_case
from grpc.framework.base import util from grpc.framework.base import util
from grpc.framework.foundation import logging_pool from grpc.framework.foundation import logging_pool
POOL_MAX_WORKERS = 100 POOL_MAX_WORKERS = 10
DEFAULT_TIMEOUT = 30 DEFAULT_TIMEOUT = 30
MAXIMUM_TIMEOUT = 60 MAXIMUM_TIMEOUT = 60

@ -35,7 +35,7 @@ from grpc.framework.face.testing import test_case
from grpc.framework.foundation import logging_pool from grpc.framework.foundation import logging_pool
_TIMEOUT = 3 _TIMEOUT = 3
_MAXIMUM_POOL_SIZE = 100 _MAXIMUM_POOL_SIZE = 10
class FaceTestCase(test_case.FaceTestCase): class FaceTestCase(test_case.FaceTestCase):

@ -34,7 +34,7 @@ from grpc.framework.base import implementations as _base_implementations
from grpc.framework.face import implementations from grpc.framework.face import implementations
from grpc.framework.foundation import logging_pool from grpc.framework.foundation import logging_pool
_POOL_SIZE_LIMIT = 20 _POOL_SIZE_LIMIT = 5
_MAXIMUM_TIMEOUT = 90 _MAXIMUM_TIMEOUT = 90

@ -38,7 +38,7 @@ from grpc.framework.base import in_memory
from grpc.framework.base import interfaces # pylint: disable=unused-import from grpc.framework.base import interfaces # pylint: disable=unused-import
from grpc.framework.foundation import logging_pool from grpc.framework.foundation import logging_pool
_POOL_SIZE_LIMIT = 20 _POOL_SIZE_LIMIT = 5
_MAXIMUM_TIMEOUT = 90 _MAXIMUM_TIMEOUT = 90

@ -44,7 +44,7 @@ from grpc.framework.foundation import future
from grpc.framework.foundation import logging_pool from grpc.framework.foundation import logging_pool
_TIMEOUT = 3 _TIMEOUT = 3
_MAXIMUM_POOL_SIZE = 100 _MAXIMUM_POOL_SIZE = 10
class _PauseableIterator(object): class _PauseableIterator(object):

@ -86,7 +86,7 @@ _PACKAGE_DIRECTORIES = {
setuptools.setup( setuptools.setup(
name='grpcio', name='grpcio',
version='0.5.0a2', version='0.9.0a0',
ext_modules=[_EXTENSION_MODULE], ext_modules=[_EXTENSION_MODULE],
packages=list(_PACKAGES), packages=list(_PACKAGES),
package_dir=_PACKAGE_DIRECTORIES, package_dir=_PACKAGE_DIRECTORIES,

@ -1,5 +1,5 @@
# This configuration was generated by `rubocop --auto-gen-config` # This configuration was generated by `rubocop --auto-gen-config`
# on 2015-04-17 14:43:27 -0700 using RuboCop version 0.30.0. # on 2015-05-22 13:23:34 -0700 using RuboCop version 0.30.1.
# The point is for the user to remove these configuration records # The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base. # one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new # Note that changes in the inspected code, or installation of new
@ -7,12 +7,12 @@
# Offense count: 30 # Offense count: 30
Metrics/AbcSize: Metrics/AbcSize:
Max: 40 Max: 38
# Offense count: 3 # Offense count: 3
# Configuration parameters: CountComments. # Configuration parameters: CountComments.
Metrics/ClassLength: Metrics/ClassLength:
Max: 184 Max: 192
# Offense count: 35 # Offense count: 35
# Configuration parameters: CountComments. # Configuration parameters: CountComments.

@ -282,12 +282,12 @@ static VALUE grpc_rb_server_destroy(VALUE self) {
call-seq: call-seq:
// insecure port // insecure port
insecure_server = Server.new(cq, {'arg1': 'value1'}) insecure_server = Server.new(cq, {'arg1': 'value1'})
insecure_server.add_http2_port('mydomain:7575') insecure_server.add_http2_port('mydomain:50051')
// secure port // secure port
server_creds = ... server_creds = ...
secure_server = Server.new(cq, {'arg1': 'value1'}) secure_server = Server.new(cq, {'arg1': 'value1'})
secure_server.add_http_port('mydomain:7575', server_creds) secure_server.add_http_port('mydomain:50051', server_creds)
Adds a http2 port to server */ Adds a http2 port to server */
static VALUE grpc_rb_server_add_http2_port(int argc, VALUE *argv, VALUE self) { static VALUE grpc_rb_server_add_http2_port(int argc, VALUE *argv, VALUE self) {

@ -76,7 +76,7 @@ module GRPC
@jobs = Queue.new @jobs = Queue.new
@size = size @size = size
@stopped = false @stopped = false
@stop_mutex = Mutex.new @stop_mutex = Mutex.new # needs to be held when accessing @stopped
@stop_cond = ConditionVariable.new @stop_cond = ConditionVariable.new
@workers = [] @workers = []
@keep_alive = keep_alive @keep_alive = keep_alive
@ -92,10 +92,15 @@ module GRPC
# @param args the args passed blk when it is called # @param args the args passed blk when it is called
# @param blk the block to call # @param blk the block to call
def schedule(*args, &blk) def schedule(*args, &blk)
fail 'already stopped' if @stopped
return if blk.nil? return if blk.nil?
GRPC.logger.info('schedule another job') @stop_mutex.synchronize do
@jobs << [blk, args] if @stopped
GRPC.logger.warn('did not schedule job, already stopped')
return
end
GRPC.logger.info('schedule another job')
@jobs << [blk, args]
end
end end
# Starts running the jobs in the thread pool. # Starts running the jobs in the thread pool.
@ -116,8 +121,8 @@ module GRPC
def stop def stop
GRPC.logger.info('stopping, will wait for all the workers to exit') GRPC.logger.info('stopping, will wait for all the workers to exit')
@workers.size.times { schedule { throw :exit } } @workers.size.times { schedule { throw :exit } }
@stopped = true
@stop_mutex.synchronize do # wait @keep_alive for works to stop @stop_mutex.synchronize do # wait @keep_alive for works to stop
@stopped = true
@stop_cond.wait(@stop_mutex, @keep_alive) if @workers.size > 0 @stop_cond.wait(@stop_mutex, @keep_alive) if @workers.size > 0
end end
forcibly_stop_workers forcibly_stop_workers
@ -249,15 +254,18 @@ module GRPC
server_override:nil, server_override:nil,
connect_md_proc:nil, connect_md_proc:nil,
**kw) **kw)
@cq = RpcServer.setup_cq(completion_queue_override)
@server = RpcServer.setup_srv(server_override, @cq, **kw)
@connect_md_proc = RpcServer.setup_connect_md_proc(connect_md_proc) @connect_md_proc = RpcServer.setup_connect_md_proc(connect_md_proc)
@pool_size = pool_size @cq = RpcServer.setup_cq(completion_queue_override)
@max_waiting_requests = max_waiting_requests @max_waiting_requests = max_waiting_requests
@poll_period = poll_period @poll_period = poll_period
@run_mutex = Mutex.new @pool_size = pool_size
@run_cond = ConditionVariable.new
@pool = Pool.new(@pool_size) @pool = Pool.new(@pool_size)
@run_cond = ConditionVariable.new
@run_mutex = Mutex.new
@running = false
@server = RpcServer.setup_srv(server_override, @cq, **kw)
@stopped = false
@stop_mutex = Mutex.new
end end
# stops a running server # stops a running server
@ -266,20 +274,23 @@ module GRPC
# server's current call loop is it's last. # server's current call loop is it's last.
def stop def stop
return unless @running return unless @running
@stopped = true @stop_mutex.synchronize do
@stopped = true
end
@pool.stop @pool.stop
@server.close
end
# TODO: uncomment this: # determines if the server has been stopped
# def stopped?
# This segfaults in the c layer, so its commented out for now. Shutdown @stop_mutex.synchronize do
# still occurs, but the c layer has to do the cleanup. return @stopped
# end
# @server.close
end end
# determines if the server is currently running # determines if the server is currently running
def running? def running?
@running ||= false @running
end end
# Is called from other threads to wait for #run to start up the server. # Is called from other threads to wait for #run to start up the server.
@ -311,11 +322,6 @@ module GRPC
t.join t.join
end end
# Determines if the server is currently stopped
def stopped?
@stopped ||= false
end
# handle registration of classes # handle registration of classes
# #
# service is either a class that includes GRPC::GenericService and whose # service is either a class that includes GRPC::GenericService and whose
@ -407,7 +413,13 @@ module GRPC
request_call_tag = Object.new request_call_tag = Object.new
until stopped? until stopped?
deadline = from_relative_time(@poll_period) deadline = from_relative_time(@poll_period)
an_rpc = @server.request_call(@cq, request_call_tag, deadline) begin
an_rpc = @server.request_call(@cq, request_call_tag, deadline)
rescue Core::CallError, RuntimeError => e
# can happen during server shutdown
GRPC.logger.warn("server call failed: #{e}")
next
end
c = new_active_server_call(an_rpc) c = new_active_server_call(an_rpc)
unless c.nil? unless c.nil?
mth = an_rpc.method.to_sym mth = an_rpc.method.to_sym

@ -29,5 +29,5 @@
# GRPC contains the General RPC module. # GRPC contains the General RPC module.
module GRPC module GRPC
VERSION = '0.6.1' VERSION = '0.9.0'
end end

@ -74,11 +74,11 @@ describe GRPC::Pool do
end end
describe '#schedule' do describe '#schedule' do
it 'throws if the pool is already stopped' do it 'return if the pool is already stopped' do
p = Pool.new(1) p = Pool.new(1)
p.stop p.stop
job = proc {} job = proc {}
expect { p.schedule(&job) }.to raise_error expect { p.schedule(&job) }.to_not raise_error
end end
it 'adds jobs that get run by the pool' do it 'adds jobs that get run by the pool' do

@ -212,10 +212,14 @@ describe GRPC::RpcServer do
describe '#stopped?' do describe '#stopped?' do
before(:each) do before(:each) do
opts = { a_channel_arg: 'an_arg', poll_period: 1 } opts = { a_channel_arg: 'an_arg', poll_period: 1.5 }
@srv = RpcServer.new(**opts) @srv = RpcServer.new(**opts)
end end
after(:each) do
@srv.stop
end
it 'starts out false' do it 'starts out false' do
expect(@srv.stopped?).to be(false) expect(@srv.stopped?).to be(false)
end end
@ -225,7 +229,7 @@ describe GRPC::RpcServer do
expect(@srv.stopped?).to be(false) expect(@srv.stopped?).to be(false)
end end
it 'stays false after the server starts running' do it 'stays false after the server starts running', server: true do
@srv.handle(EchoService) @srv.handle(EchoService)
t = Thread.new { @srv.run } t = Thread.new { @srv.run }
@srv.wait_till_running @srv.wait_till_running
@ -234,7 +238,7 @@ describe GRPC::RpcServer do
t.join t.join
end end
it 'is true after a running server is stopped' do it 'is true after a running server is stopped', server: true do
@srv.handle(EchoService) @srv.handle(EchoService)
t = Thread.new { @srv.run } t = Thread.new { @srv.run }
@srv.wait_till_running @srv.wait_till_running
@ -251,21 +255,22 @@ describe GRPC::RpcServer do
expect(r.running?).to be(false) expect(r.running?).to be(false)
end end
it 'is false after run is called with no services registered' do it 'is false if run is called with no services registered', server: true do
opts = { opts = {
a_channel_arg: 'an_arg', a_channel_arg: 'an_arg',
poll_period: 1, poll_period: 2,
server_override: @server server_override: @server
} }
r = RpcServer.new(**opts) r = RpcServer.new(**opts)
r.run r.run
expect(r.running?).to be(false) expect(r.running?).to be(false)
r.stop
end end
it 'is true after run is called with a registered service' do it 'is true after run is called with a registered service' do
opts = { opts = {
a_channel_arg: 'an_arg', a_channel_arg: 'an_arg',
poll_period: 1, poll_period: 2.5,
server_override: @server server_override: @server
} }
r = RpcServer.new(**opts) r = RpcServer.new(**opts)
@ -284,6 +289,10 @@ describe GRPC::RpcServer do
@srv = RpcServer.new(**@opts) @srv = RpcServer.new(**@opts)
end end
after(:each) do
@srv.stop
end
it 'raises if #run has already been called' do it 'raises if #run has already been called' do
@srv.handle(EchoService) @srv.handle(EchoService)
t = Thread.new { @srv.run } t = Thread.new { @srv.run }
@ -335,6 +344,10 @@ describe GRPC::RpcServer do
@srv = RpcServer.new(**server_opts) @srv = RpcServer.new(**server_opts)
end end
after(:each) do
@srv.stop
end
it 'should return NOT_FOUND status on unknown methods', server: true do it 'should return NOT_FOUND status on unknown methods', server: true do
@srv.handle(EchoService) @srv.handle(EchoService)
t = Thread.new { @srv.run } t = Thread.new { @srv.run }
@ -376,7 +389,7 @@ describe GRPC::RpcServer do
t.join t.join
end end
it 'should receive metadata when a deadline is specified', server: true do it 'should receive metadata if a deadline is specified', server: true do
service = SlowService.new service = SlowService.new
@srv.handle(service) @srv.handle(service)
t = Thread.new { @srv.run } t = Thread.new { @srv.run }
@ -445,11 +458,11 @@ describe GRPC::RpcServer do
it 'should handle multiple parallel requests', server: true do it 'should handle multiple parallel requests', server: true do
@srv.handle(EchoService) @srv.handle(EchoService)
Thread.new { @srv.run } t = Thread.new { @srv.run }
@srv.wait_till_running @srv.wait_till_running
req, q = EchoMsg.new, Queue.new req, q = EchoMsg.new, Queue.new
n = 5 # arbitrary n = 5 # arbitrary
threads = [] threads = [t]
n.times do n.times do
threads << Thread.new do threads << Thread.new do
stub = EchoStub.new(@host, **client_opts) stub = EchoStub.new(@host, **client_opts)
@ -472,7 +485,7 @@ describe GRPC::RpcServer do
} }
alt_srv = RpcServer.new(**opts) alt_srv = RpcServer.new(**opts)
alt_srv.handle(SlowService) alt_srv.handle(SlowService)
Thread.new { alt_srv.run } t = Thread.new { alt_srv.run }
alt_srv.wait_till_running alt_srv.wait_till_running
req = EchoMsg.new req = EchoMsg.new
n = 5 # arbitrary, use as many to ensure the server pool is exceeded n = 5 # arbitrary, use as many to ensure the server pool is exceeded
@ -490,6 +503,7 @@ describe GRPC::RpcServer do
end end
threads.each(&:join) threads.each(&:join)
alt_srv.stop alt_srv.stop
t.join
expect(one_failed_as_unavailable).to be(true) expect(one_failed_as_unavailable).to be(true)
end end
end end
@ -513,6 +527,10 @@ describe GRPC::RpcServer do
@srv = RpcServer.new(**server_opts) @srv = RpcServer.new(**server_opts)
end end
after(:each) do
@srv.stop
end
it 'should send connect metadata to the client', server: true do it 'should send connect metadata to the client', server: true do
service = EchoService.new service = EchoService.new
@srv.handle(service) @srv.handle(service)
@ -545,6 +563,10 @@ describe GRPC::RpcServer do
@srv = RpcServer.new(**server_opts) @srv = RpcServer.new(**server_opts)
end end
after(:each) do
@srv.stop
end
it 'should be added to BadStatus when requests fail', server: true do it 'should be added to BadStatus when requests fail', server: true do
service = FailingService.new service = FailingService.new
@srv.handle(service) @srv.handle(service)

@ -767,9 +767,20 @@ buildtests_cxx: privatelibs_cxx\
test: test_c test_cxx test: test_c test_cxx
flaky_test: flaky_test_c flaky_test_cxx
test_c: buildtests_c test_c: buildtests_c
% for tgt in targets: % for tgt in targets:
% if tgt.build == 'test' and tgt.get('run', True) and not tgt.language == 'c++': % if tgt.build == 'test' and tgt.get('run', True) and not tgt.language == 'c++' and not tgt.get('flaky', False):
$(E) "[RUN] Testing ${tgt.name}"
$(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 )
% endif
% endfor
flaky_test_c: buildtests_c
% for tgt in targets:
% if tgt.build == 'test' and tgt.get('run', True) and not tgt.language == 'c++' and tgt.get('flaky', False):
$(E) "[RUN] Testing ${tgt.name}" $(E) "[RUN] Testing ${tgt.name}"
$(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 )
% endif % endif
@ -778,7 +789,16 @@ test_c: buildtests_c
test_cxx: buildtests_cxx test_cxx: buildtests_cxx
% for tgt in targets: % for tgt in targets:
% if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c++': % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c++' and not tgt.get('flaky', False):
$(E) "[RUN] Testing ${tgt.name}"
$(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 )
% endif
% endfor
flaky_test_cxx: buildtests_cxx
% for tgt in targets:
% if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c++' and tgt.get('flaky', False):
$(E) "[RUN] Testing ${tgt.name}" $(E) "[RUN] Testing ${tgt.name}"
$(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 )
% endif % endif

@ -39,8 +39,6 @@
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST_NAME() gpr_log(GPR_INFO, "%s", __FUNCTION__)
static void channel_init_func(grpc_channel_element *elem, static void channel_init_func(grpc_channel_element *elem,
const grpc_channel_args *args, const grpc_channel_args *args,
grpc_mdctx *metadata_context, int is_first, grpc_mdctx *metadata_context, int is_first,
@ -91,8 +89,6 @@ static void test_create_channel_stack(void) {
int *channel_data; int *channel_data;
int *call_data; int *call_data;
LOG_TEST_NAME();
metadata_context = grpc_mdctx_create(); metadata_context = grpc_mdctx_create();
arg.type = GRPC_ARG_INTEGER; arg.type = GRPC_ARG_INTEGER;

@ -158,7 +158,7 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
static void test_invoke_simple_request(grpc_end2end_test_config config) { static void test_invoke_simple_request(grpc_end2end_test_config config) {
grpc_end2end_test_fixture f; grpc_end2end_test_fixture f;
f = begin_test(config, __FUNCTION__, NULL, NULL); f = begin_test(config, "test_invoke_simple_request", NULL, NULL);
simple_request_body(f); simple_request_body(f);
end_test(&f); end_test(&f);
config.tear_down_data(&f); config.tear_down_data(&f);

@ -105,7 +105,7 @@ static void test_cancel_after_accept(grpc_end2end_test_config config,
grpc_op *op; grpc_op *op;
grpc_call *c; grpc_call *c;
grpc_call *s; grpc_call *s;
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "cancel_after_accept", NULL, NULL);
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);

@ -105,7 +105,7 @@ static void test_cancel_after_accept_and_writes_closed(
grpc_op *op; grpc_op *op;
grpc_call *c; grpc_call *c;
grpc_call *s; grpc_call *s;
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_cancel_after_accept_and_writes_closed", NULL, NULL);
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);

@ -106,7 +106,7 @@ static void test_cancel_after_invoke(grpc_end2end_test_config config,
grpc_op *op; grpc_op *op;
grpc_call *c; grpc_call *c;
grpc_end2end_test_fixture f = grpc_end2end_test_fixture f =
begin_test(config, __FUNCTION__, mode, NULL, NULL); begin_test(config, "test_cancel_after_invoke", mode, NULL, NULL);
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
grpc_metadata_array initial_metadata_recv; grpc_metadata_array initial_metadata_recv;

@ -103,7 +103,7 @@ static void test_cancel_before_invoke(grpc_end2end_test_config config,
grpc_op ops[6]; grpc_op ops[6];
grpc_op *op; grpc_op *op;
grpc_call *c; grpc_call *c;
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "cancel_before_invoke", NULL, NULL);
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
grpc_metadata_array initial_metadata_recv; grpc_metadata_array initial_metadata_recv;

@ -100,7 +100,7 @@ static void end_test(grpc_end2end_test_fixture *f) {
static void test_cancel_in_a_vacuum(grpc_end2end_test_config config, static void test_cancel_in_a_vacuum(grpc_end2end_test_config config,
cancellation_mode mode) { cancellation_mode mode) {
grpc_call *c; grpc_call *c;
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_cancel_in_a_vacuum", NULL, NULL);
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);

@ -204,7 +204,7 @@ static void test_invoke_request_with_census(
server_args.num_args = 1; server_args.num_args = 1;
server_args.args = &server_arg; server_args.args = &server_arg;
gpr_asprintf(&fullname, "%s/%s", __FUNCTION__, name); gpr_asprintf(&fullname, "%s/%s", "test_invoke_request_with_census", name);
f = begin_test(config, fullname, &client_args, &server_args); f = begin_test(config, fullname, &client_args, &server_args);
body(f); body(f);
end_test(&f); end_test(&f);

@ -180,7 +180,7 @@ static void disappearing_server_test(grpc_end2end_test_config config) {
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);
gpr_log(GPR_INFO, "%s/%s", __FUNCTION__, config.name); gpr_log(GPR_INFO, "%s/%s", "disappearing_server_test", config.name);
config.init_client(&f, NULL); config.init_client(&f, NULL);
config.init_server(&f, NULL); config.init_server(&f, NULL);

@ -102,7 +102,7 @@ static void test_early_server_shutdown_finishes_inflight_calls(
grpc_call *c; grpc_call *c;
grpc_call *s; grpc_call *s;
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_early_server_shutdown_finishes_inflight_calls", NULL, NULL);
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);
grpc_op ops[6]; grpc_op ops[6];

@ -99,7 +99,7 @@ static void end_test(grpc_end2end_test_fixture *f) {
static void test_early_server_shutdown_finishes_tags( static void test_early_server_shutdown_finishes_tags(
grpc_end2end_test_config config) { grpc_end2end_test_config config) {
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_early_server_shutdown_finishes_tags", NULL, NULL);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);
grpc_call *s = (void *)1; grpc_call *s = (void *)1;
grpc_call_details call_details; grpc_call_details call_details;

@ -121,7 +121,7 @@ static void empty_batch_body(grpc_end2end_test_fixture f) {
static void test_invoke_empty_body(grpc_end2end_test_config config) { static void test_invoke_empty_body(grpc_end2end_test_config config) {
grpc_end2end_test_fixture f; grpc_end2end_test_fixture f;
f = begin_test(config, __FUNCTION__, NULL, NULL); f = begin_test(config, "test_invoke_empty_body", NULL, NULL);
empty_batch_body(f); empty_batch_body(f);
end_test(&f); end_test(&f);
config.tear_down_data(&f); config.tear_down_data(&f);

@ -101,7 +101,7 @@ static void test_early_server_shutdown_finishes_inflight_calls(
grpc_call *c; grpc_call *c;
grpc_call *s; grpc_call *s;
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_early_server_shutdown_finishes_inflight_calls", NULL, NULL);
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);
grpc_op ops[6]; grpc_op ops[6];

@ -102,7 +102,7 @@ static gpr_slice large_slice(void) {
} }
static void test_invoke_large_request(grpc_end2end_test_config config) { static void test_invoke_large_request(grpc_end2end_test_config config) {
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_invoke_large_request", NULL, NULL);
gpr_slice request_payload_slice = large_slice(); gpr_slice request_payload_slice = large_slice();
gpr_slice response_payload_slice = large_slice(); gpr_slice response_payload_slice = large_slice();

@ -222,7 +222,7 @@ static void test_max_concurrent_streams(grpc_end2end_test_config config) {
server_args.num_args = 1; server_args.num_args = 1;
server_args.args = &server_arg; server_args.args = &server_arg;
f = begin_test(config, __FUNCTION__, NULL, &server_args); f = begin_test(config, "test_max_concurrent_streams", NULL, &server_args);
v_client = cq_verifier_create(f.client_cq); v_client = cq_verifier_create(f.client_cq);
v_server = cq_verifier_create(f.server_cq); v_server = cq_verifier_create(f.server_cq);

@ -126,7 +126,7 @@ static void test_max_message_length(grpc_end2end_test_config config) {
server_args.num_args = 1; server_args.num_args = 1;
server_args.args = &server_arg; server_args.args = &server_arg;
f = begin_test(config, __FUNCTION__, NULL, &server_args); f = begin_test(config, "test_max_message_length", NULL, &server_args);
v_client = cq_verifier_create(f.client_cq); v_client = cq_verifier_create(f.client_cq);
v_server = cq_verifier_create(f.server_cq); v_server = cq_verifier_create(f.server_cq);

@ -96,7 +96,7 @@ static void end_test(grpc_end2end_test_fixture *f) {
} }
static void test_no_op(grpc_end2end_test_config config) { static void test_no_op(grpc_end2end_test_config config) {
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "no-op", NULL, NULL);
end_test(&f); end_test(&f);
config.tear_down_data(&f); config.tear_down_data(&f);
} }

@ -100,7 +100,7 @@ static void end_test(grpc_end2end_test_fixture *f) {
/* Client pings and server pongs. Repeat messages rounds before finishing. */ /* Client pings and server pongs. Repeat messages rounds before finishing. */
static void test_pingpong_streaming(grpc_end2end_test_config config, static void test_pingpong_streaming(grpc_end2end_test_config config,
int messages) { int messages) {
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_pingpong_streaming", NULL, NULL);
grpc_call *c; grpc_call *c;
grpc_call *s; grpc_call *s;
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();

@ -188,7 +188,7 @@ static void simple_request_body(grpc_end2end_test_fixture f, void *rc) {
} }
static void test_invoke_simple_request(grpc_end2end_test_config config) { static void test_invoke_simple_request(grpc_end2end_test_config config) {
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_invoke_simple_request", NULL, NULL);
void *rc = void *rc =
grpc_channel_register_call(f.client, "/foo", "foo.test.google.fr:1234"); grpc_channel_register_call(f.client, "/foo", "foo.test.google.fr:1234");
@ -199,7 +199,7 @@ static void test_invoke_simple_request(grpc_end2end_test_config config) {
static void test_invoke_10_simple_requests(grpc_end2end_test_config config) { static void test_invoke_10_simple_requests(grpc_end2end_test_config config) {
int i; int i;
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_invoke_10_simple_requests", NULL, NULL);
void *rc = void *rc =
grpc_channel_register_call(f.client, "/foo", "foo.test.google.fr:1234"); grpc_channel_register_call(f.client, "/foo", "foo.test.google.fr:1234");

@ -127,7 +127,7 @@ static void test_request_response_with_metadata_and_payload(
"\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff",
16, 16,
{{NULL, NULL, NULL}}}}; {{NULL, NULL, NULL}}}};
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_request_response_with_metadata_and_payload", NULL, NULL);
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);
grpc_op ops[6]; grpc_op ops[6];

@ -113,7 +113,7 @@ static void test_request_response_with_metadata_and_payload(
{"key2", "val2", 4, {{NULL, NULL, NULL}}}}; {"key2", "val2", 4, {{NULL, NULL, NULL}}}};
grpc_metadata meta_s[2] = {{"key3", "val3", 4, {{NULL, NULL, NULL}}}, grpc_metadata meta_s[2] = {{"key3", "val3", 4, {{NULL, NULL, NULL}}},
{"key4", "val4", 4, {{NULL, NULL, NULL}}}}; {"key4", "val4", 4, {{NULL, NULL, NULL}}}};
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_request_response_with_metadata_and_payload", NULL, NULL);
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);
grpc_op ops[6]; grpc_op ops[6];

@ -223,7 +223,7 @@ static void request_response_with_payload(grpc_end2end_test_fixture f) {
payload and status. */ payload and status. */
static void test_invoke_request_response_with_payload( static void test_invoke_request_response_with_payload(
grpc_end2end_test_config config) { grpc_end2end_test_config config) {
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_invoke_request_response_with_payload", NULL, NULL);
request_response_with_payload(f); request_response_with_payload(f);
end_test(&f); end_test(&f);
config.tear_down_data(&f); config.tear_down_data(&f);
@ -232,7 +232,7 @@ static void test_invoke_request_response_with_payload(
static void test_invoke_10_request_response_with_payload( static void test_invoke_10_request_response_with_payload(
grpc_end2end_test_config config) { grpc_end2end_test_config config) {
int i; int i;
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_invoke_10_request_response_with_payload", NULL, NULL);
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
request_response_with_payload(f); request_response_with_payload(f);
} }

@ -114,7 +114,7 @@ static void end_test(grpc_end2end_test_fixture *f) {
static void test_call_creds_failure(grpc_end2end_test_config config) { static void test_call_creds_failure(grpc_end2end_test_config config) {
grpc_call *c; grpc_call *c;
grpc_credentials *creds = NULL; grpc_credentials *creds = NULL;
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_call_creds_failure", NULL, NULL);
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();
c = grpc_channel_create_call(f.client, f.client_cq, "/foo", c = grpc_channel_create_call(f.client, f.client_cq, "/foo",
"foo.test.google.fr", deadline); "foo.test.google.fr", deadline);
@ -318,17 +318,17 @@ static void request_response_with_payload_and_call_creds(
void test_request_response_with_payload_and_call_creds( void test_request_response_with_payload_and_call_creds(
grpc_end2end_test_config config) { grpc_end2end_test_config config) {
request_response_with_payload_and_call_creds(__FUNCTION__, config, NONE); request_response_with_payload_and_call_creds("test_request_response_with_payload_and_call_creds", config, NONE);
} }
void test_request_response_with_payload_and_overridden_call_creds( void test_request_response_with_payload_and_overridden_call_creds(
grpc_end2end_test_config config) { grpc_end2end_test_config config) {
request_response_with_payload_and_call_creds(__FUNCTION__, config, OVERRIDE); request_response_with_payload_and_call_creds("test_request_response_with_payload_and_overridden_call_creds", config, OVERRIDE);
} }
void test_request_response_with_payload_and_deleted_call_creds( void test_request_response_with_payload_and_deleted_call_creds(
grpc_end2end_test_config config) { grpc_end2end_test_config config) {
request_response_with_payload_and_call_creds(__FUNCTION__, config, DESTROY); request_response_with_payload_and_call_creds("test_request_response_with_payload_and_deleted_call_creds", config, DESTROY);
} }
void grpc_end2end_tests(grpc_end2end_test_config config) { void grpc_end2end_tests(grpc_end2end_test_config config) {

@ -112,7 +112,7 @@ static void test_request_response_with_metadata_and_payload(
grpc_metadata meta_c[2] = {{"key1", "val1", 4, {{NULL, NULL, NULL}}}, {"key2", "val2", 4, {{NULL, NULL, NULL}}}}; grpc_metadata meta_c[2] = {{"key1", "val1", 4, {{NULL, NULL, NULL}}}, {"key2", "val2", 4, {{NULL, NULL, NULL}}}};
grpc_metadata meta_s[2] = {{"key3", "val3", 4, {{NULL, NULL, NULL}}}, {"key4", "val4", 4, {{NULL, NULL, NULL}}}}; grpc_metadata meta_s[2] = {{"key3", "val3", 4, {{NULL, NULL, NULL}}}, {"key4", "val4", 4, {{NULL, NULL, NULL}}}};
grpc_metadata meta_t[2] = {{"key5", "val5", 4, {{NULL, NULL, NULL}}}, {"key6", "val6", 4, {{NULL, NULL, NULL}}}}; grpc_metadata meta_t[2] = {{"key5", "val5", 4, {{NULL, NULL, NULL}}}, {"key6", "val6", 4, {{NULL, NULL, NULL}}}};
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_request_response_with_metadata_and_payload", NULL, NULL);
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);
grpc_op ops[6]; grpc_op ops[6];

@ -106,7 +106,7 @@ static void test_request_with_large_metadata(grpc_end2end_test_config config) {
grpc_byte_buffer_create(&request_payload_slice, 1); grpc_byte_buffer_create(&request_payload_slice, 1);
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();
grpc_metadata meta; grpc_metadata meta;
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_request_with_large_metadata", NULL, NULL);
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);
grpc_op ops[6]; grpc_op ops[6];

@ -105,7 +105,7 @@ static void test_invoke_request_with_payload(grpc_end2end_test_config config) {
grpc_byte_buffer *request_payload = grpc_byte_buffer *request_payload =
grpc_byte_buffer_create(&request_payload_slice, 1); grpc_byte_buffer_create(&request_payload_slice, 1);
gpr_timespec deadline = five_seconds_time(); gpr_timespec deadline = five_seconds_time();
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_invoke_request_with_payload", NULL, NULL);
cq_verifier *v_client = cq_verifier_create(f.client_cq); cq_verifier *v_client = cq_verifier_create(f.client_cq);
cq_verifier *v_server = cq_verifier_create(f.server_cq); cq_verifier *v_server = cq_verifier_create(f.server_cq);
grpc_op ops[6]; grpc_op ops[6];

@ -189,7 +189,7 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
static void test_invoke_simple_request(grpc_end2end_test_config config) { static void test_invoke_simple_request(grpc_end2end_test_config config) {
grpc_end2end_test_fixture f; grpc_end2end_test_fixture f;
f = begin_test(config, __FUNCTION__, NULL, NULL); f = begin_test(config, "test_invoke_simple_request", NULL, NULL);
simple_request_body(f); simple_request_body(f);
end_test(&f); end_test(&f);
config.tear_down_data(&f); config.tear_down_data(&f);

@ -185,7 +185,7 @@ static void simple_delayed_request_body(grpc_end2end_test_config config,
static void test_simple_delayed_request_short(grpc_end2end_test_config config) { static void test_simple_delayed_request_short(grpc_end2end_test_config config) {
grpc_end2end_test_fixture f; grpc_end2end_test_fixture f;
gpr_log(GPR_INFO, "%s/%s", __FUNCTION__, config.name); gpr_log(GPR_INFO, "%s/%s", "test_simple_delayed_request_short", config.name);
f = config.create_fixture(NULL, NULL); f = config.create_fixture(NULL, NULL);
simple_delayed_request_body(config, &f, NULL, NULL, 100000); simple_delayed_request_body(config, &f, NULL, NULL, 100000);
end_test(&f); end_test(&f);
@ -195,7 +195,7 @@ static void test_simple_delayed_request_short(grpc_end2end_test_config config) {
static void test_simple_delayed_request_long(grpc_end2end_test_config config) { static void test_simple_delayed_request_long(grpc_end2end_test_config config) {
grpc_end2end_test_fixture f; grpc_end2end_test_fixture f;
gpr_log(GPR_INFO, "%s/%s", __FUNCTION__, config.name); gpr_log(GPR_INFO, "%s/%s", "test_simple_delayed_request_long", config.name);
f = config.create_fixture(NULL, NULL); f = config.create_fixture(NULL, NULL);
/* This timeout should be longer than a single retry */ /* This timeout should be longer than a single retry */
simple_delayed_request_body(config, &f, NULL, NULL, 1500000); simple_delayed_request_body(config, &f, NULL, NULL, 1500000);

@ -191,7 +191,7 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
static void test_invoke_simple_request(grpc_end2end_test_config config) { static void test_invoke_simple_request(grpc_end2end_test_config config) {
grpc_end2end_test_fixture f; grpc_end2end_test_fixture f;
f = begin_test(config, __FUNCTION__, NULL, NULL); f = begin_test(config, "test_invoke_simple_request", NULL, NULL);
simple_request_body(f); simple_request_body(f);
end_test(&f); end_test(&f);
config.tear_down_data(&f); config.tear_down_data(&f);
@ -199,7 +199,7 @@ static void test_invoke_simple_request(grpc_end2end_test_config config) {
static void test_invoke_10_simple_requests(grpc_end2end_test_config config) { static void test_invoke_10_simple_requests(grpc_end2end_test_config config) {
int i; int i;
grpc_end2end_test_fixture f = begin_test(config, __FUNCTION__, NULL, NULL); grpc_end2end_test_fixture f = begin_test(config, "test_invoke_10_simple_requests", NULL, NULL);
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
simple_request_body(f); simple_request_body(f);
gpr_log(GPR_INFO, "Passed simple request %d", i); gpr_log(GPR_INFO, "Passed simple request %d", i);

@ -201,7 +201,7 @@ static void test_invoke_10_simple_requests(grpc_end2end_test_config config, int
client_args.num_args = 1; client_args.num_args = 1;
client_args.args = &client_arg; client_args.args = &client_arg;
f = begin_test(config, __FUNCTION__, &client_args, NULL); f = begin_test(config, "test_invoke_10_simple_requests", &client_args, NULL);
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
simple_request_body(f); simple_request_body(f);
gpr_log(GPR_INFO, "Passed simple request %d", i); gpr_log(GPR_INFO, "Passed simple request %d", i);

@ -56,7 +56,7 @@ static void on_finish(void *arg, const grpc_httpcli_response *response) {
static void test_get(int use_ssl) { static void test_get(int use_ssl) {
grpc_httpcli_request req; grpc_httpcli_request req;
gpr_log(GPR_INFO, "running %s with use_ssl=%d.", __FUNCTION__, use_ssl); gpr_log(GPR_INFO, "running %s with use_ssl=%d.", "test_get", use_ssl);
gpr_event_init(&g_done); gpr_event_init(&g_done);
memset(&req, 0, sizeof(req)); memset(&req, 0, sizeof(req));
@ -72,7 +72,7 @@ static void test_get(int use_ssl) {
static void test_post(int use_ssl) { static void test_post(int use_ssl) {
grpc_httpcli_request req; grpc_httpcli_request req;
gpr_log(GPR_INFO, "running %s with use_ssl=%d.", __FUNCTION__, (int)use_ssl); gpr_log(GPR_INFO, "running %s with use_ssl=%d.", "test_post", (int)use_ssl);
gpr_event_init(&g_done); gpr_event_init(&g_done);
memset(&req, 0, sizeof(req)); memset(&req, 0, sizeof(req));

@ -160,7 +160,7 @@ static void read_and_write_test_write_handler(void *data,
GPR_ASSERT(error != GRPC_ENDPOINT_CB_ERROR); GPR_ASSERT(error != GRPC_ENDPOINT_CB_ERROR);
gpr_log(GPR_DEBUG, "%s: error=%d", __FUNCTION__, error); gpr_log(GPR_DEBUG, "%s: error=%d", "read_and_write_test_write_handler", error);
if (error == GRPC_ENDPOINT_CB_SHUTDOWN) { if (error == GRPC_ENDPOINT_CB_SHUTDOWN) {
gpr_log(GPR_INFO, "Write handler shutdown"); gpr_log(GPR_INFO, "Write handler shutdown");
@ -213,7 +213,7 @@ static void read_and_write_test(grpc_endpoint_test_config config,
size_t slice_size, int shutdown) { size_t slice_size, int shutdown) {
struct read_and_write_test_state state; struct read_and_write_test_state state;
gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(20); gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(20);
grpc_endpoint_test_fixture f = begin_test(config, __FUNCTION__, slice_size); grpc_endpoint_test_fixture f = begin_test(config, "read_and_write_test", slice_size);
if (shutdown) { if (shutdown) {
gpr_log(GPR_INFO, "Start read and write shutdown test"); gpr_log(GPR_INFO, "Start read and write shutdown test");
@ -323,7 +323,7 @@ static void shutdown_during_write_test(grpc_endpoint_test_config config,
shutdown_during_write_test_state read_st; shutdown_during_write_test_state read_st;
shutdown_during_write_test_state write_st; shutdown_during_write_test_state write_st;
gpr_slice *slices; gpr_slice *slices;
grpc_endpoint_test_fixture f = begin_test(config, __FUNCTION__, slice_size); grpc_endpoint_test_fixture f = begin_test(config, "shutdown_during_write_test", slice_size);
gpr_log(GPR_INFO, "testing shutdown during a write"); gpr_log(GPR_INFO, "testing shutdown during a write");

@ -75,7 +75,7 @@ static void test_sockaddr_is_v4mapped(void) {
struct sockaddr_in output4; struct sockaddr_in output4;
struct sockaddr_in expect4; struct sockaddr_in expect4;
gpr_log(GPR_INFO, "%s", __FUNCTION__); gpr_log(GPR_INFO, "%s", "test_sockaddr_is_v4mapped");
/* v4mapped input should succeed. */ /* v4mapped input should succeed. */
input6 = make_addr6(kMapped, sizeof(kMapped)); input6 = make_addr6(kMapped, sizeof(kMapped));
@ -106,7 +106,7 @@ static void test_sockaddr_to_v4mapped(void) {
struct sockaddr_in6 output6; struct sockaddr_in6 output6;
struct sockaddr_in6 expect6; struct sockaddr_in6 expect6;
gpr_log(GPR_INFO, "%s", __FUNCTION__); gpr_log(GPR_INFO, "%s", "test_sockaddr_to_v4mapped");
/* IPv4 input should succeed. */ /* IPv4 input should succeed. */
input4 = make_addr4(kIPv4, sizeof(kIPv4)); input4 = make_addr4(kIPv4, sizeof(kIPv4));
@ -135,7 +135,7 @@ static void test_sockaddr_is_wildcard(void) {
struct sockaddr dummy; struct sockaddr dummy;
int port; int port;
gpr_log(GPR_INFO, "%s", __FUNCTION__); gpr_log(GPR_INFO, "%s", "test_sockaddr_is_wildcard");
/* Generate wildcards. */ /* Generate wildcards. */
grpc_sockaddr_make_wildcards(555, &wild4, &wild6); grpc_sockaddr_make_wildcards(555, &wild4, &wild6);
@ -192,7 +192,7 @@ static void test_sockaddr_to_string(void) {
struct sockaddr_in6 input6; struct sockaddr_in6 input6;
struct sockaddr dummy; struct sockaddr dummy;
gpr_log(GPR_INFO, "%s", __FUNCTION__); gpr_log(GPR_INFO, "%s", "test_sockaddr_to_string");
errno = 0x7EADBEEF; errno = 0x7EADBEEF;

@ -43,7 +43,7 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#define LOG_TEST() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", #x)
static gpr_mu mu; static gpr_mu mu;
static gpr_cv cv; static gpr_cv cv;
@ -66,7 +66,7 @@ static void test_no_op(void) {
static void test_no_op_with_start(void) { static void test_no_op_with_start(void) {
grpc_tcp_server *s = grpc_tcp_server_create(); grpc_tcp_server *s = grpc_tcp_server_create();
LOG_TEST(); LOG_TEST("test_no_op_with_start");
grpc_tcp_server_start(s, NULL, 0, on_connect, NULL); grpc_tcp_server_start(s, NULL, 0, on_connect, NULL);
grpc_tcp_server_destroy(s, NULL, NULL); grpc_tcp_server_destroy(s, NULL, NULL);
} }
@ -74,7 +74,7 @@ static void test_no_op_with_start(void) {
static void test_no_op_with_port(void) { static void test_no_op_with_port(void) {
struct sockaddr_in addr; struct sockaddr_in addr;
grpc_tcp_server *s = grpc_tcp_server_create(); grpc_tcp_server *s = grpc_tcp_server_create();
LOG_TEST(); LOG_TEST("test_no_op_with_port");
memset(&addr, 0, sizeof(addr)); memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET; addr.sin_family = AF_INET;
@ -87,7 +87,7 @@ static void test_no_op_with_port(void) {
static void test_no_op_with_port_and_start(void) { static void test_no_op_with_port_and_start(void) {
struct sockaddr_in addr; struct sockaddr_in addr;
grpc_tcp_server *s = grpc_tcp_server_create(); grpc_tcp_server *s = grpc_tcp_server_create();
LOG_TEST(); LOG_TEST("test_no_op_with_port_and_start");
memset(&addr, 0, sizeof(addr)); memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET; addr.sin_family = AF_INET;
@ -107,7 +107,7 @@ static void test_connect(int n) {
int nconnects_before; int nconnects_before;
gpr_timespec deadline; gpr_timespec deadline;
int i; int i;
LOG_TEST(); LOG_TEST("test_connect");
gpr_log(GPR_INFO, "clients=%d", n); gpr_log(GPR_INFO, "clients=%d", n);
gpr_mu_lock(&mu); gpr_mu_lock(&mu);

@ -39,12 +39,12 @@
#include <grpc/support/useful.h> #include <grpc/support/useful.h>
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST() gpr_log(GPR_INFO, "%s", __FILE__)
static void test_simple_int(void) { static void test_simple_int(void) {
int x = 1; int x = 1;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "-foo", "3"}; char *args[] = {(char *)__FILE__, "-foo", "3"};
LOG_TEST(); LOG_TEST();
@ -59,7 +59,7 @@ static void test_simple_int(void) {
static void test_eq_int(void) { static void test_eq_int(void) {
int x = 1; int x = 1;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "-foo=3"}; char *args[] = {(char *)__FILE__, "-foo=3"};
LOG_TEST(); LOG_TEST();
@ -74,7 +74,7 @@ static void test_eq_int(void) {
static void test_2dash_int(void) { static void test_2dash_int(void) {
int x = 1; int x = 1;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--foo", "3"}; char *args[] = {(char *)__FILE__, "--foo", "3"};
LOG_TEST(); LOG_TEST();
@ -89,7 +89,7 @@ static void test_2dash_int(void) {
static void test_2dash_eq_int(void) { static void test_2dash_eq_int(void) {
int x = 1; int x = 1;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--foo=3"}; char *args[] = {(char *)__FILE__, "--foo=3"};
LOG_TEST(); LOG_TEST();
@ -104,7 +104,7 @@ static void test_2dash_eq_int(void) {
static void test_simple_string(void) { static void test_simple_string(void) {
char *x = NULL; char *x = NULL;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "-foo", "3"}; char *args[] = {(char *)__FILE__, "-foo", "3"};
LOG_TEST(); LOG_TEST();
@ -119,7 +119,7 @@ static void test_simple_string(void) {
static void test_eq_string(void) { static void test_eq_string(void) {
char *x = NULL; char *x = NULL;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "-foo=3"}; char *args[] = {(char *)__FILE__, "-foo=3"};
LOG_TEST(); LOG_TEST();
@ -134,7 +134,7 @@ static void test_eq_string(void) {
static void test_2dash_string(void) { static void test_2dash_string(void) {
char *x = NULL; char *x = NULL;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--foo", "3"}; char *args[] = {(char *)__FILE__, "--foo", "3"};
LOG_TEST(); LOG_TEST();
@ -149,7 +149,7 @@ static void test_2dash_string(void) {
static void test_2dash_eq_string(void) { static void test_2dash_eq_string(void) {
char *x = NULL; char *x = NULL;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--foo=3"}; char *args[] = {(char *)__FILE__, "--foo=3"};
LOG_TEST(); LOG_TEST();
@ -164,7 +164,7 @@ static void test_2dash_eq_string(void) {
static void test_flag_on(void) { static void test_flag_on(void) {
int x = 2; int x = 2;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--foo"}; char *args[] = {(char *)__FILE__, "--foo"};
LOG_TEST(); LOG_TEST();
@ -179,7 +179,7 @@ static void test_flag_on(void) {
static void test_flag_no(void) { static void test_flag_no(void) {
int x = 2; int x = 2;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--no-foo"}; char *args[] = {(char *)__FILE__, "--no-foo"};
LOG_TEST(); LOG_TEST();
@ -194,7 +194,7 @@ static void test_flag_no(void) {
static void test_flag_val_1(void) { static void test_flag_val_1(void) {
int x = 2; int x = 2;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--foo=1"}; char *args[] = {(char *)__FILE__, "--foo=1"};
LOG_TEST(); LOG_TEST();
@ -209,7 +209,7 @@ static void test_flag_val_1(void) {
static void test_flag_val_0(void) { static void test_flag_val_0(void) {
int x = 2; int x = 2;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--foo=0"}; char *args[] = {(char *)__FILE__, "--foo=0"};
LOG_TEST(); LOG_TEST();
@ -224,7 +224,7 @@ static void test_flag_val_0(void) {
static void test_flag_val_true(void) { static void test_flag_val_true(void) {
int x = 2; int x = 2;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--foo=true"}; char *args[] = {(char *)__FILE__, "--foo=true"};
LOG_TEST(); LOG_TEST();
@ -239,7 +239,7 @@ static void test_flag_val_true(void) {
static void test_flag_val_false(void) { static void test_flag_val_false(void) {
int x = 2; int x = 2;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--foo=false"}; char *args[] = {(char *)__FILE__, "--foo=false"};
LOG_TEST(); LOG_TEST();
@ -257,7 +257,7 @@ static void test_many(void) {
int flag = 2; int flag = 2;
gpr_cmdline *cl; gpr_cmdline *cl;
char *args[] = {(char *)__FUNCTION__, "--str", "hello", "-x=4", "-no-flag"}; char *args[] = {(char *)__FILE__, "--str", "hello", "-x=4", "-no-flag"};
LOG_TEST(); LOG_TEST();

@ -41,14 +41,14 @@
#include "src/core/support/string.h" #include "src/core/support/string.h"
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST_NAME() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST_NAME(x) gpr_log(GPR_INFO, "%s", x)
static void test_setenv_getenv(void) { static void test_setenv_getenv(void) {
const char *name = "FOO"; const char *name = "FOO";
const char *value = "BAR"; const char *value = "BAR";
char *retrieved_value; char *retrieved_value;
LOG_TEST_NAME(); LOG_TEST_NAME("test_setenv_getenv");
gpr_setenv(name, value); gpr_setenv(name, value);
retrieved_value = gpr_getenv(name); retrieved_value = gpr_getenv(name);

@ -42,7 +42,7 @@
#include "src/core/support/string.h" #include "src/core/support/string.h"
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST_NAME() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST_NAME(x) gpr_log(GPR_INFO, "%s", x)
static const char prefix[] = "file_test"; static const char prefix[] = "file_test";
@ -53,7 +53,7 @@ static void test_load_empty_file(void) {
int success; int success;
char *tmp_name; char *tmp_name;
LOG_TEST_NAME(); LOG_TEST_NAME("test_load_empty_file");
tmp = gpr_tmpfile(prefix, &tmp_name); tmp = gpr_tmpfile(prefix, &tmp_name);
GPR_ASSERT(tmp_name != NULL); GPR_ASSERT(tmp_name != NULL);
@ -81,7 +81,7 @@ static void test_load_failure(void) {
int success; int success;
char *tmp_name; char *tmp_name;
LOG_TEST_NAME(); LOG_TEST_NAME("test_load_failure");
tmp = gpr_tmpfile(prefix, &tmp_name); tmp = gpr_tmpfile(prefix, &tmp_name);
GPR_ASSERT(tmp_name != NULL); GPR_ASSERT(tmp_name != NULL);
@ -104,7 +104,7 @@ static void test_load_small_file(void) {
char *tmp_name; char *tmp_name;
const char *blah = "blah"; const char *blah = "blah";
LOG_TEST_NAME(); LOG_TEST_NAME("test_load_small_file");
tmp = gpr_tmpfile(prefix, &tmp_name); tmp = gpr_tmpfile(prefix, &tmp_name);
GPR_ASSERT(tmp_name != NULL); GPR_ASSERT(tmp_name != NULL);
@ -138,7 +138,7 @@ static void test_load_big_file(void) {
unsigned char *current; unsigned char *current;
size_t i; size_t i;
LOG_TEST_NAME(); LOG_TEST_NAME("test_load_big_file");
for (i = 0; i < sizeof(buffer); i++) { for (i = 0; i < sizeof(buffer); i++) {
buffer[i] = 42; buffer[i] = 42;

@ -34,7 +34,7 @@
#include <grpc/support/histogram.h> #include <grpc/support/histogram.h>
#include <grpc/support/log.h> #include <grpc/support/log.h>
#define LOG_TEST() gpr_log(GPR_INFO, "%s", __FUNCTION__); #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x);
static void test_no_op(void) { static void test_no_op(void) {
gpr_histogram_destroy(gpr_histogram_create(0.01, 60e9)); gpr_histogram_destroy(gpr_histogram_create(0.01, 60e9));
@ -52,7 +52,7 @@ static void expect_percentile(gpr_histogram *h, double percentile,
static void test_simple(void) { static void test_simple(void) {
gpr_histogram *h; gpr_histogram *h;
LOG_TEST(); LOG_TEST("test_simple");
h = gpr_histogram_create(0.01, 60e9); h = gpr_histogram_create(0.01, 60e9);
gpr_histogram_add(h, 10000); gpr_histogram_add(h, 10000);
@ -72,7 +72,7 @@ static void test_percentile(void) {
double i; double i;
double cur; double cur;
LOG_TEST(); LOG_TEST("test_percentile");
h = gpr_histogram_create(0.05, 1e9); h = gpr_histogram_create(0.05, 1e9);
gpr_histogram_add(h, 2.5); gpr_histogram_add(h, 2.5);
@ -117,7 +117,7 @@ static void test_merge(void) {
double i; double i;
double cur; double cur;
LOG_TEST(); LOG_TEST("test_merge");
h1 = gpr_histogram_create(0.05, 1e9); h1 = gpr_histogram_create(0.05, 1e9);
gpr_histogram_add(h1, 2.5); gpr_histogram_add(h1, 2.5);

@ -38,7 +38,7 @@
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST_NAME() gpr_log(GPR_INFO, "%s", __FUNCTION__); #define LOG_TEST_NAME(x) gpr_log(GPR_INFO, "%s", x);
static void test_slice_malloc_returns_something_sensible(void) { static void test_slice_malloc_returns_something_sensible(void) {
/* Calls gpr_slice_create for various lengths and verifies the internals for /* Calls gpr_slice_create for various lengths and verifies the internals for
@ -47,7 +47,7 @@ static void test_slice_malloc_returns_something_sensible(void) {
size_t i; size_t i;
gpr_slice slice; gpr_slice slice;
LOG_TEST_NAME(); LOG_TEST_NAME("test_slice_malloc_returns_something_sensible");
for (length = 0; length <= 1024; length++) { for (length = 0; length <= 1024; length++) {
slice = gpr_slice_malloc(length); slice = gpr_slice_malloc(length);
@ -108,7 +108,7 @@ static void test_slice_sub_works(unsigned length) {
gpr_slice sub; gpr_slice sub;
unsigned i, j, k; unsigned i, j, k;
LOG_TEST_NAME(); LOG_TEST_NAME("test_slice_sub_works");
gpr_log(GPR_INFO, "length=%d", length); gpr_log(GPR_INFO, "length=%d", length);
/* Create a slice in which each byte is equal to the distance from it to the /* Create a slice in which each byte is equal to the distance from it to the
@ -147,7 +147,7 @@ static void test_slice_split_head_works(int length) {
gpr_slice head, tail; gpr_slice head, tail;
int i; int i;
LOG_TEST_NAME(); LOG_TEST_NAME("test_slice_split_head_works");
gpr_log(GPR_INFO, "length=%d", length); gpr_log(GPR_INFO, "length=%d", length);
/* Create a slice in which each byte is equal to the distance from it to the /* Create a slice in which each byte is equal to the distance from it to the
@ -175,7 +175,7 @@ static void test_slice_split_tail_works(int length) {
gpr_slice head, tail; gpr_slice head, tail;
int i; int i;
LOG_TEST_NAME(); LOG_TEST_NAME("test_slice_split_tail_works");
gpr_log(GPR_INFO, "length=%d", length); gpr_log(GPR_INFO, "length=%d", length);
/* Create a slice in which each byte is equal to the distance from it to the /* Create a slice in which each byte is equal to the distance from it to the
@ -202,7 +202,7 @@ static void test_slice_from_copied_string_works(void) {
static const char *text = "HELLO WORLD!"; static const char *text = "HELLO WORLD!";
gpr_slice slice; gpr_slice slice;
LOG_TEST_NAME(); LOG_TEST_NAME("test_slice_from_copied_string_works");
slice = gpr_slice_from_copied_string(text); slice = gpr_slice_from_copied_string(text);
GPR_ASSERT(strlen(text) == GPR_SLICE_LENGTH(slice)); GPR_ASSERT(strlen(text) == GPR_SLICE_LENGTH(slice));

@ -42,13 +42,13 @@
#include <grpc/support/useful.h> #include <grpc/support/useful.h>
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST_NAME() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST_NAME(x) gpr_log(GPR_INFO, "%s", x)
static void test_strdup(void) { static void test_strdup(void) {
static const char *src1 = "hello world"; static const char *src1 = "hello world";
char *dst1; char *dst1;
LOG_TEST_NAME(); LOG_TEST_NAME("test_strdup");
dst1 = gpr_strdup(src1); dst1 = gpr_strdup(src1);
GPR_ASSERT(0 == strcmp(src1, dst1)); GPR_ASSERT(0 == strcmp(src1, dst1));
@ -65,7 +65,7 @@ static void expect_hexdump(const char *buf, size_t len, gpr_uint32 flags,
} }
static void test_hexdump(void) { static void test_hexdump(void) {
LOG_TEST_NAME(); LOG_TEST_NAME("test_hexdump");
expect_hexdump("\x01", 1, 0, "01"); expect_hexdump("\x01", 1, 0, "01");
expect_hexdump("\x01", 1, GPR_HEXDUMP_PLAINTEXT, "01 '.'"); expect_hexdump("\x01", 1, GPR_HEXDUMP_PLAINTEXT, "01 '.'");
expect_hexdump("\x01\x02", 2, 0, "01 02"); expect_hexdump("\x01\x02", 2, 0, "01 02");
@ -86,7 +86,7 @@ static void test_pu32_succeed(const char *s, gpr_uint32 want) {
} }
static void test_parse_uint32(void) { static void test_parse_uint32(void) {
LOG_TEST_NAME(); LOG_TEST_NAME("test_parse_uint32");
test_pu32_fail("-1"); test_pu32_fail("-1");
test_pu32_fail("a"); test_pu32_fail("a");
@ -123,7 +123,7 @@ static void test_asprintf(void) {
char *buf; char *buf;
int i, j; int i, j;
LOG_TEST_NAME(); LOG_TEST_NAME("test_asprintf");
/* Print an empty string. */ /* Print an empty string. */
GPR_ASSERT(gpr_asprintf(&buf, "") == 0); GPR_ASSERT(gpr_asprintf(&buf, "") == 0);

@ -44,13 +44,13 @@
#include <string.h> #include <string.h>
#define LOG_TEST() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x)
static void test_create(void) { static void test_create(void) {
grpc_byte_buffer *buffer; grpc_byte_buffer *buffer;
grpc_byte_buffer_reader *reader; grpc_byte_buffer_reader *reader;
gpr_slice empty = gpr_empty_slice(); gpr_slice empty = gpr_empty_slice();
LOG_TEST(); LOG_TEST("test_create");
buffer = grpc_byte_buffer_create(&empty, 1); buffer = grpc_byte_buffer_create(&empty, 1);
reader = grpc_byte_buffer_reader_create(buffer); reader = grpc_byte_buffer_reader_create(buffer);
grpc_byte_buffer_reader_destroy(reader); grpc_byte_buffer_reader_destroy(reader);
@ -64,7 +64,7 @@ static void test_read_one_slice(void) {
gpr_slice first_slice, second_slice; gpr_slice first_slice, second_slice;
int first_code, second_code; int first_code, second_code;
LOG_TEST(); LOG_TEST("test_read_one_slice");
slice = gpr_slice_from_copied_string("test"); slice = gpr_slice_from_copied_string("test");
buffer = grpc_byte_buffer_create(&slice, 1); buffer = grpc_byte_buffer_create(&slice, 1);
gpr_slice_unref(slice); gpr_slice_unref(slice);
@ -86,7 +86,7 @@ static void test_read_one_slice_malloc(void) {
gpr_slice first_slice, second_slice; gpr_slice first_slice, second_slice;
int first_code, second_code; int first_code, second_code;
LOG_TEST(); LOG_TEST("test_read_one_slice_malloc");
slice = gpr_slice_malloc(4); slice = gpr_slice_malloc(4);
memcpy(GPR_SLICE_START_PTR(slice), "test", 4); memcpy(GPR_SLICE_START_PTR(slice), "test", 4);
buffer = grpc_byte_buffer_create(&slice, 1); buffer = grpc_byte_buffer_create(&slice, 1);

@ -41,7 +41,7 @@
#include <grpc/support/useful.h> #include <grpc/support/useful.h>
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x)
static void *create_test_tag(void) { static void *create_test_tag(void) {
static gpr_intptr i = 0; static gpr_intptr i = 0;
@ -59,14 +59,14 @@ static void shutdown_and_destroy(grpc_completion_queue *cc) {
/* ensure we can create and destroy a completion channel */ /* ensure we can create and destroy a completion channel */
static void test_no_op(void) { static void test_no_op(void) {
LOG_TEST(); LOG_TEST("test_no_op");
shutdown_and_destroy(grpc_completion_queue_create()); shutdown_and_destroy(grpc_completion_queue_create());
} }
static void test_wait_empty(void) { static void test_wait_empty(void) {
grpc_completion_queue *cc; grpc_completion_queue *cc;
LOG_TEST(); LOG_TEST("test_wait_empty");
cc = grpc_completion_queue_create(); cc = grpc_completion_queue_create();
GPR_ASSERT(grpc_completion_queue_next(cc, gpr_now()).type == GPR_ASSERT(grpc_completion_queue_next(cc, gpr_now()).type ==
@ -79,7 +79,7 @@ static void test_cq_end_op(void) {
grpc_completion_queue *cc; grpc_completion_queue *cc;
void *tag = create_test_tag(); void *tag = create_test_tag();
LOG_TEST(); LOG_TEST("test_cq_end_op");
cc = grpc_completion_queue_create(); cc = grpc_completion_queue_create();
@ -100,7 +100,7 @@ static void test_pluck(void) {
void *tags[128]; void *tags[128];
unsigned i, j; unsigned i, j;
LOG_TEST(); LOG_TEST("test_pluck");
for (i = 0; i < GPR_ARRAY_SIZE(tags); i++) { for (i = 0; i < GPR_ARRAY_SIZE(tags); i++) {
tags[i] = create_test_tag(); tags[i] = create_test_tag();
@ -222,7 +222,7 @@ static void test_threading(int producers, int consumers) {
int total_consumed = 0; int total_consumed = 0;
static int optid = 101; static int optid = 101;
gpr_log(GPR_INFO, "%s: %d producers, %d consumers", __FUNCTION__, producers, gpr_log(GPR_INFO, "%s: %d producers, %d consumers", "test_threading", producers,
consumers); consumers);
grpc_completion_queue_dont_poll_test_only(cc); grpc_completion_queue_dont_poll_test_only(cc);

@ -41,7 +41,7 @@
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x)
static void assert_str(const grpc_chttp2_hptbl *tbl, grpc_mdstr *mdstr, static void assert_str(const grpc_chttp2_hptbl *tbl, grpc_mdstr *mdstr,
const char *str) { const char *str) {
@ -62,7 +62,7 @@ static void test_static_lookup(void) {
mdctx = grpc_mdctx_create(); mdctx = grpc_mdctx_create();
grpc_chttp2_hptbl_init(&tbl, mdctx); grpc_chttp2_hptbl_init(&tbl, mdctx);
LOG_TEST(); LOG_TEST("test_static_lookup");
assert_index(&tbl, 1, ":authority", ""); assert_index(&tbl, 1, ":authority", "");
assert_index(&tbl, 2, ":method", "GET"); assert_index(&tbl, 2, ":method", "GET");
assert_index(&tbl, 3, ":method", "POST"); assert_index(&tbl, 3, ":method", "POST");
@ -136,7 +136,7 @@ static void test_many_additions(void) {
char *value; char *value;
grpc_mdctx *mdctx; grpc_mdctx *mdctx;
LOG_TEST(); LOG_TEST("test_many_additions");
mdctx = grpc_mdctx_create(); mdctx = grpc_mdctx_create();
grpc_chttp2_hptbl_init(&tbl, mdctx); grpc_chttp2_hptbl_init(&tbl, mdctx);
@ -177,7 +177,7 @@ static void test_find(void) {
grpc_mdctx *mdctx; grpc_mdctx *mdctx;
grpc_chttp2_hptbl_find_result r; grpc_chttp2_hptbl_find_result r;
LOG_TEST(); LOG_TEST("test_find");
mdctx = grpc_mdctx_create(); mdctx = grpc_mdctx_create();
grpc_chttp2_hptbl_init(&tbl, mdctx); grpc_chttp2_hptbl_init(&tbl, mdctx);

@ -35,13 +35,13 @@
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x)
/* test creation & destruction */ /* test creation & destruction */
static void test_no_op(void) { static void test_no_op(void) {
grpc_chttp2_stream_map map; grpc_chttp2_stream_map map;
LOG_TEST(); LOG_TEST("test_no_op");
grpc_chttp2_stream_map_init(&map, 8); grpc_chttp2_stream_map_init(&map, 8);
grpc_chttp2_stream_map_destroy(&map); grpc_chttp2_stream_map_destroy(&map);
@ -51,7 +51,7 @@ static void test_no_op(void) {
static void test_empty_find(void) { static void test_empty_find(void) {
grpc_chttp2_stream_map map; grpc_chttp2_stream_map map;
LOG_TEST(); LOG_TEST("test_empty_find");
grpc_chttp2_stream_map_init(&map, 8); grpc_chttp2_stream_map_init(&map, 8);
GPR_ASSERT(NULL == grpc_chttp2_stream_map_find(&map, 39128)); GPR_ASSERT(NULL == grpc_chttp2_stream_map_find(&map, 39128));
@ -62,7 +62,7 @@ static void test_empty_find(void) {
static void test_double_deletion(void) { static void test_double_deletion(void) {
grpc_chttp2_stream_map map; grpc_chttp2_stream_map map;
LOG_TEST(); LOG_TEST("test_double_deletion");
grpc_chttp2_stream_map_init(&map, 8); grpc_chttp2_stream_map_init(&map, 8);
GPR_ASSERT(0 == grpc_chttp2_stream_map_size(&map)); GPR_ASSERT(0 == grpc_chttp2_stream_map_size(&map));
@ -87,7 +87,7 @@ static void test_basic_add_find(size_t n) {
size_t i; size_t i;
size_t got; size_t got;
LOG_TEST(); LOG_TEST("test_basic_add_find");
gpr_log(GPR_INFO, "n = %d", n); gpr_log(GPR_INFO, "n = %d", n);
grpc_chttp2_stream_map_init(&map, 8); grpc_chttp2_stream_map_init(&map, 8);
@ -143,7 +143,7 @@ static void test_delete_evens_sweep(size_t n) {
grpc_chttp2_stream_map map; grpc_chttp2_stream_map map;
size_t i; size_t i;
LOG_TEST(); LOG_TEST("test_delete_evens_sweep");
gpr_log(GPR_INFO, "n = %d", n); gpr_log(GPR_INFO, "n = %d", n);
grpc_chttp2_stream_map_init(&map, 8); grpc_chttp2_stream_map_init(&map, 8);
@ -165,7 +165,7 @@ static void test_delete_evens_incremental(size_t n) {
grpc_chttp2_stream_map map; grpc_chttp2_stream_map map;
size_t i; size_t i;
LOG_TEST(); LOG_TEST("test_delete_evens_incremental");
gpr_log(GPR_INFO, "n = %d", n); gpr_log(GPR_INFO, "n = %d", n);
grpc_chttp2_stream_map_init(&map, 8); grpc_chttp2_stream_map_init(&map, 8);
@ -186,7 +186,7 @@ static void test_periodic_compaction(size_t n) {
size_t i; size_t i;
size_t del; size_t del;
LOG_TEST(); LOG_TEST("test_periodic_compaction");
gpr_log(GPR_INFO, "n = %d", n); gpr_log(GPR_INFO, "n = %d", n);
grpc_chttp2_stream_map_init(&map, 16); grpc_chttp2_stream_map_init(&map, 16);

@ -42,7 +42,7 @@
#include <grpc/support/useful.h> #include <grpc/support/useful.h>
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x)
static void assert_encodes_as(gpr_timespec ts, const char *s) { static void assert_encodes_as(gpr_timespec ts, const char *s) {
char buffer[GRPC_CHTTP2_TIMEOUT_ENCODE_MIN_BUFSIZE]; char buffer[GRPC_CHTTP2_TIMEOUT_ENCODE_MIN_BUFSIZE];
@ -52,7 +52,7 @@ static void assert_encodes_as(gpr_timespec ts, const char *s) {
} }
void test_encoding(void) { void test_encoding(void) {
LOG_TEST(); LOG_TEST("test_encoding");
assert_encodes_as(gpr_time_from_micros(-1), "1n"); assert_encodes_as(gpr_time_from_micros(-1), "1n");
assert_encodes_as(gpr_time_from_seconds(-10), "1n"); assert_encodes_as(gpr_time_from_seconds(-10), "1n");
assert_encodes_as(gpr_time_from_nanos(10), "10n"); assert_encodes_as(gpr_time_from_nanos(10), "10n");
@ -116,7 +116,7 @@ void decode_suite(char ext, gpr_timespec (*answer)(long x)) {
} }
void test_decoding(void) { void test_decoding(void) {
LOG_TEST(); LOG_TEST("test_decoding");
decode_suite('n', gpr_time_from_nanos); decode_suite('n', gpr_time_from_nanos);
decode_suite('u', gpr_time_from_micros); decode_suite('u', gpr_time_from_micros);
decode_suite('m', gpr_time_from_millis); decode_suite('m', gpr_time_from_millis);
@ -128,7 +128,7 @@ void test_decoding(void) {
void test_decoding_fails(void) { void test_decoding_fails(void) {
gpr_timespec x; gpr_timespec x;
LOG_TEST(); LOG_TEST("test_decoding_fails");
GPR_ASSERT(0 == grpc_chttp2_decode_timeout("", &x)); GPR_ASSERT(0 == grpc_chttp2_decode_timeout("", &x));
GPR_ASSERT(0 == grpc_chttp2_decode_timeout(" ", &x)); GPR_ASSERT(0 == grpc_chttp2_decode_timeout(" ", &x));
GPR_ASSERT(0 == grpc_chttp2_decode_timeout("x", &x)); GPR_ASSERT(0 == grpc_chttp2_decode_timeout("x", &x));

@ -41,7 +41,7 @@
#include <grpc/support/log.h> #include <grpc/support/log.h>
#include "test/core/util/test_config.h" #include "test/core/util/test_config.h"
#define LOG_TEST() gpr_log(GPR_INFO, "%s", __FUNCTION__) #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x)
/* a large number */ /* a large number */
#define MANY 10000 #define MANY 10000
@ -49,7 +49,7 @@
static void test_no_op(void) { static void test_no_op(void) {
grpc_mdctx *ctx; grpc_mdctx *ctx;
LOG_TEST(); LOG_TEST("test_no_op");
ctx = grpc_mdctx_create(); ctx = grpc_mdctx_create();
grpc_mdctx_unref(ctx); grpc_mdctx_unref(ctx);
@ -59,7 +59,7 @@ static void test_create_string(void) {
grpc_mdctx *ctx; grpc_mdctx *ctx;
grpc_mdstr *s1, *s2, *s3; grpc_mdstr *s1, *s2, *s3;
LOG_TEST(); LOG_TEST("test_create_string");
ctx = grpc_mdctx_create(); ctx = grpc_mdctx_create();
s1 = grpc_mdstr_from_string(ctx, "hello"); s1 = grpc_mdstr_from_string(ctx, "hello");
@ -79,7 +79,7 @@ static void test_create_metadata(void) {
grpc_mdctx *ctx; grpc_mdctx *ctx;
grpc_mdelem *m1, *m2, *m3; grpc_mdelem *m1, *m2, *m3;
LOG_TEST(); LOG_TEST("test_create_metadata");
ctx = grpc_mdctx_create(); ctx = grpc_mdctx_create();
m1 = grpc_mdelem_from_strings(ctx, "a", "b"); m1 = grpc_mdelem_from_strings(ctx, "a", "b");
@ -104,7 +104,7 @@ static void test_create_many_ephemeral_metadata(void) {
long i; long i;
size_t mdtab_capacity_before; size_t mdtab_capacity_before;
LOG_TEST(); LOG_TEST("test_create_many_ephemeral_metadata");
ctx = grpc_mdctx_create(); ctx = grpc_mdctx_create();
mdtab_capacity_before = grpc_mdctx_get_mdtab_capacity_test_only(ctx); mdtab_capacity_before = grpc_mdctx_get_mdtab_capacity_test_only(ctx);
@ -126,7 +126,7 @@ static void test_create_many_persistant_metadata(void) {
grpc_mdelem **created = gpr_malloc(sizeof(grpc_mdelem *) * MANY); grpc_mdelem **created = gpr_malloc(sizeof(grpc_mdelem *) * MANY);
grpc_mdelem *md; grpc_mdelem *md;
LOG_TEST(); LOG_TEST("test_create_many_persistant_metadata");
ctx = grpc_mdctx_create(); ctx = grpc_mdctx_create();
/* add phase */ /* add phase */
@ -153,7 +153,7 @@ static void test_create_many_persistant_metadata(void) {
static void test_spin_creating_the_same_thing(void) { static void test_spin_creating_the_same_thing(void) {
grpc_mdctx *ctx; grpc_mdctx *ctx;
LOG_TEST(); LOG_TEST("test_spin_creating_the_same_thing");
ctx = grpc_mdctx_create(); ctx = grpc_mdctx_create();
GPR_ASSERT(grpc_mdctx_get_mdtab_count_test_only(ctx) == 0); GPR_ASSERT(grpc_mdctx_get_mdtab_count_test_only(ctx) == 0);
@ -183,7 +183,7 @@ static void test_things_stick_around(void) {
int *shuf = gpr_malloc(sizeof(int) * nstrs); int *shuf = gpr_malloc(sizeof(int) * nstrs);
grpc_mdstr *test; grpc_mdstr *test;
LOG_TEST(); LOG_TEST("test_things_stick_around");
ctx = grpc_mdctx_create(); ctx = grpc_mdctx_create();
@ -229,7 +229,7 @@ static void test_slices_work(void) {
grpc_mdstr *str; grpc_mdstr *str;
gpr_slice slice; gpr_slice slice;
LOG_TEST(); LOG_TEST("test_slices_work");
ctx = grpc_mdctx_create(); ctx = grpc_mdctx_create();
@ -254,7 +254,7 @@ static void test_base64_and_huffman_works(void) {
gpr_slice slice1; gpr_slice slice1;
gpr_slice slice2; gpr_slice slice2;
LOG_TEST(); LOG_TEST("test_base64_and_huffman_works");
ctx = grpc_mdctx_create(); ctx = grpc_mdctx_create();
str = grpc_mdstr_from_string(ctx, "abcdefg"); str = grpc_mdstr_from_string(ctx, "abcdefg");

@ -57,8 +57,8 @@ const std::vector<int> response_stream_sizes = {31415, 9, 2653, 58979};
const int kNumResponseMessages = 2000; const int kNumResponseMessages = 2000;
const int kResponseMessageSize = 1030; const int kResponseMessageSize = 1030;
const int kReceiveDelayMilliSeconds = 20; const int kReceiveDelayMilliSeconds = 20;
const int kLargeRequestSize = 314159; const int kLargeRequestSize = 271828;
const int kLargeResponseSize = 271812; const int kLargeResponseSize = 314159;
} // namespace } // namespace
InteropClient::InteropClient(std::shared_ptr<ChannelInterface> channel) InteropClient::InteropClient(std::shared_ptr<ChannelInterface> channel)

@ -1 +1 @@
Subproject commit a8b38c598d7f65b281a72809b28117afdb760931 Subproject commit 8908cf16fe81f42c766fdf067b1da4554f54ed87

@ -0,0 +1,34 @@
#!/usr/bin/env python
# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""This is used by run_tests.py to create cpu load on a machine"""
while True:
pass

@ -45,6 +45,6 @@ git submodule > $submodules
diff -u $submodules - << EOF diff -u $submodules - << EOF
05b155ff59114735ec8cd089f669c4c3d8f59029 third_party/gflags (v2.1.0-45-g05b155f) 05b155ff59114735ec8cd089f669c4c3d8f59029 third_party/gflags (v2.1.0-45-g05b155f)
3df69d3aefde7671053d4e3c242b228e5d79c83f third_party/openssl (OpenSSL_1_0_2a) 3df69d3aefde7671053d4e3c242b228e5d79c83f third_party/openssl (OpenSSL_1_0_2a)
a8b38c598d7f65b281a72809b28117afdb760931 third_party/protobuf (v3.0.0-alpha-1-978-ga8b38c5) 8908cf16fe81f42c766fdf067b1da4554f54ed87 third_party/protobuf (v3.0.0-alpha-1-1044-g8908cf1)
50893291621658f355bc5b4d450a8d06a563053d third_party/zlib (v1.2.8) 50893291621658f355bc5b4d450a8d06a563053d third_party/zlib (v1.2.8)
EOF EOF

@ -40,6 +40,7 @@ import re
import sys import sys
import time import time
import platform import platform
import subprocess
import jobset import jobset
import watch_dirs import watch_dirs
@ -348,6 +349,7 @@ argp.add_argument('-l', '--language',
choices=sorted(_LANGUAGES.keys()), choices=sorted(_LANGUAGES.keys()),
nargs='+', nargs='+',
default=sorted(_LANGUAGES.keys())) default=sorted(_LANGUAGES.keys()))
argp.add_argument('-a', '--antagonists', default=0, type=int)
args = argp.parse_args() args = argp.parse_args()
# grab config # grab config
@ -442,14 +444,21 @@ def _build_and_run(check_cancelled, newline_on_success, travis, cache):
newline_on_success=newline_on_success, travis=travis): newline_on_success=newline_on_success, travis=travis):
return 1 return 1
# run all the tests # start antagonists
all_runs = itertools.chain.from_iterable( antagonists = [subprocess.Popen(['tools/run_tests/antagonist.py'])
itertools.repeat(one_run, runs_per_test)) for _ in range(0, args.antagonists)]
if not jobset.run(all_runs, check_cancelled, try:
newline_on_success=newline_on_success, travis=travis, # run all the tests
maxjobs=args.jobs, all_runs = itertools.chain.from_iterable(
cache=cache): itertools.repeat(one_run, runs_per_test))
return 2 if not jobset.run(all_runs, check_cancelled,
newline_on_success=newline_on_success, travis=travis,
maxjobs=args.jobs,
cache=cache):
return 2
finally:
for antagonist in antagonists:
antagonist.kill()
return 0 return 0

Loading…
Cancel
Save