function statusCodeAndMessage($stub) { $echo_status = new grpc\testing\EchoStatus(); $echo_status->setCode(2); $echo_status->setMessage('test status message'); $request = new grpc\testing\SimpleRequest(); $request->setResponseStatus($echo_status); $call = $stub->UnaryCall($request); list($result, $status) = $call->wait(); hardAssert($status->code === 2, 'Received unexpected status code'); hardAssert($status->details === 'test status message', 'Received unexpected status details'); $streaming_call = $stub->FullDuplexCall(); $streaming_request = new grpc\testing\StreamingOutputCallRequest(); $streaming_request->setResponseStatus($echo_status); $streaming_call->write($streaming_request); $streaming_call->writesDone(); $status = $streaming_call->getStatus(); hardAssert($status->code === 2, 'Received unexpected status code'); hardAssert($status->details === 'test status message', 'Received unexpected status details'); }