diff options
author | Nobuaki Sukegawa <nsukeg@gmail.com> | 2015-03-29 14:48:48 +0900 |
---|---|---|
committer | Roger Meier <roger@apache.org> | 2015-03-29 14:39:32 +0200 |
commit | f5b795d3be6acc0da30afc4b4aa77e531125eec6 (patch) | |
tree | ac808f8ea26ea5481f0811f4daa4b273f0b0bde5 | |
parent | 58ed1cdf3cd4da9d013e4cd4b92b3f4e440d145d (diff) | |
download | thrift-f5b795d3be6acc0da30afc4b4aa77e531125eec6.tar.gz |
THRIFT-2578 Moving 'make cross' from test.sh to test.py
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | .travis.yml | 7 | ||||
-rwxr-xr-x | Makefile.am | 7 | ||||
-rwxr-xr-x | test/Makefile.am | 1 | ||||
-rwxr-xr-x | test/README.md | 136 | ||||
-rw-r--r-- | test/crossrunner/collect.py | 8 | ||||
-rw-r--r-- | test/crossrunner/report.py | 12 | ||||
-rwxr-xr-x | test/test.sh | 1436 |
8 files changed, 139 insertions, 1469 deletions
diff --git a/.gitignore b/.gitignore index a3062d85d..70e05f04d 100644 --- a/.gitignore +++ b/.gitignore @@ -219,7 +219,6 @@ test-driver /missing /node_modules/ /stamp-h1 -/test/status.html /test/results.json /test/c_glib/test_client /test/c_glib/test_server diff --git a/.travis.yml b/.travis.yml index bb45961a0..e5b8e02df 100644 --- a/.travis.yml +++ b/.travis.yml @@ -56,15 +56,10 @@ env: matrix: # Put it here because it's most time consuming - TEST_NAME="make cross (automake)" - CONFIG="--without-python" - ALL_DEPS="yes" - MAKE_TARGET="cross" - - - TEST_NAME="make cross-py (automake)" THRIFT_CROSSTEST_CONCURRENCY=6 CONFIG="--enable-tutorial=no --without-erlang --without-lua --without-haxe --without-d" ALL_DEPS="yes" - MAKE_TARGET="cross2" + MAKE_TARGET="cross" # CMake builds - TEST_NAME="compiler (CMake + CPack)" diff --git a/Makefile.am b/Makefile.am index bbe6f8034..65dfe9dbf 100755 --- a/Makefile.am +++ b/Makefile.am @@ -37,16 +37,13 @@ dist-hook: print-version: @echo $(VERSION) -.PHONY: precross cross cross2 +.PHONY: precross cross precross-%: all $(MAKE) -C $* precross precross: all precross-test precross-lib -cross: precross - sh test/test.sh - # TODO: generate --server and --client switches from "--with(out)-..." build flags -cross2: precross +cross: precross python test/test.py -s codespell_skip_files = \ diff --git a/test/Makefile.am b/test/Makefile.am index 5bd2d0e1a..7b2e180e1 100755 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -69,7 +69,6 @@ check-local: EXTRA_DIST = \ keys \ - test.sh \ test.py \ tests.json \ c_glib \ diff --git a/test/README.md b/test/README.md index bc1828c9c..ef874ac2a 100755 --- a/test/README.md +++ b/test/README.md @@ -1,17 +1,116 @@ # Apache Thrift - integration test suite This is the cross everything integration test suite for Apache Thrift. -executed by + +## Run + +### A. Using Make + +The test can be executed by: make cross -at the moment, this starts the test.sh script which does the real cross test -with different transports, protocols and languages. +This starts the [test.py](test.py) script which does the real cross test with +different transports, protocols and languages. + +Note that this requires basically everything to be built, otherwise test cases +for missing languages will fail. If you skip building some languages, or simply +need more control, read following section. + +### B. Using test script directly + +Alternatively, you can invoke [test.py](test.py) directly. You need to run`make +precross` once before executing it for the first time. + +For example, if you changed something in `nodejs` library and need to verify +the patch, you can skip everything except `nodejs` itself and some reference +implementation (currently `cpp` and `java` are recommended) like this: + + ./configure --without-c_glib -without-csharp --without-erlang --without-lua ... + make precross -j8 + test/test.py --server cpp,java --client nodejs + test/test.py --server nodejs --client cpp,java + +## Test case definition file + +The cross test cases are defined in [tests.json](tests.json). +The root element is collection of test target definitions. +Each test target definition looks like this: + + { + "name": "somelib", + + "client": { + "command": ["somelib_client_executable"], + "workdir": "somelib/bin", + "protocols": ["binary"], + "transports": ["buffered"], + "sockets": ["ip"], + }, + "server": { + "command": ["somelib_server_executable"], + "workdir": "somelib/bin", + "protocols": ["binary"], + "transports": ["buffered"], + "sockets": ["ip", "ip-ssl"], + } + } + +Either client or server definition or both should be present. + +Parameters that are common to both `client` and `server` can be put to target +definition root: + + { + "name": "somelib", + + "workdir": "somelib/bin", + "protocols": ["binary"], + "transports": ["buffered"], + "sockets": ["ip"], + + "client": { "command": ["somelib_client_executable"] }, + "server": { + "command": ["somelib_server_executable"], + "sockets": ["ip-ssl"] + } + } + +For the complete list of supported keys and their effect, see source code +comment at the opt of [crossrunner/collect.py](crossrunner/collect.py). + + +## List of known failures + +Since many cross tests currently fail (mainly due to partial incompatibility +around exception handling), the test script specifically report for "not known +before" failures. + +For this purpose, test cases known to (occasionally) fail are listed in +`known_failures_<platform>.json` where `<platform>` matches with python +`platform.system()` string. + +Currently, only Linux version is included. + +FYI, the file is initially generated by + + test/test.py --update-expected-failures=overwrite + +after a full test run, then repeatedly + + test/test.py --skip-known-failures + test/test.py --update-expected-failures=merge + +## Test executable specification + +### Command line parameters Unit tests for languages are usually located under lib/<lang>/test/ cross language tests according to [ThriftTest.thrift](ThriftTest.thrift) shall be provided for every language including executables with the following command -line interface for servers: +line interface: + +**Server command line interface:** $ ./cpp/TestServer -h Allowed options: @@ -19,23 +118,23 @@ line interface for servers: --port arg (=9090) Port number to listen --domain-socket arg Unix Domain Socket (e.g. /tmp/ThriftTest.thrift) --named-pipe arg Windows Named Pipe (e.g. MyThriftPipe) - --server-type arg (=simple) type of server, "simple", "thread-pool", + --server-type arg (=simple) type of server, "simple", "thread-pool", "threaded", or "nonblocking" --transport arg (=buffered) transport: buffered, framed, http, anonpipe --protocol arg (=binary) protocol: binary, compact, json --ssl Encrypted Transport using SSL --processor-events processor-events - -n [ --workers ] arg (=4) Number of thread pools workers. Only valid for + -n [ --workers ] arg (=4) Number of thread pools workers. Only valid for thread-pool server type -and this for clients: +**Client command line interface:** $ ./cpp/TestClient -h Allowed options: -h [ --help ] produce help message --host arg (=localhost) Host to connect --port arg (=9090) Port number to connect - --domain-socket arg Domain Socket (e.g. /tmp/ThriftTest.thrift), + --domain-socket arg Domain Socket (e.g. /tmp/ThriftTest.thrift), instead of host and port --named-pipe arg Windows Named Pipe (e.g. MyThriftPipe) --anon-pipes hRead hWrite Windows Anonymous Pipes pair (handles) @@ -43,13 +142,15 @@ and this for clients: --protocol arg (=binary) Protocol: binary, compact, json --ssl Encrypted Transport using SSL -n [ --testloops ] arg (=1) Number of Tests - -t [ --threads ] arg (=1) Number of Test threads + -t [ --threads ] arg (=1) Number of Test threads If you have executed the **make check** or **make cross** then you will be able to browse [gen-html/ThriftTest.html](gen-html/ThriftTest.html) with the test documentation. -The return code (exit code) shall be 0 on success, or an integer in the range 1 - 255 on errors. -In order to signal failed tests, the return code shall be composed from these bits to indicate +### Return code + +The return code (exit code) shall be 0 on success, or an integer in the range 1 - 255 on errors. +In order to signal failed tests, the return code shall be composed from these bits to indicate failing tests: #define TEST_BASETYPES 1 // 0000 0001 @@ -59,16 +160,15 @@ failing tests: #define TEST_NOTUSED 240 // 1111 0000 (reserved bits) Tests that have not been executed at all count as errors. - -### Example: -During tests, the test client notices that some of the Struct tests fail. -Furthermore, due to some other problem none of the Exception tests is executed. -Therefore, the test client returns the code `10 = 2 | 8`, indicating the failure -of both test 2 (TEST_STRUCTS) and test 8 (TEST_EXCEPTIONS). +**Example:** + +During tests, the test client notices that some of the Struct tests fail. +Furthermore, due to some other problem none of the Exception tests is executed. +Therefore, the test client returns the code `10 = 2 | 8`, indicating the failure +of both test 2 (TEST_STRUCTS) and test 8 (TEST_EXCEPTIONS). ## SSL Test Keys and Certificates are provided in multiple formats under the following directory [test/keys](keys) - diff --git a/test/crossrunner/collect.py b/test/crossrunner/collect.py index 80a82e71a..6c771b3ba 100644 --- a/test/crossrunner/collect.py +++ b/test/crossrunner/collect.py @@ -31,6 +31,13 @@ from crossrunner.util import merge_dict # protocols: list of supported protocols # transports: list of supported transports # sockets: list of supported sockets +# +# protocols and transports entries can be colon separated "spec:impl" pair +# (e.g. binary:accel) where test is run for any matching "spec" while actual +# argument passed to test executable is "impl". +# Otherwise "spec" is equivalent to "spec:spec" pair. +# (e.g. "binary" is equivalent to "binary:bianry" in tests.json) +# VALID_JSON_KEYS = [ 'name', # name of the library, typically a language name 'workdir', # work directory where command is executed @@ -78,7 +85,6 @@ def do_collect_tests(servers, clients): return v return cached_set(o1, key) & cached_set(o2, key) - # each entry can be spec:impl (e.g. binary:accel) def intersect_with_spec(key, o1, o2): # store as set of (spec, impl) tuple def cached_set(o): diff --git a/test/crossrunner/report.py b/test/crossrunner/report.py index da478fa4b..85e3c26d3 100644 --- a/test/crossrunner/report.py +++ b/test/crossrunner/report.py @@ -53,7 +53,7 @@ def generate_known_failures(testdir, overwrite, save, out): known = load_known_failures(testdir) known.extend(fails) fails = known - fails_json = json.dumps(sorted(set(fails)), indent=2) + fails_json = json.dumps(sorted(set(fails)), indent=2, separators=(',', ': ')) if save: with open(os.path.join(testdir, FAIL_JSON % platform.system()), 'w+') as fp: fp.write(fails_json) @@ -284,6 +284,12 @@ class SummaryReporter(TestReporter): self.out.write(self._format_test(self._tests[i])) self._print_bar() + def _http_server_command(self, port): + if sys.version_info[0] < 3: + return 'python -m SimpleHTTPServer %d' % port + else: + return 'python -m http.server %d' % port + def _print_footer(self): fail_count = len(self._expected_failure) + len(self._unexpected_failure) self._print_bar() @@ -295,6 +301,10 @@ class SummaryReporter(TestReporter): self.out.writelines([ 'You can browse results at:\n', '\tfile://%s/%s\n' % (self.testdir, RESULT_HTML), + '# If you use Chrome, run:\n', + '# \tcd %s\n#\t%s\n' % (self.testdir, self._http_server_command(8001)), + '# then browse:\n', + '# \thttp://localhost:%d/%s\n' % (8001, RESULT_HTML), 'Full log for each test is here:\n', '\ttest/log/client_server_protocol_transport_client.log\n', '\ttest/log/client_server_protocol_transport_server.log\n', diff --git a/test/test.sh b/test/test.sh deleted file mode 100755 index f7bf87419..000000000 --- a/test/test.sh +++ /dev/null @@ -1,1436 +0,0 @@ -#!/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" - -# only test tcp type for now like the original cross test. -# other nodejs types can be enabled in a separate patch. -nodejs_types="tcp" # "tcp multiplex http websocket" -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 type in ${nodejs_types}; do - 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 --type ${type} -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "node ${NODE_TEST_DIR}/server.js --type ${type} -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "5" "0.2" - done - done - done -done - -######### nodejs client - cpp server ############## -for type in ${nodejs_types}; do - 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 --type ${type} -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 -done - -######### cpp client - nodejs server ############## -for type in ${nodejs_types}; do - 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 --type ${type} -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "5" "2" - done - done - done -done - -######### nodejs client - java server ############## -for type in ${nodejs_types}; do - 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 --type ${type} -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 -done - -######### java client - nodejs server ############## -for type in ${nodejs_types}; do - 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 --type ${type} -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "5" "2" - done - done - done -done - -######### nodejs client - c_glib server ############## -for type in ${nodejs_types}; do - 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 --type ${type} -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 -done - -######### c_glib client - nodejs server ############## -for type in ${nodejs_types}; do - 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 --type ${type} -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "2" "2" - done - 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 type in ${nodejs_types}; do - 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 --type ${type} -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "15" "2" - done - done - done -done - -for type in ${nodejs_types}; 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=accel --transport=${trans} --port=${THRIFT_TEST_PORT} --host=localhost --genpydir=gen-py ${extraparam}" \ - "node ${NODE_TEST_DIR}/server.js --type ${type} -p binary -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "15" "2" - done - done -done - -######### nodejs client - py server ############## -for type in ${nodejs_types}; do - 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 --type ${type} -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 -done - -for type in ${nodejs_types}; 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" "binary-accel" "${trans}-${sock}" \ - "node ${NODE_TEST_DIR}/client.js --type ${type} -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 -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 type in ${nodejs_types}; do - 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 --type ${type} -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "5" "2" - done - done - done -done - -for type in ${nodejs_types}; 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=accel --transport=${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "node ${NODE_TEST_DIR}/server.js --type ${type} -p binary -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "5" "2" - done - done -done - -######### nodejs client - ruby server ############## -for type in ${nodejs_types}; do - 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 --type ${type} -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 -done - -for type in ${nodejs_types}; 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" "binary-accel" "${trans}-${sock}" \ - "node ${NODE_TEST_DIR}/client.js --type ${type} -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 -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 type in ${nodejs_types}; do - 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 --type ${type} -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 -done - -######### hs client - nodejs server ############## -for type in ${nodejs_types}; do - 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 --type ${type} -p ${proto} -t ${trans} --port=${THRIFT_TEST_PORT} ${extraparam}" \ - "5" "2" - done - 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 - |