aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cpp/end2end/server_crash_test.cc
diff options
context:
space:
mode:
authorGravatar Craig Tiller <craig.tiller@gmail.com>2015-05-19 10:23:03 -0700
committerGravatar Craig Tiller <craig.tiller@gmail.com>2015-05-19 10:23:03 -0700
commitfd7166d264b4abd9dab4215cdc60a0c9dc635c8e (patch)
treebbb806af5647eeebdd89005ad6a50ea626572ab3 /test/cpp/end2end/server_crash_test.cc
parent7a317e5c7714c869f2a49c7e073a057bc9b13b82 (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.cc29
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();