Skip to content

Commit

Permalink
THRIFT-847 Test Framework harmonization across all languages
Browse files Browse the repository at this point in the history
add test.sh as a first approach

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1229359 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
bufferoverflow committed Jan 9, 2012
1 parent 333bbf3 commit 4d5157d
Show file tree
Hide file tree
Showing 2 changed files with 122 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -182,6 +182,7 @@
/lib/php/src/ext/thrift_protocol/php_thrift_protocol.lo
/lib/php/src/ext/thrift_protocol/run-tests.php
/lib/php/src/ext/thrift_protocol/thrift_protocol.la
/lib/erl/logs/
/lib/erl/Makefile
/lib/erl/Makefile.in
/lib/erl/src/Makefile
Expand All @@ -207,6 +208,8 @@
/test/hs/gen-*
/test/hs/Makefile
/test/hs/Makefile.in
/test/log/
/test/test.log
/test/perl/gen-*
/test/php/gen-*
/test/py/Makefile
Expand Down
119 changes: 119 additions & 0 deletions test/test.sh
@@ -0,0 +1,119 @@
#!/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


print_header() {
printf "%-16s %-11s %-17s %-s\n" "client-server:" "protocol:" "transport:" "result:"
}

do_test () {
client_server=$1
protocol=$2
transport=$3
client_exec=$4
server_exec=$5
server_startup_time=$6

testname=${client_server}_${protocol}_${transport}
server_timeout=$((${server_startup_time}+10))
printf "%-16s %-11s %-17s" ${client_server} ${protocol} ${transport}
timeout $server_timeout $server_exec > log/${testname}_server.log 2>&1 &
sleep $server_startup_time
$client_exec > log/${testname}_client.log 2>&1

if [ "$?" -eq "0" ]; then
echo " success"
else
echo " failure"
echo "=================== server message ==================="
tail log/${testname}_server.log
echo "=================== client message ==================="
tail log/${testname}_client.log
echo "======================================================"
print_header
fi
sleep 10
}

echo "Apache Thrift - integration test suite"
date
echo "======================================================"

rm -rf log
mkdir -p log

print_header


protocols="binary json"
transports="buffered framed http"
sockets="ip domain"
# we need a test certificate first
#sockets="ip ip-ssl domain"

for proto in $protocols; do
for trans in $transports; do
for sock in $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} ${extraparam}" \
"cpp/TestServer --protocol=${proto} --transport=${trans} ${extraparam}" \
"10"
done;
done;
done;


do_test "java-java" "binary" "buffered-ip" \
"ant -f ../lib/java/build.xml testclient" \
"ant -f ../lib/java/build.xml testserver" \
"100"
do_test "cpp-java" "binary" "buffered-ip" \
"cpp/TestClient" \
"ant -f ../lib/java/build.xml testserver" \
"100"
do_test "cpp-java" "json" "buffered-ip" \
"cpp/TestClient" \
"ant -f ../lib/java/build.xml testserver" \
"100"
do_test "js-java" "json " "http-ip" \
"" \
"ant -f ../lib/js/test/build.xml unittest" \
"100"
do_test "java-cpp" "binary" "buffered-ip" \
"ant -f ../lib/java/build.xml testclient" \
"cpp/TestServer" \
"10"
do_test "perl-cpp" "binary" "buffered-ip" \
"perl -I perl/gen-perl/ perl/TestClient.pl" \
"cpp/TestServer" \
"10"

0 comments on commit 4d5157d

Please sign in to comment.