Merge pull request #309 from murgatroid99/php_interop_failures

Fix a couple of PHP bugs that prevented the PHP interop test client from working
pull/316/head
Tim Emiola 10 years ago
commit 484bc53582
  1. 6
      src/php/lib/Grpc/ActiveCall.php
  2. 4
      src/php/lib/Grpc/BaseStub.php
  3. 9
      src/php/tests/interop/empty.php
  4. 2
      src/php/tests/interop/interop_client.php
  5. 213
      src/php/tests/interop/messages.php
  6. 22
      src/php/tests/interop/test.php

@ -28,9 +28,9 @@ class ActiveCall {
$this->flags = $flags; $this->flags = $flags;
// Invoke the call. // Invoke the call.
$this->call->start_invoke($this->completion_queue, $this->call->invoke($this->completion_queue,
CLIENT_METADATA_READ, CLIENT_METADATA_READ,
FINISHED, 0); FINISHED, 0);
$metadata_event = $this->completion_queue->pluck(CLIENT_METADATA_READ, $metadata_event = $this->completion_queue->pluck(CLIENT_METADATA_READ,
Timeval::inf_future()); Timeval::inf_future());
$this->metadata = $metadata_event->data; $this->metadata = $metadata_event->data;

@ -10,8 +10,8 @@ class BaseStub {
private $channel; private $channel;
public function __construct($hostname) { public function __construct($hostname, $opts) {
$this->channel = new Channel($hostname, []); $this->channel = new Channel($hostname, $opts);
} }
/** /**

@ -1,9 +1,9 @@
<?php <?php
// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0 // DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0
// Source: net/proto2/proto/empty.proto // Source: test/cpp/interop/empty.proto
// Date: 2014-12-03 22:02:20 // Date: 2015-01-30 21:44:54
namespace proto2 { namespace grpc\testing {
class EmptyMessage extends \DrSlump\Protobuf\Message { class EmptyMessage extends \DrSlump\Protobuf\Message {
@ -13,7 +13,7 @@ namespace proto2 {
public static function descriptor() public static function descriptor()
{ {
$descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'proto2.EmptyMessage'); $descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.EmptyMessage');
foreach (self::$__extensions as $cb) { foreach (self::$__extensions as $cb) {
$descriptor->addField($cb(), true); $descriptor->addField($cb(), true);
@ -23,4 +23,3 @@ namespace proto2 {
} }
} }
} }

@ -25,7 +25,7 @@ function hardAssert($value, $error_message) {
* @param $stub Stub object that has service methods * @param $stub Stub object that has service methods
*/ */
function emptyUnary($stub) { function emptyUnary($stub) {
list($result, $status) = $stub->EmptyCall(new proto2\EmptyMessage())->wait(); list($result, $status) = $stub->EmptyCall(new grpc\testing\EmptyMessage())->wait();
hardAssert($status->code == Grpc\STATUS_OK, 'Call did not complete successfully'); hardAssert($status->code == Grpc\STATUS_OK, 'Call did not complete successfully');
hardAssert($result != null, 'Call completed with a null response'); hardAssert($result != null, 'Call completed with a null response');
} }

@ -1,7 +1,7 @@
<?php <?php
// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0 // DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0
// Source: third_party/stubby/testing/proto/messages.proto // Source: test/cpp/interop/messages.proto
// Date: 2014-12-03 22:02:20 // Date: 2015-01-30 21:44:54
namespace grpc\testing { namespace grpc\testing {
@ -142,6 +142,12 @@ namespace grpc\testing {
/** @var \grpc\testing\Payload */ /** @var \grpc\testing\Payload */
public $payload = null; public $payload = null;
/** @var boolean */
public $fill_username = null;
/** @var boolean */
public $fill_oauth_scope = null;
/** @var \Closure[] */ /** @var \Closure[] */
protected static $__extensions = array(); protected static $__extensions = array();
@ -176,6 +182,22 @@ namespace grpc\testing {
$f->reference = '\grpc\testing\Payload'; $f->reference = '\grpc\testing\Payload';
$descriptor->addField($f); $descriptor->addField($f);
// OPTIONAL BOOL fill_username = 4
$f = new \DrSlump\Protobuf\Field();
$f->number = 4;
$f->name = "fill_username";
$f->type = \DrSlump\Protobuf::TYPE_BOOL;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL BOOL fill_oauth_scope = 5
$f = new \DrSlump\Protobuf\Field();
$f->number = 5;
$f->name = "fill_oauth_scope";
$f->type = \DrSlump\Protobuf::TYPE_BOOL;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
foreach (self::$__extensions as $cb) { foreach (self::$__extensions as $cb) {
$descriptor->addField($cb(), true); $descriptor->addField($cb(), true);
} }
@ -293,6 +315,80 @@ namespace grpc\testing {
public function setPayload(\grpc\testing\Payload $value){ public function setPayload(\grpc\testing\Payload $value){
return $this->_set(3, $value); return $this->_set(3, $value);
} }
/**
* Check if <fill_username> has a value
*
* @return boolean
*/
public function hasFillUsername(){
return $this->_has(4);
}
/**
* Clear <fill_username> value
*
* @return \grpc\testing\SimpleRequest
*/
public function clearFillUsername(){
return $this->_clear(4);
}
/**
* Get <fill_username> value
*
* @return boolean
*/
public function getFillUsername(){
return $this->_get(4);
}
/**
* Set <fill_username> value
*
* @param boolean $value
* @return \grpc\testing\SimpleRequest
*/
public function setFillUsername( $value){
return $this->_set(4, $value);
}
/**
* Check if <fill_oauth_scope> has a value
*
* @return boolean
*/
public function hasFillOauthScope(){
return $this->_has(5);
}
/**
* Clear <fill_oauth_scope> value
*
* @return \grpc\testing\SimpleRequest
*/
public function clearFillOauthScope(){
return $this->_clear(5);
}
/**
* Get <fill_oauth_scope> value
*
* @return boolean
*/
public function getFillOauthScope(){
return $this->_get(5);
}
/**
* Set <fill_oauth_scope> value
*
* @param boolean $value
* @return \grpc\testing\SimpleRequest
*/
public function setFillOauthScope( $value){
return $this->_set(5, $value);
}
} }
} }
@ -303,8 +399,11 @@ namespace grpc\testing {
/** @var \grpc\testing\Payload */ /** @var \grpc\testing\Payload */
public $payload = null; public $payload = null;
/** @var int */ /** @var string */
public $effective_gaia_user_id = null; public $username = null;
/** @var string */
public $oauth_scope = null;
/** @var \Closure[] */ /** @var \Closure[] */
@ -323,11 +422,19 @@ namespace grpc\testing {
$f->reference = '\grpc\testing\Payload'; $f->reference = '\grpc\testing\Payload';
$descriptor->addField($f); $descriptor->addField($f);
// OPTIONAL INT64 effective_gaia_user_id = 2 // OPTIONAL STRING username = 2
$f = new \DrSlump\Protobuf\Field(); $f = new \DrSlump\Protobuf\Field();
$f->number = 2; $f->number = 2;
$f->name = "effective_gaia_user_id"; $f->name = "username";
$f->type = \DrSlump\Protobuf::TYPE_INT64; $f->type = \DrSlump\Protobuf::TYPE_STRING;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
// OPTIONAL STRING oauth_scope = 3
$f = new \DrSlump\Protobuf\Field();
$f->number = 3;
$f->name = "oauth_scope";
$f->type = \DrSlump\Protobuf::TYPE_STRING;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL; $f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f); $descriptor->addField($f);
@ -376,109 +483,77 @@ namespace grpc\testing {
} }
/** /**
* Check if <effective_gaia_user_id> has a value * Check if <username> has a value
* *
* @return boolean * @return boolean
*/ */
public function hasEffectiveGaiaUserId(){ public function hasUsername(){
return $this->_has(2); return $this->_has(2);
} }
/** /**
* Clear <effective_gaia_user_id> value * Clear <username> value
* *
* @return \grpc\testing\SimpleResponse * @return \grpc\testing\SimpleResponse
*/ */
public function clearEffectiveGaiaUserId(){ public function clearUsername(){
return $this->_clear(2); return $this->_clear(2);
} }
/** /**
* Get <effective_gaia_user_id> value * Get <username> value
* *
* @return int * @return string
*/ */
public function getEffectiveGaiaUserId(){ public function getUsername(){
return $this->_get(2); return $this->_get(2);
} }
/** /**
* Set <effective_gaia_user_id> value * Set <username> value
* *
* @param int $value * @param string $value
* @return \grpc\testing\SimpleResponse * @return \grpc\testing\SimpleResponse
*/ */
public function setEffectiveGaiaUserId( $value){ public function setUsername( $value){
return $this->_set(2, $value); return $this->_set(2, $value);
} }
}
}
namespace grpc\testing {
class SimpleContext extends \DrSlump\Protobuf\Message {
/** @var string */
public $value = null;
/** @var \Closure[] */
protected static $__extensions = array();
public static function descriptor()
{
$descriptor = new \DrSlump\Protobuf\Descriptor(__CLASS__, 'grpc.testing.SimpleContext');
// OPTIONAL STRING value = 1
$f = new \DrSlump\Protobuf\Field();
$f->number = 1;
$f->name = "value";
$f->type = \DrSlump\Protobuf::TYPE_STRING;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$descriptor->addField($f);
foreach (self::$__extensions as $cb) {
$descriptor->addField($cb(), true);
}
return $descriptor;
}
/** /**
* Check if <value> has a value * Check if <oauth_scope> has a value
* *
* @return boolean * @return boolean
*/ */
public function hasValue(){ public function hasOauthScope(){
return $this->_has(1); return $this->_has(3);
} }
/** /**
* Clear <value> value * Clear <oauth_scope> value
* *
* @return \grpc\testing\SimpleContext * @return \grpc\testing\SimpleResponse
*/ */
public function clearValue(){ public function clearOauthScope(){
return $this->_clear(1); return $this->_clear(3);
} }
/** /**
* Get <value> value * Get <oauth_scope> value
* *
* @return string * @return string
*/ */
public function getValue(){ public function getOauthScope(){
return $this->_get(1); return $this->_get(3);
} }
/** /**
* Set <value> value * Set <oauth_scope> value
* *
* @param string $value * @param string $value
* @return \grpc\testing\SimpleContext * @return \grpc\testing\SimpleResponse
*/ */
public function setValue( $value){ public function setOauthScope( $value){
return $this->_set(1, $value); return $this->_set(3, $value);
} }
} }
} }
@ -997,15 +1072,3 @@ namespace grpc\testing {
} }
} }
namespace {
\proto2\bridge\MessageSet::extension(function(){
// OPTIONAL MESSAGE grpc\testing\SimpleContext\message_set_extension = 71139615
$f = new \DrSlump\Protobuf\Field();
$f->number = 71139615;
$f->name = "grpc\testing\SimpleContext\message_set_extension";
$f->type = \DrSlump\Protobuf::TYPE_MESSAGE;
$f->rule = \DrSlump\Protobuf::RULE_OPTIONAL;
$f->reference = '\grpc\testing\SimpleContext';
return $f;
});
}

