mirror of https://github.com/grpc/grpc.git
parent
83c99aa2da
commit
317fd2e13f
3 changed files with 94 additions and 5 deletions
@ -0,0 +1,68 @@ |
||||
#!/bin/bash |
||||
# 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. |
||||
|
||||
# Don't run this script standalone. Instead, run from the repository root: |
||||
# ./tools/run_tests/run_tests.py -l objc |
||||
|
||||
set -ev |
||||
|
||||
cd $(dirname $0) |
||||
|
||||
# Run the tests server. |
||||
|
||||
ROOT_DIR=../../.. |
||||
BAZEL=$ROOT_DIR/tools/bazel |
||||
PROTOC=$ROOT_DIR/bazel-bin/external/com_google_protobuf/protoc |
||||
PLUGIN=$ROOT_DIR/bazel-bin/src/compiler/grpc_objective_c_plugin |
||||
RUNTIME_IMPORT_PREFIX=prefix/dir/ |
||||
|
||||
[ -f $PROTOC ] && [ -f $PLUGIN ] || { |
||||
BAZEL build @com_google_protobuf//:protoc //src/compiler:grpc_objective_c_plugin |
||||
} |
||||
|
||||
rm -rf RemoteTestClient/*pb* |
||||
|
||||
$PROTOC \ |
||||
--plugin=protoc-gen-grpc=$PLUGIN \ |
||||
--objc_out=RemoteTestClient \ |
||||
--grpc_out=runtime_import_prefix=$RUNTIME_IMPORT_PREFIX:RemoteTestClient \ |
||||
-I $ROOT_DIR \ |
||||
-I ../../../third_party/protobuf/src \ |
||||
$ROOT_DIR/src/objective-c/examples/RemoteTestClient/*.proto |
||||
|
||||
# Verify the output proto filename |
||||
[ -e ./RemoteTestClient/src/objective-c/examples/RemoteTestClient/Test.pbrpc.m ] || { |
||||
echo >&2 "protoc outputs wrong filename." |
||||
exit 1 |
||||
} |
||||
|
||||
# Verify paths of protobuf WKTs in generated code contain runtime import prefix. |
||||
[ "`cat RemoteTestClient/src/objective-c/examples/RemoteTestClient/Test.pbrpc.m | |
||||
egrep '#import "'"${RUNTIME_IMPORT_PREFIX}"'GPBEmpty\.pbobjc\.h'`" ] || { |
||||
echo >&2 "protoc generated import with wrong filename." |
||||
exit 1 |
||||
} |
||||
|
||||
# Verify paths of non WKTs protos in generated code don't contain runtime import prefix. |
||||
[ "`cat RemoteTestClient/src/objective-c/examples/RemoteTestClient/Test.pbrpc.m | |
||||
egrep '.*\Messages.pbobjc.h"$' | |
||||
egrep '#import "'"${RUNTIME_IMPORT_PREFIX}"`" ] && { |
||||
echo >&2 "protoc generated import with wrong filename." |
||||
exit 1 |
||||
} |
||||
|
||||
# Run one extra command to clear $? before exiting the script to prevent |
||||
# failing even when tests pass. |
||||
echo "Plugin option tests passed." |
Loading…
Reference in new issue