From c865c318e4df38a43c11d8565b9023ef6875f0e9 Mon Sep 17 00:00:00 2001 From: Stanley Cheung Date: Wed, 24 Jun 2015 10:48:39 -0700 Subject: php: refactor and cleanup some scripts --- src/php/bin/determine_extension_dir.sh | 49 ++++++++++++++++++++++++++++++++++ src/php/bin/interop_client.sh | 11 +++----- src/php/bin/run_gen_code_test.sh | 11 ++++---- src/php/bin/run_tests.sh | 35 +++--------------------- 4 files changed, 63 insertions(+), 43 deletions(-) create mode 100755 src/php/bin/determine_extension_dir.sh diff --git a/src/php/bin/determine_extension_dir.sh b/src/php/bin/determine_extension_dir.sh new file mode 100755 index 0000000000..11b23662dd --- /dev/null +++ b/src/php/bin/determine_extension_dir.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# Copyright 2015, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set -e +default_extension_dir=`php -i | grep extension_dir | sed 's/.*=> //g'` +if command -v brew >/dev/null && [ -d `brew --prefix`/opt/grpc-php ]; then + # homebrew and the grpc-php formula are installed + extension_dir="-d extension_dir="`brew --prefix`/opt/grpc-php +elif [ ! -f $default_extension_dir/grpc.so ]; then + # the grpc extension is not found in the default PHP extension dir + # try the source modules directory + module_dir=../ext/grpc/modules + if [ ! -f $module_dir/grpc.so ]; then + echo "Please run 'phpize && ./configure && make' from ext/grpc first" + exit 1 + fi + # sym-link in system supplied extensions + for f in $default_extension_dir/*.so; do + ln -s $f $module_dir/$(basename $f) &> /dev/null || true + done + extension_dir="-d extension_dir="$module_dir +fi diff --git a/src/php/bin/interop_client.sh b/src/php/bin/interop_client.sh index 4fe63788c1..42e075cbe8 100755 --- a/src/php/bin/interop_client.sh +++ b/src/php/bin/interop_client.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Copyright 2015, Google Inc. # All rights reserved. # @@ -28,11 +28,8 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -set +e +set -e cd $(dirname $0) - -module_dir=../ext/grpc/modules - -php -d extension_dir=$module_dir -d extension=grpc.so \ +source ./determine_extension_dir.sh +php $extension_dir -d extension=grpc.so \ ../tests/interop/interop_client.php $@ 1>&2 diff --git a/src/php/bin/run_gen_code_test.sh b/src/php/bin/run_gen_code_test.sh index 1be2ed3f72..f8ad9598f4 100755 --- a/src/php/bin/run_gen_code_test.sh +++ b/src/php/bin/run_gen_code_test.sh @@ -1,4 +1,4 @@ -# Runs the generated code test against the ruby server +#!/bin/bash # Copyright 2015, Google Inc. # All rights reserved. # @@ -28,10 +28,11 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +set -e cd $(dirname $0) -GRPC_TEST_HOST=localhost:50051 php -d extension_dir=../ext/grpc/modules/ \ - -d extension=grpc.so `which phpunit` -v --debug --strict \ +source ./determine_extension_dir.sh +export GRPC_TEST_HOST=localhost:7071 +php $extension_dir -d extension=grpc.so `which phpunit` -v --debug --strict \ ../tests/generated_code/GeneratedCodeTest.php -GRPC_TEST_HOST=localhost:50051 php -d extension_dir=../ext/grpc/modules/ \ - -d extension=grpc.so `which phpunit` -v --debug --strict \ +php $extension_dir -d extension=grpc.so `which phpunit` -v --debug --strict \ ../tests/generated_code/GeneratedCodeWithCallbackTest.php diff --git a/src/php/bin/run_tests.sh b/src/php/bin/run_tests.sh index 422757bb44..e3289e34d2 100755 --- a/src/php/bin/run_tests.sh +++ b/src/php/bin/run_tests.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Copyright 2015, Google Inc. # All rights reserved. # @@ -32,33 +32,6 @@ # against it set -e cd $(dirname $0) -default_extension_dir=`php -i | grep extension_dir | sed 's/.*=> //g'` - -if command -v brew >/dev/null && [ -d `brew --prefix`/opt/grpc-php ] -then - # homebrew and the grpc-php formula are installed - extension_dir="-d extension_dir="`brew --prefix`/opt/grpc-php -elif [ ! -e $default_extension_dir/grpc.so ] -then - # the grpc extension is not found in the default PHP extension dir - # try the source modules directory - module_dir=../ext/grpc/modules - if [ ! -d $module_dir ] - then - echo "Please run 'phpize && ./configure && make' from ext/grpc first" - exit 1 - fi - - # sym-link in system supplied extensions - for f in $default_extension_dir/*.so - do - ln -s $f $module_dir/$(basename $f) &> /dev/null || true - done - - extension_dir='-d extension_dir='$module_dir -fi - -php \ - $extension_dir \ - -d extension=grpc.so \ - `which phpunit` -v --debug --strict ../tests/unit_tests +source ./determine_extension_dir.sh +php $extension_dir -d extension=grpc.so `which phpunit` -v --debug --strict \ + ../tests/unit_tests -- cgit v1.2.3 From 229e8553a6873f832bdd6362efd9e33c8d0534be Mon Sep 17 00:00:00 2001 From: Stanley Cheung Date: Wed, 24 Jun 2015 11:15:26 -0700 Subject: replace backticks with $() --- src/php/bin/determine_extension_dir.sh | 6 +++--- src/php/bin/run_gen_code_test.sh | 4 ++-- src/php/bin/run_tests.sh | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/php/bin/determine_extension_dir.sh b/src/php/bin/determine_extension_dir.sh index 11b23662dd..6fc392afc0 100755 --- a/src/php/bin/determine_extension_dir.sh +++ b/src/php/bin/determine_extension_dir.sh @@ -29,10 +29,10 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. set -e -default_extension_dir=`php -i | grep extension_dir | sed 's/.*=> //g'` -if command -v brew >/dev/null && [ -d `brew --prefix`/opt/grpc-php ]; then +default_extension_dir=$(php -i | grep extension_dir | sed 's/.*=> //g') +if command -v brew >/dev/null && [ -d $(brew --prefix)/opt/grpc-php ]; then # homebrew and the grpc-php formula are installed - extension_dir="-d extension_dir="`brew --prefix`/opt/grpc-php + extension_dir="-d extension_dir="$(brew --prefix)/opt/grpc-php elif [ ! -f $default_extension_dir/grpc.so ]; then # the grpc extension is not found in the default PHP extension dir # try the source modules directory diff --git a/src/php/bin/run_gen_code_test.sh b/src/php/bin/run_gen_code_test.sh index f8ad9598f4..03a9101a45 100755 --- a/src/php/bin/run_gen_code_test.sh +++ b/src/php/bin/run_gen_code_test.sh @@ -32,7 +32,7 @@ set -e cd $(dirname $0) source ./determine_extension_dir.sh export GRPC_TEST_HOST=localhost:7071 -php $extension_dir -d extension=grpc.so `which phpunit` -v --debug --strict \ +php $extension_dir -d extension=grpc.so $(which phpunit) -v --debug --strict \ ../tests/generated_code/GeneratedCodeTest.php -php $extension_dir -d extension=grpc.so `which phpunit` -v --debug --strict \ +php $extension_dir -d extension=grpc.so $(which phpunit) -v --debug --strict \ ../tests/generated_code/GeneratedCodeWithCallbackTest.php diff --git a/src/php/bin/run_tests.sh b/src/php/bin/run_tests.sh index e3289e34d2..4c37285455 100755 --- a/src/php/bin/run_tests.sh +++ b/src/php/bin/run_tests.sh @@ -33,5 +33,5 @@ set -e cd $(dirname $0) source ./determine_extension_dir.sh -php $extension_dir -d extension=grpc.so `which phpunit` -v --debug --strict \ +php $extension_dir -d extension=grpc.so $(which phpunit) -v --debug --strict \ ../tests/unit_tests -- cgit v1.2.3 From dbda969039452c7431f2b0d60cfef0b7e08c0937 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Wed, 24 Jun 2015 16:55:55 -0700 Subject: Fixed 'retain cycle' warnings in GRPCWrappedCall.m --- src/objective-c/GRPCClient/private/GRPCWrappedCall.m | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m index 4ccd5723c6..8a556e155b 100644 --- a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m +++ b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m @@ -132,8 +132,12 @@ grpc_metadata_array_init(&_headers); _op.data.recv_initial_metadata = &_headers; if (handler) { + // Prevent reference cycle with handler + __weak typeof(self) weakSelf = self; _handler = ^{ - NSDictionary *metadata = [NSDictionary grpc_dictionaryFromMetadataArray:_headers]; + __strong typeof(self) strongSelf = weakSelf; + NSDictionary *metadata = [NSDictionary + grpc_dictionaryFromMetadataArray:strongSelf->_headers]; handler(metadata); }; } @@ -160,8 +164,11 @@ _op.op = GRPC_OP_RECV_MESSAGE; _op.data.recv_message = &_receivedMessage; if (handler) { + // Prevent reference cycle with handler + __weak typeof(self) weakSelf = self; _handler = ^{ - handler(_receivedMessage); + __strong typeof(self) strongSelf = weakSelf; + handler(strongSelf->_receivedMessage); }; } } @@ -190,9 +197,14 @@ grpc_metadata_array_init(&_trailers); _op.data.recv_status_on_client.trailing_metadata = &_trailers; if (handler) { + // Prevent reference cycle with handler + __weak typeof(self) weakSelf = self; _handler = ^{ - NSError *error = [NSError grpc_errorFromStatusCode:_statusCode details:_details]; - NSDictionary *trailers = [NSDictionary grpc_dictionaryFromMetadataArray:_trailers]; + __strong typeof(self) strongSelf = weakSelf; + NSError *error = [NSError grpc_errorFromStatusCode:strongSelf->_statusCode + details:strongSelf->_details]; + NSDictionary *trailers = [NSDictionary + grpc_dictionaryFromMetadataArray:strongSelf->_trailers]; handler(error, trailers); }; } -- cgit v1.2.3 From 231103ba39303cc713631280deccb3b96d165174 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Thu, 25 Jun 2015 10:14:09 -0700 Subject: Fixed name in comments --- src/objective-c/GRPCClient/private/GRPCWrappedCall.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m index 8a556e155b..d94b25091e 100644 --- a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m +++ b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m @@ -132,7 +132,7 @@ grpc_metadata_array_init(&_headers); _op.data.recv_initial_metadata = &_headers; if (handler) { - // Prevent reference cycle with handler + // Prevent reference cycle with _handler __weak typeof(self) weakSelf = self; _handler = ^{ __strong typeof(self) strongSelf = weakSelf; @@ -164,7 +164,7 @@ _op.op = GRPC_OP_RECV_MESSAGE; _op.data.recv_message = &_receivedMessage; if (handler) { - // Prevent reference cycle with handler + // Prevent reference cycle with _handler __weak typeof(self) weakSelf = self; _handler = ^{ __strong typeof(self) strongSelf = weakSelf; @@ -197,7 +197,7 @@ grpc_metadata_array_init(&_trailers); _op.data.recv_status_on_client.trailing_metadata = &_trailers; if (handler) { - // Prevent reference cycle with handler + // Prevent reference cycle with _handler __weak typeof(self) weakSelf = self; _handler = ^{ __strong typeof(self) strongSelf = weakSelf; -- cgit v1.2.3 From 25a2661d6daef0854040fde231e36d8e9e4cbae0 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Thu, 25 Jun 2015 11:22:23 -0700 Subject: Changed argument names in Objective-C generated code --- src/compiler/objective_c_generator.cc | 23 ++++++++++++++--------- src/objective-c/tests/InteropTests.m | 8 ++++---- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/compiler/objective_c_generator.cc b/src/compiler/objective_c_generator.cc index b235911479..79a84b4a7a 100644 --- a/src/compiler/objective_c_generator.cc +++ b/src/compiler/objective_c_generator.cc @@ -68,18 +68,19 @@ void PrintMethodSignature(Printer *printer, printer->Print(vars, "- ($return_type$)$method_name$With"); if (method->client_streaming()) { - printer->Print("RequestsWriter:(id)request"); + printer->Print("RequestsWriter:(id)requestWriter"); } else { printer->Print(vars, "Request:($request_class$ *)request"); } // TODO(jcanizales): Put this on a new line and align colons. - // TODO(jcanizales): eventHandler for server streaming? - printer->Print(" handler:(void(^)("); if (method->server_streaming()) { - printer->Print("BOOL done, "); + printer->Print(vars, " eventHandler:(void(^)(BOOL done, " + "$response_class$ *response, NSError *error))eventHandler"); + } else { + printer->Print(vars, " handler:(void(^)($response_class$ *response, " + "NSError *error))handler"); } - printer->Print(vars, "$response_class$ *response, NSError *error))handler"); } void PrintSimpleSignature(Printer *printer, @@ -125,11 +126,15 @@ void PrintSimpleImplementation(Printer *printer, printer->Print("{\n"); printer->Print(vars, " [[self RPCTo$method_name$With"); if (method->client_streaming()) { - printer->Print("RequestsWriter:request"); + printer->Print("RequestsWriter:requestWriter"); } else { printer->Print("Request:request"); } - printer->Print(" handler:handler] start];\n"); + if (method->server_streaming()) { + printer->Print(" eventHandler:eventHandler] start];\n"); + } else { + printer->Print(" handler:handler] start];\n"); + } printer->Print("}\n"); } @@ -141,7 +146,7 @@ void PrintAdvancedImplementation(Printer *printer, printer->Print(" requestsWriter:"); if (method->client_streaming()) { - printer->Print("request\n"); + printer->Print("requestWriter\n"); } else { printer->Print("[GRXWriter writerWithValue:request]\n"); } @@ -150,7 +155,7 @@ void PrintAdvancedImplementation(Printer *printer, printer->Print(" responsesWriteable:[GRXWriteable "); if (method->server_streaming()) { - printer->Print("writeableWithStreamHandler:handler]];\n"); + printer->Print("writeableWithStreamHandler:eventHandler]];\n"); } else { printer->Print("writeableWithSingleValueHandler:handler]];\n"); } diff --git a/src/objective-c/tests/InteropTests.m b/src/objective-c/tests/InteropTests.m index 684f7c2ff6..74f6b231cf 100644 --- a/src/objective-c/tests/InteropTests.m +++ b/src/objective-c/tests/InteropTests.m @@ -174,7 +174,7 @@ __block int index = 0; [_service streamingOutputCallWithRequest:request - handler:^(BOOL done, + eventHandler:^(BOOL done, RMTStreamingOutputCallResponse *response, NSError *error){ XCTAssertNil(error, @"Finished with unexpected error: %@", error); @@ -211,7 +211,7 @@ [requestsBuffer writeValue:request]; [_service fullDuplexCallWithRequestsWriter:requestsBuffer - handler:^(BOOL done, + eventHandler:^(BOOL done, RMTStreamingOutputCallResponse *response, NSError *error) { XCTAssertNil(error, @"Finished with unexpected error: %@", error); @@ -242,7 +242,7 @@ - (void)testEmptyStreamRPC { __weak XCTestExpectation *expectation = [self expectationWithDescription:@"EmptyStream"]; [_service fullDuplexCallWithRequestsWriter:[GRXWriter emptyWriter] - handler:^(BOOL done, + eventHandler:^(BOOL done, RMTStreamingOutputCallResponse *response, NSError *error) { XCTAssertNil(error, @"Finished with unexpected error: %@", error); @@ -283,7 +283,7 @@ [requestsBuffer writeValue:request]; __block ProtoRPC *call = [_service RPCToFullDuplexCallWithRequestsWriter:requestsBuffer - handler:^(BOOL done, + eventHandler:^(BOOL done, RMTStreamingOutputCallResponse *response, NSError *error) { if (receivedResponse) { -- cgit v1.2.3