@ -1,52 +1,52 @@
<?php <?php
// DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0 // DO NOT EDIT! Generated by Protobuf-PHP protoc plugin 1.0
// Source: third_party/stubby/testing/proto/test.proto // Source: test/cpp/interop/test.proto
// Date: 2014-12-03 22:02:20 // Date: 2015-01-30 21:44:54
namespace grpc\testing { namespace grpc\testing {
class TestServiceClient extends \Grpc\BaseStub { class TestServiceClient extends \Grpc\BaseStub {
/** /**
* @param proto2\EmptyMessage $input * @param grpc\testing\EmptyMessage $input
* @return proto2\EmptyMessage * @return grpc\testing\EmptyMessage
*/ */
public function EmptyCall(\proto2\EmptyMessage $argument, $metadata = array()) { public function EmptyCall(\grpc\testing\EmptyMessage $argument, $metadata = array()) {
return $this->_simpleRequest('/TestService/EmptyCall', $argument, '\proto2\EmptyMessage::deserialize', $metadata); return $this->_simpleRequest('/grpc.testing.TestService/EmptyCall', $argument, '\grpc\testing\EmptyMessage::deserialize', $metadata);
} }
/** /**
* @param grpc\testing\SimpleRequest $input * @param grpc\testing\SimpleRequest $input
* @return grpc\testing\SimpleResponse * @return grpc\testing\SimpleResponse
*/ */
public function UnaryCall(\grpc\testing\SimpleRequest $argument, $metadata = array()) { public function UnaryCall(\grpc\testing\SimpleRequest $argument, $metadata = array()) {
return $this->_simpleRequest('/TestService/UnaryCall', $argument, '\grpc\testing\SimpleResponse::deserialize', $metadata); return $this->_simpleRequest('/grpc.testing.TestService/UnaryCall', $argument, '\grpc\testing\SimpleResponse::deserialize', $metadata);
} }
/** /**
* @param grpc\testing\StreamingOutputCallRequest $input * @param grpc\testing\StreamingOutputCallRequest $input
* @return grpc\testing\StreamingOutputCallResponse * @return grpc\testing\StreamingOutputCallResponse
*/ */
public function StreamingOutputCall($argument, $metadata = array()) { public function StreamingOutputCall($argument, $metadata = array()) {
return $this->_serverStreamRequest('/TestService/StreamingOutputCall', $argument, '\grpc\testing\StreamingOutputCallResponse::deserialize', $metadata); return $this->_serverStreamRequest('/grpc.testing.TestService/StreamingOutputCall', $argument, '\grpc\testing\StreamingOutputCallResponse::deserialize', $metadata);
} }
/** /**
* @param grpc\testing\StreamingInputCallRequest $input * @param grpc\testing\StreamingInputCallRequest $input
* @return grpc\testing\StreamingInputCallResponse * @return grpc\testing\StreamingInputCallResponse
*/ */
public function StreamingInputCall($arguments, $metadata = array()) { public function StreamingInputCall($arguments, $metadata = array()) {
return $this->_clientStreamRequest('/TestService/StreamingInputCall', $arguments, '\grpc\testing\StreamingInputCallResponse::deserialize', $metadata); return $this->_clientStreamRequest('/grpc.testing.TestService/StreamingInputCall', $arguments, '\grpc\testing\StreamingInputCallResponse::deserialize', $metadata);
} }
/** /**
* @param grpc\testing\StreamingOutputCallRequest $input * @param grpc\testing\StreamingOutputCallRequest $input
* @return grpc\testing\StreamingOutputCallResponse * @return grpc\testing\StreamingOutputCallResponse
*/ */
public function FullDuplexCall($metadata = array()) { public function FullDuplexCall($metadata = array()) {
return $this->_bidiRequest('/TestService/FullDuplexCall', '\grpc\testing\StreamingOutputCallResponse::deserialize', $metadata); return $this->_bidiRequest('/grpc.testing.TestService/FullDuplexCall', '\grpc\testing\StreamingOutputCallResponse::deserialize', $metadata);
} }
/** /**
* @param grpc\testing\StreamingOutputCallRequest $input * @param grpc\testing\StreamingOutputCallRequest $input
* @return grpc\testing\StreamingOutputCallResponse * @return grpc\testing\StreamingOutputCallResponse
*/ */
public function HalfDuplexCall($metadata = array()) { public function HalfDuplexCall($metadata = array()) {
return $this->_bidiRequest('/TestService/HalfDuplexCall', '\grpc\testing\StreamingOutputCallResponse::deserialize', $metadata); return $this->_bidiRequest('/grpc.testing.TestService/HalfDuplexCall', '\grpc\testing\StreamingOutputCallResponse::deserialize', $metadata);
} }
} }
} }

Loading…
Cancel
Save