You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by ko...@apache.org on 2019/12/19 23:57:48 UTC
[avro] branch master updated: AVRO-2661: Fixup Test RPC Interop
(#748)
This is an automated email from the ASF dual-hosted git repository.
kojiromike pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to refs/heads/master by this push:
new 5cca39d AVRO-2661: Fixup Test RPC Interop (#748)
5cca39d is described below
commit 5cca39d955e831be4ca4bfcc016a7da37e158aeb
Author: Michael A. Smith <mi...@smith-li.com>
AuthorDate: Thu Dec 19 18:57:38 2019 -0500
AVRO-2661: Fixup Test RPC Interop (#748)
Allow the interop rpc tests to exit gracefully.
---
share/test/interop/bin/test_rpc_interop.sh | 70 ++++++++++++++----------------
1 file changed, 33 insertions(+), 37 deletions(-)
diff --git a/share/test/interop/bin/test_rpc_interop.sh b/share/test/interop/bin/test_rpc_interop.sh
index 283aff1..f80437f 100755
--- a/share/test/interop/bin/test_rpc_interop.sh
+++ b/share/test/interop/bin/test_rpc_interop.sh
@@ -17,64 +17,60 @@
set -ex
-cd `dirname "$0"`/../../../.. # connect to root
+cd "${0%/*}/../../../.."
-VERSION=`cat share/VERSION.txt`
+VERSION=$(<share/VERSION.txt)
-java_client="java -jar lang/java/tools/target/avro-tools-$VERSION.jar rpcsend"
-java_server="java -jar lang/java/tools/target/avro-tools-$VERSION.jar rpcreceive"
-
-py_client="env PYTHONPATH=lang/py python -m avro.tool rpcsend"
-py_server="env PYTHONPATH=lang/py python -m avro.tool rpcreceive"
+java_tool() {
+ java -jar "lang/java/tools/target/avro-tools-$VERSION.jar" "$@"
+}
-py3_client="env PYTHONPATH=lang/py3 python3 -m avro.tool rpcsend"
-py3_server="env PYTHONPATH=lang/py3 python3 -m avro.tool rpcreceive"
+py_tool() {
+ PYTHONPATH=lang/py python2 -m avro.tool "$@"
+}
-ruby_client="ruby -rubygems -Ilang/ruby/lib lang/ruby/test/tool.rb rpcsend"
-ruby_server="ruby -rubygems -Ilang/ruby/lib lang/ruby/test/tool.rb rpcreceive"
+py3_tool() {
+ PYTHONPATH=lang/py3 python3 -m avro.tool "$@"
+}
-clients=("$java_client" "$py_client" "$py3_client" "$ruby_client")
-servers=("$java_server" "$py_server" "$py3_server" "$ruby_server")
+ruby_tool() {
+ ruby -rubygems -Ilang/ruby/lib lang/ruby/test/tool.rb "$@"
+}
proto=share/test/schemas/simple.avpr
-portfile=/tmp/interop_$$
+portfile="/tmp/interop_$$"
cleanup() {
rm -rf "$portfile"
- for job in `jobs -p` ; do
- kill $(jobs -p) 2>/dev/null || true;
+ for job in $(jobs -p); do
+ kill "$job" 2>/dev/null || true;
done
}
trap 'cleanup' EXIT
-for server in "${servers[@]}"
-do
- for msgDir in share/test/interop/rpc/*
- do
- msg=`basename "$msgDir"`
- for c in ${msgDir}/*
- do
- echo TEST: $c
- for client in "${clients[@]}"
- do
+for server in {java,py,py3,ruby}_tool; do
+ for msgDir in share/test/interop/rpc/*; do
+ msg="${msgDir##*/}"
+ for c in "$msgDir/"*; do
+ echo "TEST: $c"
+ for client in {java,py,py3,ruby}_tool; do
rm -rf "$portfile"
- $server http://127.0.0.1:0/ $proto $msg -file $c/response.avro > $portfile &
+ "$server" rpcreceive 'http://127.0.0.1:0/' "$proto" "$msg" \
+ -file "$c/response.avro" > "$portfile" &
count=0
- while [ ! -s $portfile ]
- do
+ until [[ -s "$portfile" ]]; do
sleep 1
- if [ $count -ge 10 ]
- then
- echo $server did not start.
+ if (( count++ >= 10 )); then
+ echo "$server did not start." >&2
exit 1
fi
- count=`expr $count + 1`
- done
- read ignore port < $portfile
- $client http://127.0.0.1:$port $proto $msg -file $c/request.avro
done
+ read -r _ port < "$portfile"
+ "$client" rpcsend "http://127.0.0.1:$port" "$proto" "$msg" \
+ -file "$c/request.avro"
+ done
done
- done
+ done
done