diff --git a/CMakeLists.txt b/CMakeLists.txt index b99217c273a..05a9d7b62b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -827,6 +827,7 @@ if(gRPC_BUILD_TESTS) endif() add_dependencies(buildtests_cxx timer_test) add_dependencies(buildtests_cxx tls_security_connector_test) + add_dependencies(buildtests_cxx too_many_pings_test) add_dependencies(buildtests_cxx unknown_frame_bad_client_test) add_dependencies(buildtests_cxx window_overflow_bad_client_test) if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) @@ -14128,6 +14129,48 @@ target_link_libraries(tls_security_connector_test ) +endif() +if(gRPC_BUILD_TESTS) + +add_executable(too_many_pings_test + test/core/end2end/cq_verifier.cc + test/core/transport/chttp2/too_many_pings_test.cc + third_party/googletest/googletest/src/gtest-all.cc + third_party/googletest/googlemock/src/gmock-all.cc +) + +target_include_directories(too_many_pings_test + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR} + ${_gRPC_SSL_INCLUDE_DIR} + ${_gRPC_UPB_GENERATED_DIR} + ${_gRPC_UPB_GRPC_GENERATED_DIR} + ${_gRPC_UPB_INCLUDE_DIR} + ${_gRPC_ZLIB_INCLUDE_DIR} + third_party/googletest/googletest/include + third_party/googletest/googletest + third_party/googletest/googlemock/include + third_party/googletest/googlemock + ${_gRPC_PROTO_GENS_DIR} +) + +target_link_libraries(too_many_pings_test + ${_gRPC_PROTOBUF_LIBRARIES} + ${_gRPC_ALLTARGETS_LIBRARIES} + grpc++_test_util + grpc_test_util + grpc++ + grpc++_test_config + grpc + gpr + address_sorting + upb + ${_gRPC_GFLAGS_LIBRARIES} +) + + endif() if(gRPC_BUILD_TESTS) diff --git a/Makefile b/Makefile index 963c2960f02..a813aaf8899 100644 --- a/Makefile +++ b/Makefile @@ -1297,6 +1297,7 @@ thread_stress_test: $(BINDIR)/$(CONFIG)/thread_stress_test time_jump_test: $(BINDIR)/$(CONFIG)/time_jump_test timer_test: $(BINDIR)/$(CONFIG)/timer_test tls_security_connector_test: $(BINDIR)/$(CONFIG)/tls_security_connector_test +too_many_pings_test: $(BINDIR)/$(CONFIG)/too_many_pings_test unknown_frame_bad_client_test: $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test uri_fuzzer_test: $(BINDIR)/$(CONFIG)/uri_fuzzer_test window_overflow_bad_client_test: $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test @@ -1656,6 +1657,7 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/time_jump_test \ $(BINDIR)/$(CONFIG)/timer_test \ $(BINDIR)/$(CONFIG)/tls_security_connector_test \ + $(BINDIR)/$(CONFIG)/too_many_pings_test \ $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test \ $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test \ $(BINDIR)/$(CONFIG)/work_serializer_test \ @@ -1812,6 +1814,7 @@ buildtests_cxx: privatelibs_cxx \ $(BINDIR)/$(CONFIG)/time_jump_test \ $(BINDIR)/$(CONFIG)/timer_test \ $(BINDIR)/$(CONFIG)/tls_security_connector_test \ + $(BINDIR)/$(CONFIG)/too_many_pings_test \ $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test \ $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test \ $(BINDIR)/$(CONFIG)/work_serializer_test \ @@ -2344,6 +2347,8 @@ test_cxx: buildtests_cxx $(Q) $(BINDIR)/$(CONFIG)/timer_test || ( echo test timer_test failed ; exit 1 ) $(E) "[RUN] Testing tls_security_connector_test" $(Q) $(BINDIR)/$(CONFIG)/tls_security_connector_test || ( echo test tls_security_connector_test failed ; exit 1 ) + $(E) "[RUN] Testing too_many_pings_test" + $(Q) $(BINDIR)/$(CONFIG)/too_many_pings_test || ( echo test too_many_pings_test failed ; exit 1 ) $(E) "[RUN] Testing unknown_frame_bad_client_test" $(Q) $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test || ( echo test unknown_frame_bad_client_test failed ; exit 1 ) $(E) "[RUN] Testing window_overflow_bad_client_test" @@ -18532,6 +18537,52 @@ endif endif +TOO_MANY_PINGS_TEST_SRC = \ + test/core/end2end/cq_verifier.cc \ + test/core/transport/chttp2/too_many_pings_test.cc \ + +TOO_MANY_PINGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(TOO_MANY_PINGS_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/too_many_pings_test: openssl_dep_error + +else + + + + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.5.0+. + +$(BINDIR)/$(CONFIG)/too_many_pings_test: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/too_many_pings_test: $(PROTOBUF_DEP) $(TOO_MANY_PINGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LDXX) $(LDFLAGS) $(TOO_MANY_PINGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/too_many_pings_test + +endif + +endif + +$(OBJDIR)/$(CONFIG)/test/core/end2end/cq_verifier.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a + +$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/too_many_pings_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libaddress_sorting.a $(LIBDIR)/$(CONFIG)/libupb.a + +deps_too_many_pings_test: $(TOO_MANY_PINGS_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(TOO_MANY_PINGS_TEST_OBJS:.o=.dep) +endif +endif + + UNKNOWN_FRAME_BAD_CLIENT_TEST_SRC = \ test/core/bad_client/bad_client.cc \ test/core/bad_client/tests/unknown_frame.cc \ diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index 631005fa5bc..9eb53b8e576 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -7395,6 +7395,24 @@ targets: - gpr - address_sorting - upb +- name: too_many_pings_test + gtest: true + build: test + language: c++ + headers: + - test/core/end2end/cq_verifier.h + src: + - test/core/end2end/cq_verifier.cc + - test/core/transport/chttp2/too_many_pings_test.cc + deps: + - grpc++_test_util + - grpc_test_util + - grpc++ + - grpc++_test_config + - grpc + - gpr + - address_sorting + - upb - name: unknown_frame_bad_client_test gtest: true build: test diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index d07c55a4df3..d111b2fd8d7 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -5809,6 +5809,30 @@ ], "uses_polling": true }, + { + "args": [], + "benchmark": false, + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "exclude_iomgrs": [], + "flaky": false, + "gtest": true, + "language": "c++", + "name": "too_many_pings_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "uses_polling": true + }, { "args": [], "benchmark": false,