diff options
author | 2016-10-07 15:35:48 -0700 | |
---|---|---|
committer | 2016-10-07 15:35:48 -0700 | |
commit | 2cef11c6674e67aea8e7f63f7ac2869e5d44a7c5 (patch) | |
tree | cc6e701ff1300fcde90ab5e20424fc819aeb34e9 /test/cpp/interop/interop_server.cc | |
parent | c5b927abce05bb389be81d8e38c71a9144743653 (diff) |
added status request ability to the FullDuplexCall so that cpp server can pass the node client's status_code_and_message test
Diffstat (limited to 'test/cpp/interop/interop_server.cc')
-rw-r--r-- | test/cpp/interop/interop_server.cc | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/test/cpp/interop/interop_server.cc b/test/cpp/interop/interop_server.cc index c05eb5d146..0da37e1551 100644 --- a/test/cpp/interop/interop_server.cc +++ b/test/cpp/interop/interop_server.cc @@ -82,6 +82,8 @@ const char kEchoInitialMetadataKey[] = "x-grpc-test-echo-initial"; const char kEchoTrailingBinMetadataKey[] = "x-grpc-test-echo-trailing-bin"; const char kEchoUserAgentKey[] = "x-grpc-test-echo-useragent"; +namespace { + void MaybeEchoMetadata(ServerContext* context) { const auto& client_metadata = context->client_metadata(); GPR_ASSERT(client_metadata.count(kEchoInitialMetadataKey) <= 1); @@ -145,6 +147,28 @@ bool CheckExpectedCompression(const ServerContext& context, return true; } +Status RequestedStatusOrOk(const SimpleRequest* request) { + if (request->has_response_status()) { + return Status( + static_cast<grpc::StatusCode>(request->response_status().code()), + request->response_status().message()); + } else { + return Status::OK; + } +} + +Status RequestedStatusOrOk(const StreamingOutputCallRequest* request) { + if (request->has_response_status()) { + return Status( + static_cast<grpc::StatusCode>(request->response_status().code()), + request->response_status().message()); + } else { + return Status::OK; + } +} + +} // anonomous namespace + class TestServiceImpl : public TestService::Service { public: Status EmptyCall(ServerContext* context, const grpc::testing::Empty* request, @@ -179,13 +203,7 @@ class TestServiceImpl : public TestService::Service { } } - if (request->has_response_status()) { - return Status( - static_cast<grpc::StatusCode>(request->response_status().code()), - request->response_status().message()); - } - - return Status::OK; + return RequestedStatusOrOk(request); } Status StreamingOutputCall( @@ -223,7 +241,7 @@ class TestServiceImpl : public TestService::Service { write_success = writer->Write(response, wopts); } if (write_success) { - return Status::OK; + return RequestedStatusOrOk(request); } else { return Status(grpc::StatusCode::INTERNAL, "Error writing response."); } @@ -273,7 +291,7 @@ class TestServiceImpl : public TestService::Service { } } if (write_success) { - return Status::OK; + return RequestedStatusOrOk(&request); } else { return Status(grpc::StatusCode::INTERNAL, "Error writing response."); } @@ -302,7 +320,7 @@ class TestServiceImpl : public TestService::Service { write_success = stream->Write(response); } if (write_success) { - return Status::OK; + return RequestedStatusOrOk(&request); } else { return Status(grpc::StatusCode::INTERNAL, "Error writing response."); } |