diff options
author | Craig Tiller <craig.tiller@gmail.com> | 2015-05-19 10:23:03 -0700 |
---|---|---|
committer | Craig Tiller <craig.tiller@gmail.com> | 2015-05-19 10:23:03 -0700 |
commit | fd7166d264b4abd9dab4215cdc60a0c9dc635c8e (patch) | |
tree | bbb806af5647eeebdd89005ad6a50ea626572ab3 /test/cpp/end2end/server_crash_test.cc | |
parent | 7a317e5c7714c869f2a49c7e073a057bc9b13b82 (diff) |
Add response streams to server crash test, fix them
Diffstat (limited to 'test/cpp/end2end/server_crash_test.cc')
-rw-r--r-- | test/cpp/end2end/server_crash_test.cc | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/test/cpp/end2end/server_crash_test.cc b/test/cpp/end2end/server_crash_test.cc index 8f3954f921..11d73aec7d 100644 --- a/test/cpp/end2end/server_crash_test.cc +++ b/test/cpp/end2end/server_crash_test.cc @@ -79,6 +79,20 @@ class ServiceImpl GRPC_FINAL : public ::grpc::cpp::test::util::TestService::Serv gpr_log(GPR_INFO, "recv msg %s", request.message().c_str()); response.set_message(request.message()); stream->Write(response); + gpr_sleep_until(gpr_time_add(gpr_now(), gpr_time_from_seconds(1))); + } + return Status::OK; + } + + Status ResponseStream(ServerContext* context, const EchoRequest* request, + ServerWriter<EchoResponse>* writer) GRPC_OVERRIDE { + EchoResponse response; + for (int i = 0;; i++) { + std::ostringstream msg; + msg << "Hello " << i; + response.set_message(msg.str()); + if (!writer->Write(response)) break; + gpr_sleep_until(gpr_time_add(gpr_now(), gpr_time_from_seconds(1))); } return Status::OK; } @@ -89,7 +103,7 @@ class CrashTest : public ::testing::Test { CrashTest() {} std::unique_ptr<Server> - CreateServerAndClient() { + CreateServerAndClient(const std::string& mode) { auto port = grpc_pick_unused_port_or_die(); std::ostringstream addr_stream; addr_stream << "localhost:" << port; @@ -97,6 +111,7 @@ class CrashTest : public ::testing::Test { client_.reset(new SubProcess({ g_root + "/server_crash_test_client", "--address=" + addr, + "--mode=" + mode })); GPR_ASSERT(client_); @@ -115,8 +130,16 @@ class CrashTest : public ::testing::Test { ServiceImpl service_; }; -TEST_F(CrashTest, Kill) { - auto server = CreateServerAndClient(); +TEST_F(CrashTest, ResponseStream) { + auto server = CreateServerAndClient("response"); + + gpr_sleep_until(gpr_time_add(gpr_now(), gpr_time_from_seconds(5))); + KillClient(); + server->Shutdown(); +} + +TEST_F(CrashTest, BidiStream) { + auto server = CreateServerAndClient("bidi"); gpr_sleep_until(gpr_time_add(gpr_now(), gpr_time_from_seconds(5))); KillClient(); |