THRIFT-847 Test Framework harmonization across all languages
py-py, py-java, java-py, cpp-py, py-cpp, nodejs-py, py-nodejs tests added with
py_protocols="binary compact json accel"
py_transports="buffered"
py_sockets="ip",
test.sh refactored so that new protocols, transports and sockets can be easily added.
Patch: Chamila Dilshan Wijayarathna
diff --git a/test/test.sh b/test/test.sh
index f193133..c25a5d6 100755
--- a/test/test.sh
+++ b/test/test.sh
@@ -196,6 +196,10 @@
csharp_transports="buffered framed"
csharp_sockets="ip ip-ssl"
+py_protocols="binary compact json accel"
+py_transports="buffered"
+py_sockets="ip"
+
######### java client - java server #############
for proto in $java_protocols; do
@@ -350,6 +354,120 @@
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 --proto=${proto} --port=9090 --host=localhost --genpydir=py/gen-py ${extraparam}" \
+ "py/TestServer.py --proto=${proto} --port=9090 --genpydir=py/gen-py TSimpleServer ${extraparam}" \
+ "10" "2"
+ done
+ 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 --proto=${proto} --port=9090 --host=localhost --genpydir=py/gen-py ${extraparam}" \
+ "cpp/TestServer --protocol=${proto} --transport=${trans} ${extraparam}" \
+ "10" "2"
+ done
+ 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} ${extraparam}" \
+ "py/TestServer.py --proto=${proto} --port=9090 --genpydir=py/gen-py TSimpleServer ${extraparam}" \
+ "10" "2"
+ done
+ 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 --proto=${proto} --port=9090 --host=localhost --genpydir=py/gen-py ${extraparam}" \
+ "ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=${proto} --transport=${trans} ${extraparam}\" run-testserver" \
+ "15" "2"
+ done
+ 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} ${extraparam}\" run-testclient" \
+ "py/TestServer.py --proto=${proto} --port=9090 --genpydir=py/gen-py TSimpleServer ${extraparam}" \
+ "10" "5"
+ done
+ 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 --proto=${proto} --port=9090 --host=localhost --genpydir=py/gen-py ${extraparam}" \
+ "node ${NODE_TEST_DIR}/server.js -p ${proto} -t ${trans} ${extraparam}" \
+ "15" "2"
+ done
+ 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} ${extraparam}" \
+ "py/TestServer.py --proto=${proto} --port=9090 --genpydir=py/gen-py TSimpleServer ${extraparam}" \
+ "10" "2"
+ done
+ done
+done
+
# delete Unix Domain Socket used by cpp tests
rm -f /tmp/ThriftTest.thrift
@@ -371,42 +489,6 @@
done
-do_test "py-py" "binary" "buffered-ip" \
- "py/TestClient.py --proto=binary --port=9090 --host=localhost --genpydir=py/gen-py" \
- "py/TestServer.py --proto=binary --port=9090 --genpydir=py/gen-py TSimpleServer" \
- "10" "2"
-do_test "py-py" "json" "buffered-ip" \
- "py/TestClient.py --proto=json --port=9090 --host=localhost --genpydir=py/gen-py" \
- "py/TestServer.py --proto=json --port=9090 --genpydir=py/gen-py TSimpleServer" \
- "10" "2"
-do_test "py-cpp" "binary" "buffered-ip" \
- "py/TestClient.py --proto=binary --port=9090 --host=localhost --genpydir=py/gen-py" \
- "cpp/TestServer" \
- "10" "2"
-do_test "py-cpp" "json" "buffered-ip" \
- "py/TestClient.py --proto=json --port=9090 --host=localhost --genpydir=py/gen-py" \
- "cpp/TestServer --protocol=json" \
- "10" "2"
-do_test "cpp-py" "binary" "buffered-ip" \
- "cpp/TestClient --protocol=binary --port=9090" \
- "py/TestServer.py --proto=binary --port=9090 --genpydir=py/gen-py TSimpleServer" \
- "10" "2"
-do_test "cpp-py" "json" "buffered-ip" \
- "cpp/TestClient --protocol=json --port=9090" \
- "py/TestServer.py --proto=json --port=9090 --genpydir=py/gen-py TSimpleServer" \
- "10" "2"
-do_test "py-java" "binary" "buffered-ip" \
- "py/TestClient.py --proto=binary --port=9090 --host=localhost --genpydir=py/gen-py" \
- "ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" run-testserver" \
- "15" "2"
-do_test "py-java" "json" "buffered-ip" \
- "py/TestClient.py --proto=json --port=9090 --host=localhost --genpydir=py/gen-py" \
- "ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" -Dtestargs \"--protocol=json\" run-testserver" \
- "15" "2"
-do_test "java-py" "binary" "buffered-ip" \
- "ant -f ../lib/java/build.xml -Dno-gen-thrift=\"\" run-testclient" \
- "py/TestServer.py --proto=binary --port=9090 --genpydir=py/gen-py TSimpleServer" \
- "10" "5"
do_test "js-java" "json" "http-ip" \
"" \
"ant -f ../lib/js/test/build.xml unittest" \