Merge pull request #15171 from ZhouyihaiDing/API_revert

PHP: remove channel list tests and related observation and clean method
pull/14077/merge
Zhouyihai Ding 7 years ago committed by GitHub
commit 8acece911a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 59
      src/php/ext/grpc/channel.c
  2. 1
      src/php/ext/grpc/channel.h
  3. 3
      src/php/tests/unit_tests/CallCredentials2Test.php
  4. 3
      src/php/tests/unit_tests/CallCredentialsTest.php
  5. 3
      src/php/tests/unit_tests/CallTest.php
  6. 8
      src/php/tests/unit_tests/ChannelTest.php
  7. 3
      src/php/tests/unit_tests/EndToEndTest.php
  8. 115
      src/php/tests/unit_tests/PersistentChannelTest.php
  9. 3
      src/php/tests/unit_tests/SecureEndToEndTest.php
  10. 3
      src/php/tests/unit_tests/ServerTest.php
  11. 3
      src/php/tests/unit_tests/TimevalTest.php

@ -193,7 +193,6 @@ void create_and_add_channel_to_persistent_list(
create_channel(channel, target, args, creds);
le->channel = channel->wrapper;
le->ref_count = 1;
new_rsrc.ptr = le;
gpr_mu_lock(&global_persistent_list_mu);
PHP_GRPC_PERSISTENT_LIST_UPDATE(&grpc_persistent_list, key, key_len,
@ -342,7 +341,6 @@ PHP_METHOD(Channel, __construct) {
free(channel->wrapper->target);
free(channel->wrapper->args_hashstr);
free(channel->wrapper);
le->ref_count += 1;
channel->wrapper = le->channel;
channel->wrapper->ref_count += 1;
}
@ -534,53 +532,6 @@ static void php_grpc_channel_plink_dtor(php_grpc_zend_resource *rsrc
}
}
/**
* Clean all channels in the persistent.
* @return void
*/
PHP_METHOD(Channel, cleanPersistentList) {
zend_hash_clean(&grpc_persistent_list);
}
/**
* Return an array of persistent list.
* @return array
*/
PHP_METHOD(Channel, getPersistentList) {
array_init(return_value);
zval *data;
PHP_GRPC_HASH_FOREACH_VAL_START(&grpc_persistent_list, data)
php_grpc_zend_resource *rsrc =
(php_grpc_zend_resource*) PHP_GRPC_HASH_VALPTR_TO_VAL(data)
if (rsrc == NULL) {
break;
}
channel_persistent_le_t* le = rsrc->ptr;
zval* ret_arr;
PHP_GRPC_MAKE_STD_ZVAL(ret_arr);
array_init(ret_arr);
// Info about the target
PHP_GRPC_ADD_STRING_TO_ARRAY(ret_arr, "target",
sizeof("target"), le->channel->target, true);
// Info about key
PHP_GRPC_ADD_STRING_TO_ARRAY(ret_arr, "key",
sizeof("key"), le->channel->key, true);
// Info about persistent channel ref_count
PHP_GRPC_ADD_LONG_TO_ARRAY(ret_arr, "ref_count",
sizeof("ref_count"), le->ref_count);
// Info about connectivity status
int state =
grpc_channel_check_connectivity_state(le->channel->wrapped, (int)0);
// It should be set to 'true' in PHP 5.6.33
PHP_GRPC_ADD_LONG_TO_ARRAY(ret_arr, "connectivity_status",
sizeof("connectivity_status"), state);
// Info about the channel is closed or not
PHP_GRPC_ADD_BOOL_TO_ARRAY(ret_arr, "is_valid",
sizeof("is_valid"), le->channel->is_valid);
add_assoc_zval(return_value, le->channel->target, ret_arr);
PHP_GRPC_HASH_FOREACH_END()
}
ZEND_BEGIN_ARG_INFO_EX(arginfo_construct, 0, 0, 2)
ZEND_ARG_INFO(0, target)
ZEND_ARG_INFO(0, args)
@ -601,12 +552,6 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_close, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_cleanPersistentList, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_getPersistentList, 0, 0, 0)
ZEND_END_ARG_INFO()
static zend_function_entry channel_methods[] = {
PHP_ME(Channel, __construct, arginfo_construct,
ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
@ -618,10 +563,6 @@ static zend_function_entry channel_methods[] = {
ZEND_ACC_PUBLIC)
PHP_ME(Channel, close, arginfo_close,
ZEND_ACC_PUBLIC)
PHP_ME(Channel, cleanPersistentList, arginfo_cleanPersistentList,
ZEND_ACC_PUBLIC)
PHP_ME(Channel, getPersistentList, arginfo_getPersistentList,
ZEND_ACC_PUBLIC)
PHP_FE_END
};

@ -84,7 +84,6 @@ void php_grpc_delete_persistent_list_entry(char *key, php_grpc_int key_len
typedef struct _channel_persistent_le {
grpc_channel_wrapper *channel;
size_t ref_count;
} channel_persistent_le_t;

@ -46,9 +46,6 @@ class CallCredentials2Test extends PHPUnit_Framework_TestCase
{
unset($this->channel);
unset($this->server);
$channel_clean_persistent =
new Grpc\Channel('localhost:50010', []);
$channel_clean_persistent->cleanPersistentList();
}
public function callbackFunc($context)

@ -52,9 +52,6 @@ class CallCredentialsTest extends PHPUnit_Framework_TestCase
{
unset($this->channel);
unset($this->server);
$channel_clean_persistent =
new Grpc\Channel('localhost:50010', []);
$channel_clean_persistent->cleanPersistentList();
}
public function callbackFunc($context)

@ -38,9 +38,6 @@ class CallTest extends PHPUnit_Framework_TestCase
public function tearDown()
{
$this->channel->close();
$channel_clean_persistent =
new Grpc\Channel('localhost:50010', []);
$channel_clean_persistent->cleanPersistentList();
}
public function testConstructor()

@ -28,9 +28,6 @@ class ChannelTest extends PHPUnit_Framework_TestCase
if (!empty($this->channel)) {
$this->channel->close();
}
$channel_clean_persistent =
new Grpc\Channel('localhost:50010', []);
$channel_clean_persistent->cleanPersistentList();
}
public function testInsecureCredentials()
@ -383,11 +380,6 @@ class ChannelTest extends PHPUnit_Framework_TestCase
// close channel1
$this->channel1->close();
// channel2 is now in SHUTDOWN state
$state = $this->channel2->getConnectivityState();
$this->assertEquals(GRPC\CHANNEL_FATAL_FAILURE, $state);
// calling it again will result in an exception because the
// channel is already closed
$state = $this->channel2->getConnectivityState();
}

