blob: edb22373dee84c02e233982fd77d908846f20bd5 [file] [log] [blame]
#!/bin/sh
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
#
# Apache Thrift - integration test suite
#
# tests different client-server, protocol and transport combinations
# related issues:
# THRIFT-847 Test Framework harmonization across all languages
# THRIFT-819 add Enumeration for protocol, transport and server types
START_TIME=$SECONDS
cd "$( dirname "$0" )"
BASEDIR=$(pwd)
TESTCOUNT=0
FAILED=0
print_header() {
printf "%-16s %-13s %-17s %-s\n" "client-server:" "protocol:" "transport:" "result:"
}
STATUS_HTML="status.html"
print_html_header() {
cat << EOF > $STATUS_HTML
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Apache Thrift - integration test suite</title>
<link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.0/css/jquery.dataTables.css">
<script type="text/javascript" charset="utf-8" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="http://cdn.datatables.net/1.10.0/js/jquery.dataTables.js"></script>
<script>
var test_data;
\$(document).ready( function () {
testTable = \$('#test_results').DataTable( {
data: test_data
});
\$('#test_results_filter label input')
.focus()
.val('failure');
});
</script>
</head>
<body>
<h2>Apache Thrift - integration test suite: Results</h2>
<table id="test_results" class="display">
<thead>
<tr>
<th>Server</th>
<th>Client</th>
<th>Protocol</th>
<th>Transport</th>
<th>Result (log)</th>
</tr>
</thead>
</table>
<script>
test_data = [
EOF
}
print_html_footer() {
duration=$1
cat << EOF >> $STATUS_HTML
]
</script>
<h2>Test Information</h2>
<pre>
Test Date: `date --iso-8601=seconds`
Revision: `git rev-parse --short HEAD`
OS: `uname -a`
Test duration: $duration
</pre>
</body>
</html>
EOF
}
intersection() {
return_value=""
for one in $1; do
for two in $2; do
if [ ${one} = ${two} ]; then
return_value=${return_value}" "${one}
fi
done;
done;
echo ${return_value};
}
do_test () {
client_server=$1
protocol=$2
transport=$3
client_exec=$4
server_exec=$5
client_timeout=$6
server_startup_time=$7
testname=${client_server}_${protocol}_${transport}
server_timeout=$(echo "(${server_startup_time}+${client_timeout})" | bc)
printf "%-16s %-13s %-17s" ${client_server} ${protocol} ${transport}
timeout $server_timeout $server_exec > log/${testname}_server.log 2>&1 &
server_pid=$!
sleep $server_startup_time
timeout $client_timeout $client_exec > log/${testname}_client.log 2>&1
if [ "$?" -eq "0" ]; then
result="success($?)"
echo " $result"
else
result="failure($?)"
echo " $result"
# add details to the error.log
print_header >> log/error.log
printf "%-16s %-11s %-17s\n" ${client_server} ${protocol} ${transport} >> log/error.log
echo "=================== server message ===================" >> log/error.log
tail log/${testname}_server.log >> log/error.log
echo "=================== client message ===================" >> log/error.log
tail log/${testname}_client.log >> log/error.log
echo "======================================================" >> log/error.log
echo "" >> log/error.log
FAILED=$(($FAILED + 1))
fi
TESTCOUNT=$(($TESTCOUNT + 1))
# split client-server string
client=${client_server%-*}
server=${client_server#*-}
cat << EOF >> $STATUS_HTML
[
"${server}",
"${client}",
"${protocol}",
"${transport}",
"${result} (<a href=\"log/${testname}_client.log\">client</a>, <a href=\"log/${testname}_server.log\">server</a>)"
],
EOF
# silently kill server
kill ${server_pid} 2>/dev/null && wait ${server_pid} 2>/dev/null
}
echo "Apache Thrift - integration test suite"
if [ "$#" -eq "0" ]; then
THRIFT_TEST_PORT=9090
else
THRIFT_TEST_PORT=$1
fi
date
echo "======================================================"
rm -rf log
mkdir -p log
print_header
print_html_header
ant -f ../lib/java/build.xml compile-test 1>/dev/null
#TODO add enum for parameters
#TODO align program arguments across languages
cpp_protocols="binary compact json"
java_protocols="binary compact json"
cpp_transports="buffered framed http"
java_server_transports="buffered framed fastframed"
java_client_transports=${java_server_transports}" http"
cpp_sockets="ip domain ip-ssl"
java_sockets="ip ip-ssl"
# TODO fastframed java transport is another implementation of framed transport
c_glib_protocols="binary"
c_glib_transports="buffered framed"
c_glib_sockets="ip"
nodejs_protocols="binary compact json"
nodejs_transports="buffered framed"
nodejs_sockets="ip ip-ssl"
csharp_protocols="binary compact json"
csharp_transports="buffered framed"
csharp_sockets="ip ip-ssl"
py_protocols="binary compact json accel"
py_transports="buffered framed"
py_sockets="ip ip-ssl"
ruby_protocols="binary compact json accel"
ruby_transports="buffered framed"
ruby_sockets="ip"
hs_protocols="binary compact json"
hs_transports="buffered"
hs_sockets="ip"
######### java client - java server #############
for proto in $java_protocols; do
for trans in $java_server_transports; do
for sock in $java_sockets; do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "java-java" "${proto}" "${trans}-${sock}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testclient" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testserver" \
"5" "1"
done
done
done
######### cpp client - cpp server ###############
for proto in $cpp_protocols; do
for trans in $cpp_transports; do
for sock in $cpp_sockets; do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "cpp-cpp" "${proto}" "${trans}-${sock}" \
"cpp/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"cpp/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"2" "0.1"
done
done
done
######### java client - cpp server ##############
# warning: ssl over http is not supported in java client!
for proto in $(intersection "${java_protocols}" "${cpp_protocols}"); do
for trans in $(intersection "${java_client_transports}" "${cpp_transports}"); do
for sock in $(intersection "${java_sockets}" "${cpp_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "java-cpp" "${proto}" "${trans}-${sock}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testclient" \
"cpp/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}"\
"5" "0.1"
done
done
done
######### cpp client - java server ##############
for proto in $(intersection "${cpp_protocols}" "${java_protocols}"); do
for trans in $(intersection "${cpp_transports}" "${java_server_transports}"); do
for sock in $(intersection "${java_sockets}" "${cpp_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "cpp-java" "${proto}" "${trans}-${sock}" \
"cpp/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testserver" \
"5" "1"
done
done
done
######### c_glib client - c_glib server ##############
for proto in ${c_glib_protocols}; do
for trans in ${c_glib_transports}; do
for sock in ${c_glib_sockets}; do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "c_glib-c_glib" "${proto}" "${trans}-${sock}" \
"c_glib/test_client --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"c_glib/test_server --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"2" "0.1"
done
done
done
######### c_glib client - cpp server ##############
for proto in $(intersection "${c_glib_protocols}" "${cpp_protocols}"); do
for trans in $(intersection "${c_glib_transports}" "${cpp_transports}"); do
for sock in $(intersection "${c_glib_sockets}" "${cpp_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "c_glib-cpp" "${proto}" "${trans}-${sock}" \
"c_glib/test_client --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"cpp/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}"\
"2" "0.1"
done
done
done
######### cpp client - c_glib server ##############
for proto in $(intersection "${cpp_protocols}" "${c_glib_protocols}"); do
for trans in $(intersection "${cpp_transports}" "${c_glib_transports}"); do
for sock in $(intersection "${cpp_sockets}" "${c_glib_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "cpp-c_glib" "${proto}" "${trans}-${sock}" \
"cpp/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}"\
"c_glib/test_server --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"2" "0.1"
done
done
done
######### c_glib client - java server ##############
for proto in $(intersection "${c_glib_protocols}" "${java_protocols}"); do
for trans in $(intersection "${c_glib_transports}" "${java_server_transports}"); do
for sock in $(intersection "${c_glib_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "c_glib-java" "${proto}" "${trans}-${sock}" \
"c_glib/test_client --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testserver" \
"2" "2"
done
done
done
######### java client - c_glib server ##############
for proto in $(intersection "${java_protocols}" "${c_glib_protocols}"); do
for trans in $(intersection "${java_client_transports}" "${c_glib_transports}"); do
for sock in $(intersection "${java_sockets}" "${c_glib_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "java-c_glib" "${proto}" "${trans}-${sock}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testclient" \
"c_glib/test_server --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "0.1"
done
done
done
NODE_TEST_DIR=${BASEDIR}/../lib/nodejs/test
export NODE_PATH=${NODE_TEST_DIR}:${NODE_TEST_DIR}/../lib:${NODE_PATH}
######### nodejs client - nodejs server ##############
for proto in ${nodejs_protocols}; do
for trans in ${nodejs_transports}; do
for sock in ${nodejs_sockets}; do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "nodejs-nodejs" "${proto}" "${trans}-${sock}" \
"node ${NODE_TEST_DIR}/client.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"node ${NODE_TEST_DIR}/server.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "0.2"
done
done
done
######### nodejs client - cpp server ##############
for proto in $(intersection "${nodejs_protocols}" "${cpp_protocols}"); do
for trans in $(intersection "${nodejs_transports}" "${cpp_transports}"); do
for sock in $(intersection "${nodejs_sockets}" "${cpp_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "nodejs-cpp" "${proto}" "${trans}-${sock}" \
"node ${NODE_TEST_DIR}/client.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"cpp/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "0.2"
done
done
done
######### cpp client - nodejs server ##############
for proto in $(intersection "${nodejs_protocols}" "${cpp_protocols}"); do
for trans in $(intersection "${nodejs_transports}" "${cpp_transports}"); do
for sock in $(intersection "${nodejs_sockets}" "${cpp_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "cpp-nodejs" "${proto}" "${trans}-${sock}" \
"cpp/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"node ${NODE_TEST_DIR}/server.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "2"
done
done
done
######### nodejs client - java server ##############
for proto in $(intersection "${nodejs_protocols}" "${java_protocols}"); do
for trans in $(intersection "${nodejs_transports}" "${java_server_transports}"); do
for sock in $(intersection "${nodejs_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "nodejs-java" "${proto}" "${trans}-${sock}" \
"node ${NODE_TEST_DIR}/client.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testserver" \
"5" "1"
done
done
done
######### java client - nodejs server ##############
for proto in $(intersection "${nodejs_protocols}" "${java_protocols}"); do
for trans in $(intersection "${nodejs_transports}" "${java_client_transports}"); do
for sock in $(intersection "${nodejs_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "java-nodejs" "${proto}" "${trans}-${sock}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testclient" \
"node ${NODE_TEST_DIR}/server.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "2"
done
done
done
######### nodejs client - c_glib server ##############
for proto in $(intersection "${nodejs_protocols}" "${c_glib_protocols}"); do
for trans in $(intersection "${nodejs_transports}" "${c_glib_transports}"); do
for sock in $(intersection "${nodejs_sockets}" "${c_glib_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "nodejs-c_glib" "${proto}" "${trans}-${sock}" \
"node ${NODE_TEST_DIR}/client.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"c_glib/test_server --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "0.1"
done
done
done
######### c_glib client - nodejs server ##############
for proto in $(intersection "${c_glib_protocols}" "${nodejs_protocols}"); do
for trans in $(intersection "${c_glib_transports}" "${nodejs_transports}"); do
for sock in $(intersection "${c_glib_sockets}" "${nodejs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "c_glib-nodejs" "${proto}" "${trans}-${sock}" \
"c_glib/test_client --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"node ${NODE_TEST_DIR}/server.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"2" "2"
done
done
done
######### py client - py server ##############
for proto in ${py_protocols}; do
for trans in ${py_transports}; do
for sock in ${py_sockets}; do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-py" "${proto}" "${trans}-${sock}" \
"py/TestClient.py --protocol=${proto} --transport={trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"py/TestServer.py --protocol=${proto} --transport={trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "2"
done
done
done
for trans in ${py_transports}; do
for sock in ${py_sockets}; do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-py" "accel-binary" "${trans}-${sock}" \
"py/TestClient.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"py/TestServer.py --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "2"
do_test "py-py" "binary-accel" "${trans}-${sock}" \
"py/TestClient.py --protocol=binary --transport={trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"py/TestServer.py --protocol=accel --transport={trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "2"
done
done
######### py client - cpp server ##############
for proto in $(intersection "${cpp_protocols}" "${py_protocols}"); do
for trans in $(intersection "${cpp_transports}" "${py_transports}"); do
for sock in $(intersection "${cpp_sockets}" "${py_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-cpp" "${proto}" "${trans}-${sock}" \
"py/TestClient.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"cpp/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"10" "2"
done
done
done
for trans in $(intersection "${cpp_transports}" "${py_transports}"); do
for sock in $(intersection "${cpp_sockets}" "${py_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-cpp" "accel-binary" "${trans}-${sock}" \
"py/TestClient.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"cpp/TestServer --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"10" "2"
done
done
######### cpp client - py server ##############
for proto in $(intersection "${cpp_protocols}" "${py_protocols}"); do
for trans in $(intersection "${cpp_transports}" "${py_transports}"); do
for sock in $(intersection "${cpp_sockets}" "${py_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "cpp-py" "${proto}" "${trans}-${sock}" \
"cpp/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "2"
done
done
done
for trans in $(intersection "${cpp_transports}" "${py_transports}"); do
for sock in $(intersection "${cpp_sockets}" "${py_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "cpp-py" "binary-accel" "${trans}-${sock}" \
"cpp/TestClient --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "2"
done
done
######### py client - java server ##############
for proto in $(intersection "${py_protocols}" "${java_protocols}"); do
for trans in $(intersection "${py_transports}" "${java_server_transports}"); do
for sock in $(intersection "${py_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-java" "${proto}" "${trans}-${sock}" \
"py/TestClient.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testserver" \
"15" "2"
done
done
done
for trans in $(intersection "${py_transports}" "${java_server_transports}"); do
for sock in $(intersection "${py_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-java" "accel-binary" "${trans}-${sock}" \
"py/TestClient.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testserver" \
"15" "2"
done
done
######### java client - py server ##############
for proto in $(intersection "${py_protocols}" "${java_protocols}"); do
for trans in $(intersection "${py_transports}" "${java_client_transports}"); do
for sock in $(intersection "${py_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "java-py" "${proto}" "${trans}-${sock}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testclient" \
"py/TestServer.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "5"
done
done
done
for trans in $(intersection "${py_transports}" "${java_client_transports}"); do
for sock in $(intersection "${py_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "java-py" "binary-accel" "${trans}-${sock}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testclient" \
"py/TestServer.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "5"
done
done
######### py client - c_glib server ##############
for proto in $(intersection "${py_protocols}" "${c_glib_protocols}"); do
for trans in $(intersection "${py_transports}" "${c_glib_transports}"); do
for sock in $(intersection "${py_sockets}" "${c_glib_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-c_glib" "${proto}" "${trans}-${sock}" \
"py/TestClient.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"c_glib/test_server --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"10" "0.1"
done
done
done
for trans in $(intersection "${py_transports}" "${c_glib_transports}"); do
for sock in $(intersection "${py_sockets}" "${c_glib_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-c_glib" "accel-binary" "${trans}-${sock}" \
"py/TestClient.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"c_glib/test_server --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"10" "0.1"
done
done
######### c_glib client - py server ##############
for proto in $(intersection "${c_glib_protocols}" "${py_protocols}"); do
for trans in $(intersection "${c_glib_transports}" "${py_transports}"); do
for sock in $(intersection "${c_glib_sockets}" "${py_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "c_glib-py" "${proto}" "${trans}-${sock}" \
"c_glib/test_client --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"2" "2"
done
done
done
for trans in $(intersection "${c_glib_transports}" "${py_transports}"); do
for sock in $(intersection "${c_glib_sockets}" "${py_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "c_glib-py" "binary-accel" "${trans}-${sock}" \
"c_glib/test_client --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "2"
done
done
######### py client - nodejs server ##############
for proto in $(intersection "${py_protocols}" "${nodejs_protocols}"); do
for trans in $(intersection "${py_transports}" "${nodejs_transports}"); do
for sock in $(intersection "${py_sockets}" "${nodejs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-nodejs" "${proto}" "${trans}-${sock}" \
"py/TestClient.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"node ${NODE_TEST_DIR}/server.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"15" "2"
done
done
done
for trans in $(intersection "${py_transports}" "${nodejs_transports}"); do
for sock in $(intersection "${py_sockets}" "${nodejs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-nodejs" "${proto}" "${trans}-${sock}" \
"py/TestClient.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"node ${NODE_TEST_DIR}/server.js -p binary -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"15" "2"
done
done
######### nodejs client - py server ##############
for proto in $(intersection "${py_protocols}" "${nodejs_protocols}"); do
for trans in $(intersection "${py_transports}" "${nodejs_transports}"); do
for sock in $(intersection "${py_sockets}" "${nodejs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "nodejs-py" "${proto}" "${trans}-${sock}" \
"node ${NODE_TEST_DIR}/client.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "2"
done
done
done
for trans in $(intersection "${py_transports}" "${nodejs_transports}"); do
for sock in $(intersection "${py_sockets}" "${nodejs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "nodejs-py" "binary-accel" "${trans}-${sock}" \
"node ${NODE_TEST_DIR}/client.js -p binary -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "2"
done
done
######### ruby client - ruby server ##############
for proto in ${ruby_protocols}; do
for trans in ${ruby_transports}; do
for sock in ${ruby_sockets}; do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-ruby" "${proto}" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
done
for trans in ${ruby_transports}; do
for sock in ${ruby_sockets}; do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-ruby" "accel-binary" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
do_test "ruby-ruby" "binary-accel" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
######### ruby client - cpp server ##############
for proto in $(intersection "${cpp_protocols}" "${ruby_protocols}"); do
for trans in $(intersection "${cpp_transports}" "${ruby_transports}"); do
for sock in $(intersection "${cpp_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-cpp" "${proto}" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"cpp/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
done
for trans in $(intersection "${cpp_transports}" "${ruby_transports}"); do
for sock in $(intersection "${cpp_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-cpp" "accel-binary" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"cpp/TestServer --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
######### cpp client - ruby server ##############
for proto in $(intersection "${cpp_protocols}" "${ruby_protocols}"); do
for trans in $(intersection "${cpp_transports}" "${ruby_transports}"); do
for sock in $(intersection "${cpp_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "cpp-ruby" "${proto}" "${trans}-${sock}" \
"cpp/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
done
for trans in $(intersection "${cpp_transports}" "${ruby_transports}"); do
for sock in $(intersection "${cpp_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "cpp-ruby" "binary-accel" "${trans}-${sock}" \
"cpp/TestClient --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
######### ruby client - java server ##############
for proto in $(intersection "${ruby_protocols}" "${java_protocols}"); do
for trans in $(intersection "${ruby_transports}" "${java_server_transports}"); do
for sock in $(intersection "${ruby_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-java" "${proto}" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testserver" \
"15" "5"
done
done
done
for trans in $(intersection "${ruby_transports}" "${java_server_transports}"); do
for sock in $(intersection "${ruby_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-java" "accel-binary" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testserver" \
"15" "5"
done
done
######### java client - ruby server ##############
for proto in $(intersection "${ruby_protocols}" "${java_protocols}"); do
for trans in $(intersection "${ruby_transports}" "${java_client_transports}"); do
for sock in $(intersection "${ruby_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "java-ruby" "${proto}" "${trans}-${sock}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testclient" \
"ruby rb/integration/TestServer.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"10" "5"
done
done
done
for trans in $(intersection "${ruby_transports}" "${java_client_transports}"); do
for sock in $(intersection "${ruby_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "java-ruby" "binary-accel" "${trans}-${sock}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testclient" \
"ruby rb/integration/TestServer.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"10" "5"
done
done
######### ruby client - c_glib server ##############
for proto in $(intersection "${ruby_protocols}" "${c_glib_protocols}"); do
for trans in $(intersection "${ruby_transports}" "${c_glib_transports}"); do
for sock in $(intersection "${ruby_sockets}" "${c_glib_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-c_glib" "${proto}" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"c_glib/test_server --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "0.1"
done
done
done
for trans in $(intersection "${ruby_transports}" "${c_glib_transports}"); do
for sock in $(intersection "${ruby_sockets}" "${c_glib_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-c_glib" "accel-binary" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"c_glib/test_server --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "0.1"
done
done
######### c_glib client - ruby server ##############
for proto in $(intersection "${c_glib_protocols}" "${ruby_protocols}"); do
for trans in $(intersection "${c_glib_transports}" "${ruby_transports}"); do
for sock in $(intersection "${c_glib_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "c_glib-ruby" "${proto}" "${trans}-${sock}" \
"c_glib/test_client --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"2" "2"
done
done
done
for trans in $(intersection "${c_glib_transports}" "${ruby_transports}"); do
for sock in $(intersection "${c_glib_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "c_glib-ruby" "binary-accel" "${trans}-${sock}" \
"c_glib/test_client --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
######### ruby client - nodejs server ##############
for proto in $(intersection "${ruby_protocols}" "${nodejs_protocols}"); do
for trans in $(intersection "${ruby_transports}" "${nodejs_transports}"); do
for sock in $(intersection "${ruby_sockets}" "${nodejs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-nodejs" "${proto}" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"node ${NODE_TEST_DIR}/server.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "2"
done
done
done
for trans in $(intersection "${ruby_transports}" "${nodejs_transports}"); do
for sock in $(intersection "${ruby_sockets}" "${nodejs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-nodejs" "${proto}" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"node ${NODE_TEST_DIR}/server.js -p binary -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "2"
done
done
######### nodejs client - ruby server ##############
for proto in $(intersection "${ruby_protocols}" "${nodejs_protocols}"); do
for trans in $(intersection "${ruby_transports}" "${nodejs_transports}"); do
for sock in $(intersection "${ruby_sockets}" "${nodejs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "nodejs-ruby" "${proto}" "${trans}-${sock}" \
"node ${NODE_TEST_DIR}/client.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"10" "5"
done
done
done
for trans in $(intersection "${ruby_transports}" "${nodejs_transports}"); do
for sock in $(intersection "${ruby_sockets}" "${nodejs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "nodejs-ruby" "binary-accel" "${trans}-${sock}" \
"node ${NODE_TEST_DIR}/client.js -p binary -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"10" "2"
done
done
######### py client - ruby server ##############
for proto in $(intersection "${py_protocols}" "${ruby_protocols}"); do
for trans in $(intersection "${py_transports}" "${ruby_transports}"); do
for sock in $(intersection "${py_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-ruby" "${proto}" "${trans}-${sock}" \
"py/TestClient.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"15" "5"
done
done
done
for trans in $(intersection "${py_transports}" "${ruby_transports}"); do
for sock in $(intersection "${py_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-ruby" "${proto}" "${trans}-${sock}" \
"py/TestClient.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"15" "5"
do_test "py-ruby" "${proto}" "${trans}-${sock}" \
"py/TestClient.py --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"15" "5"
done
done
######### ruby client - py server ##############
for proto in $(intersection "${py_protocols}" "${ruby_protocols}"); do
for trans in $(intersection "${py_transports}" "${ruby_transports}"); do
for sock in $(intersection "${py_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-py" "${proto}" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"5" "2"
done
done
done
for trans in $(intersection "${py_transports}" "${ruby_transports}"); do
for sock in $(intersection "${py_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-py" "binary-accel" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"5" "2"
do_test "ruby-py" "accel-binary" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"5" "2"
done
done
######### hs client - hs server ###############
for proto in $hs_protocols; do
for trans in $hs_transports; do
for sock in $hs_sockets; do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "hs-hs" "${proto}" "${trans}-${sock}" \
"hs/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"hs/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"2" "0.1"
done
done
done
######### hs client - cpp server ###############
for proto in $(intersection "${hs_protocols}" "${cpp_protocols}"); do
for trans in $(intersection "${hs_transports}" "${cpp_transports}"); do
for sock in $(intersection "${hs_sockets}" "${cpp_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "hs-cpp" "${proto}" "${trans}-${sock}" \
"hs/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"cpp/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"2" "0.1"
done
done
done
######### cpp client - hs server ###############
for proto in $(intersection "${hs_protocols}" "${cpp_protocols}"); do
for trans in $(intersection "${hs_transports}" "${cpp_transports}"); do
for sock in $(intersection "${hs_sockets}" "${cpp_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "cpp-hs" "${proto}" "${trans}-${sock}" \
"cpp/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"hs/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"2" "0.1"
done
done
done
######### hs client - java server ###############
for proto in $(intersection "${hs_protocols}" "${java_protocols}"); do
for trans in $(intersection "${hs_transports}" "${java_transports}"); do
for sock in $(intersection "${hs_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "hs-java" "${proto}" "${trans}-${sock}" \
"hs/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testserver" \
"5" "1"
done
done
done
######### java client - hs server ###############
for proto in $(intersection "${hs_protocols}" "${java_protocols}"); do
for trans in $(intersection "${hs_transports}" "${java_transports}"); do
for sock in $(intersection "${hs_sockets}" "${java_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "java-hs" "${proto}" "${trans}-${sock}" \
"ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} ${extraparam}\" run-testclient" \
"hs/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "1"
done
done
done
######### hs client - c_glib server ###############
for proto in $(intersection "${hs_protocols}" "${c_glib_protocols}"); do
for trans in $(intersection "${hs_transports}" "${c_glib_transports}"); do
for sock in $(intersection "${hs_sockets}" "${c_glib_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "hs-c_glib" "${proto}" "${trans}-${sock}" \
"hs/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"c_glib/test_server --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"2" "0.1"
done
done
done
######### c_glib client - hs server ###############
for proto in $(intersection "${c_glib_protocols}" "${hs_protocols}"); do
for trans in $(intersection "${c_glib_transports}" "${hs_transports}"); do
for sock in $(intersection "${c_glib_sockets}" "${hs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
"domain" ) extraparam="--domain-socket=/tmp/ThriftTest.thrift";;
esac
do_test "c_glib-hs" "${proto}" "${trans}-${sock}" \
"c_glib/test_client --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"hs/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"2" "0.1"
done
done
done
######### py client -hs server ##############
for proto in $(intersection "${hs_protocols}" "${py_protocols}"); do
for trans in $(intersection "${hs_transports}" "${py_transports}"); do
for sock in $(intersection "${hs_sockets}" "${py_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-hs" "${proto}" "${trans}-${sock}" \
"py/TestClient.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"hs/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"10" "2"
done
done
done
for trans in $(intersection "${hs_transports}" "${py_transports}"); do
for sock in $(intersection "${hs_sockets}" "${py_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "py-hs" "accel-binary" "${trans}-${sock}" \
"py/TestClient.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \
"hs/TestServer --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"10" "2"
done
done
######### hs client - py server ##############
for proto in $(intersection "${hs_protocols}" "${py_protocols}"); do
for trans in $(intersection "${hs_transports}" "${py_transports}"); do
for sock in $(intersection "${hs_sockets}" "${py_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "hs-py" "${proto}" "${trans}-${sock}" \
"hs/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "2"
done
done
done
for trans in $(intersection "${hs_transports}" "${py_transports}"); do
for sock in $(intersection "${hs_sockets}" "${py_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "hs-py" "binary-accel" "${trans}-${sock}" \
"hs/TestClient --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"py/TestServer.py --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --genpydir=gen-py TSimpleServer ${extraparam}" \
"10" "2"
done
done
######### nodejs client - hs server ##############
for proto in $(intersection "${nodejs_protocols}" "${hs_protocols}"); do
for trans in $(intersection "${nodejs_transports}" "${hs_transports}"); do
for sock in $(intersection "${nodejs_sockets}" "${hs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "nodejs-hs" "${proto}" "${trans}-${sock}" \
"node ${NODE_TEST_DIR}/client.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"hs/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "0.2"
done
done
done
######### hs client - nodejs server ##############
for proto in $(intersection "${nodejs_protocols}" "${hs_protocols}"); do
for trans in $(intersection "${nodejs_transports}" "${hs_transports}"); do
for sock in $(intersection "${nodejs_sockets}" "${hs_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "hs-nodejs" "${proto}" "${trans}-${sock}" \
"hs/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"node ${NODE_TEST_DIR}/server.js -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "2"
done
done
done
######### ruby client - hs server ##############
for proto in $(intersection "${hs_protocols}" "${ruby_protocols}"); do
for trans in $(intersection "${hs_transports}" "${ruby_transports}"); do
for sock in $(intersection "${hs_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-hs" "${proto}" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"hs/TestServer --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
done
for trans in $(intersection "${hs_transports}" "${ruby_transports}"); do
for sock in $(intersection "${hs_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "ruby-cpp" "accel-binary" "${trans}-${sock}" \
"ruby rb/integration/TestClient.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam} ${extraparam}" \
"hs/TestServer --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
######### hs client - ruby server ##############
for proto in $(intersection "${hs_protocols}" "${ruby_protocols}"); do
for trans in $(intersection "${hs_transports}" "${ruby_transports}"); do
for sock in $(intersection "${hs_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "hs-ruby" "${proto}" "${trans}-${sock}" \
"hs/TestClient --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
done
for trans in $(intersection "${hs_transports}" "${ruby_transports}"); do
for sock in $(intersection "${hs_sockets}" "${ruby_sockets}"); do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "hs-ruby" "binary-accel" "${trans}-${sock}" \
"hs/TestClient --protocol=binary --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"ruby rb/integration/TestServer.rb --protocol=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "5"
done
done
# delete Unix Domain Socket used by cpp tests
rm -f /tmp/ThriftTest.thrift
######### csharp client - csharp server #############
export MONO_PATH=../lib/csharp
for proto in $csharp_protocols; do
for trans in $csharp_transports; do
for sock in $csharp_sockets; do
case "$sock" in
"ip" ) extraparam="";;
"ip-ssl" ) extraparam="--ssl";;
esac
do_test "csharp-csharp" "${proto}" "${trans}-${sock}" \
"../lib/csharp/test/ThriftTest/TestClientServer.exe client --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"../lib/csharp/test/ThriftTest/TestClientServer.exe server --protocol=${proto} --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \
"5" "1"
done
done
done
do_test "js-java" "json" "http-ip" \
"" \
"ant -f ../lib/js/test/build.xml unittest" \
"2" "2"
do_test "perl-cpp" "binary" "buffered-ip" \
"perl -I perl/gen-perl/ -I../lib/perl/lib/ perl/TestClient.pl" \
"cpp/TestServer --port=${THRIFT_TEST_PORT}" \
"10" "2"
do_test "php-cpp" "binary" "buffered-ip" \
"make -C php/ client" \
"cpp/TestServer --port=${THRIFT_TEST_PORT}" \
"10" "2"
echo " failed tests are logged to test/log/error.log"
echo " full log is here test/log/client_server_protocol_transport_client.log"
echo " full log is here test/log/client_server_protocol_transport_server.log"
echo " or look at file://$BASEDIR/$STATUS_HTML"
ELAPSED_TIME=$(echo "(${SECONDS} - ${START_TIME})" | bc)
DURATION="${ELAPSED_TIME} seconds"
echo $FAILED failed of $TESTCOUNT tests in total
echo "test an took" $DURATION
print_html_footer "$DURATION"
date
cd -