Merge pull request #7201 from markdroth/run_interop_tests_go

Fix status_code_and_message interop test for C++ and PHP.  Change run_interop_tests.py to run this test for C++ and Go.
pull/8413/head
Mark D. Roth 8 years ago committed by GitHub
commit 948f95b2ce
  1. 13
      src/php/tests/interop/interop_client.php
  2. 29
      test/cpp/interop/interop_client.cc
  3. 5
      test/cpp/interop/interop_server.cc
  4. 13
      tools/run_tests/run_interop_tests.py

@ -477,9 +477,11 @@ function statusCodeAndMessage($stub)
list($result, $status) = $call->wait();
hardAssert($status->code === 2,
'Received unexpected status code');
'Received unexpected UnaryCall status code: ' .
$status->code);
hardAssert($status->details === 'test status message',
'Received unexpected status details');
'Received unexpected UnaryCall status details: ' .
$status->details);
$streaming_call = $stub->FullDuplexCall();
@ -487,12 +489,15 @@ function statusCodeAndMessage($stub)
$streaming_request->setResponseStatus($echo_status);
$streaming_call->write($streaming_request);
$streaming_call->writesDone();
$result = $streaming_call->read();
$status = $streaming_call->getStatus();
hardAssert($status->code === 2,
'Received unexpected status code');
'Received unexpected FullDuplexCall status code: ' .
$status->code);
hardAssert($status->details === 'test status message',
'Received unexpected status details');
'Received unexpected FullDuplexCall status details: ' .
$status->details);
}
function unimplementedMethod($stub)

@ -827,21 +827,42 @@ bool InteropClient::DoStatusWithMessage() {
gpr_log(GPR_DEBUG,
"Sending RPC with a request for status code 2 and message");
const grpc::StatusCode test_code = grpc::StatusCode::UNKNOWN;
const grpc::string test_msg = "This is a test message";
// Test UnaryCall.
ClientContext context;
SimpleRequest request;
SimpleResponse response;
EchoStatus* requested_status = request.mutable_response_status();
requested_status->set_code(grpc::StatusCode::UNKNOWN);
grpc::string test_msg = "This is a test message";
requested_status->set_code(test_code);
requested_status->set_message(test_msg);
Status s = serviceStub_.Get()->UnaryCall(&context, request, &response);
if (!AssertStatusCode(s, grpc::StatusCode::UNKNOWN)) {
return false;
}
GPR_ASSERT(s.error_message() == test_msg);
// Test FullDuplexCall.
ClientContext stream_context;
std::shared_ptr<ClientReaderWriter<StreamingOutputCallRequest,
StreamingOutputCallResponse>>
stream(serviceStub_.Get()->FullDuplexCall(&stream_context));
StreamingOutputCallRequest streaming_request;
requested_status = streaming_request.mutable_response_status();
requested_status->set_code(test_code);
requested_status->set_message(test_msg);
stream->Write(streaming_request);
stream->WritesDone();
StreamingOutputCallResponse streaming_response;
while (stream->Read(&streaming_response))
;
s = stream->Finish();
if (!AssertStatusCode(s, grpc::StatusCode::UNKNOWN)) {
return false;
}
GPR_ASSERT(s.error_message() == test_msg);
gpr_log(GPR_DEBUG, "Done testing Status and Message");
return true;
}

@ -269,6 +269,11 @@ class TestServiceImpl : public TestService::Service {
StreamingOutputCallResponse response;
bool write_success = true;
while (write_success && stream->Read(&request)) {
if (request.has_response_status()) {
return Status(
static_cast<grpc::StatusCode>(request.response_status().code()),
request.response_status().message());
}
if (request.response_parameters_size() != 0) {
response.mutable_payload()->set_type(request.payload().type());
response.mutable_payload()->set_body(

@ -64,8 +64,9 @@ _SKIP_SERVER_COMPRESSION = ['server_compressed_unary',
_SKIP_COMPRESSION = _SKIP_CLIENT_COMPRESSION + _SKIP_SERVER_COMPRESSION
_SKIP_ADVANCED = ['custom_metadata', 'status_code_and_message',
'unimplemented_method']
_SKIP_ADVANCED_CXX_AND_GO = ['custom_metadata', 'unimplemented_method']
_SKIP_ADVANCED = _SKIP_ADVANCED_CXX_AND_GO + ['status_code_and_message']
_TEST_TIMEOUT = 3*60
@ -89,10 +90,10 @@ class CXXLanguage:
return {}
def unimplemented_test_cases(self):
return _SKIP_ADVANCED
return _SKIP_ADVANCED_CXX_AND_GO
def unimplemented_test_cases_server(self):
return _SKIP_ADVANCED
return _SKIP_ADVANCED_CXX_AND_GO
def __str__(self):
return 'c++'
@ -206,10 +207,10 @@ class GoLanguage:
return {}
def unimplemented_test_cases(self):
return _SKIP_ADVANCED + _SKIP_COMPRESSION
return _SKIP_ADVANCED_CXX_AND_GO + _SKIP_COMPRESSION
def unimplemented_test_cases_server(self):
return _SKIP_ADVANCED + _SKIP_COMPRESSION
return _SKIP_ADVANCED_CXX_AND_GO + _SKIP_COMPRESSION
def __str__(self):
return 'go'

Loading…
Cancel
Save