@ -29,9 +29,6 @@ class EndToEndTest extends PHPUnit_Framework_TestCase
public function tearDown()
{
$this->channel->close();
$channel_clean_persistent =
new Grpc\Channel('localhost:50010', []);
$channel_clean_persistent->cleanPersistentList();
}
public function testSimpleRequestBody()

@ -1,115 +0,0 @@
<?php
/*
*
* Copyright 2015 gRPC authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
class PersistentListTest extends PHPUnit_Framework_TestCase
{
public function setUp()
{
}
public function tearDown()
{
$channel_clean_persistent =
new Grpc\Channel('localhost:50010', []);
$channel_clean_persistent->cleanPersistentList();
}
public function waitUntilNotIdle($channel) {
for ($i = 0; $i < 10; $i++) {
$now = Grpc\Timeval::now();
$deadline = $now->add(new Grpc\Timeval(1000));
if ($channel->watchConnectivityState(GRPC\CHANNEL_IDLE,
$deadline)) {
return true;
}
}
$this->assertTrue(false);
}
public function assertConnecting($state) {
$this->assertTrue($state == GRPC\CHANNEL_CONNECTING ||
$state == GRPC\CHANNEL_TRANSIENT_FAILURE);
}
public function testPersistentChennelCreateOneChannel()
{
$this->channel1 = new Grpc\Channel('localhost:1', []);
$plist = $this->channel1->getPersistentList();
$this->assertEquals($plist['localhost:1']['target'], 'localhost:1');
$this->assertArrayHasKey('localhost:1', $plist);
$this->assertEquals($plist['localhost:1']['ref_count'], 1);
$this->assertEquals($plist['localhost:1']['connectivity_status'],
GRPC\CHANNEL_IDLE);
$this->assertEquals($plist['localhost:1']['is_valid'], 1);
$this->channel1->close();
}
public function testPersistentChennelStatusChange()
{
$this->channel1 = new Grpc\Channel('localhost:1', []);
$plist = $this->channel1->getPersistentList();
$this->assertEquals($plist['localhost:1']['connectivity_status'],
GRPC\CHANNEL_IDLE);
$this->assertEquals($plist['localhost:1']['is_valid'], 1);
$state = $this->channel1->getConnectivityState(true);
$this->waitUntilNotIdle($this->channel1);
$plist = $this->channel1->getPersistentList();
$this->assertConnecting($plist['localhost:1']['connectivity_status']);
$this->assertEquals($plist['localhost:1']['is_valid'], 1);
$this->channel1->close();
}
public function testPersistentChennelCloseChannel()
{
$this->channel1 = new Grpc\Channel('localhost:1', []);
$plist = $this->channel1->getPersistentList();
$this->assertEquals($plist['localhost:1']['ref_count'], 1);
$this->channel1->close();
$plist = $this->channel1->getPersistentList();
$this->assertArrayNotHasKey('localhost:1', $plist);
}
public function testPersistentChannelSameHost()
{
$this->channel1 = new Grpc\Channel('localhost:1', []);
$this->channel2 = new Grpc\Channel('localhost:1', []);
//ref_count should be 2
$plist = $this->channel1->getPersistentList();
$this->assertArrayHasKey('localhost:1', $plist);
$this->assertEquals($plist['localhost:1']['ref_count'], 2);
$this->channel1->close();
$this->channel2->close();
}
public function testPersistentChannelDifferentHost()
{
$this->channel1 = new Grpc\Channel('localhost:1', []);
$this->channel2 = new Grpc\Channel('localhost:2', []);
$plist = $this->channel1->getPersistentList();
$this->assertArrayHasKey('localhost:1', $plist);
$this->assertArrayHasKey('localhost:2', $plist);
$this->assertEquals($plist['localhost:1']['ref_count'], 1);
$this->assertEquals($plist['localhost:2']['ref_count'], 1);
$this->channel1->close();
$this->channel2->close();
}
}

@ -44,9 +44,6 @@ class SecureEndToEndTest extends PHPUnit_Framework_TestCase
public function tearDown()
{
$this->channel->close();
$channel_clean_persistent =
new Grpc\Channel('localhost:50010', []);
$channel_clean_persistent->cleanPersistentList();
}
public function testSimpleRequestBody()

@ -27,9 +27,6 @@ class ServerTest extends PHPUnit_Framework_TestCase
public function tearDown()
{
unset($this->server);
$channel_clean_persistent =
new Grpc\Channel('localhost:50010', []);
$channel_clean_persistent->cleanPersistentList();
}
public function testConstructorWithNull()

@ -25,9 +25,6 @@ class TimevalTest extends PHPUnit_Framework_TestCase
public function tearDown()
{
unset($this->time);
$channel_clean_persistent =
new Grpc\Channel('localhost:50010', []);
$channel_clean_persistent->cleanPersistentList();
}
public function testConstructorWithInt()

Loading…
Cancel
Save