Add cpp cross tests to the build workflow
- Remove usage of v0.16 thrift files for C++ since UUID support was added
- Need to install the locals for some of the unit tests
- Fix UUID support for THeaderProtocol
- Without this the protocol went into an infinite loop due to virtual function calls that recursed to itself
- Best case was a crash, worst case was process got stuck
- Fix UUID support for TProtocolTap
- Sorted the known failures
- Mark cpp and java ssl tests as known failures
diff --git a/test/cpp/Makefile.am b/test/cpp/Makefile.am
index 595f7a4..11bf873 100644
--- a/test/cpp/Makefile.am
+++ b/test/cpp/Makefile.am
@@ -97,7 +97,7 @@
#
# Common thrift code generation rules
#
-gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/SecondService.cpp gen-cpp/SecondService.h gen-cpp/SecondService.tcc: $(top_srcdir)/test/v0.16/ThriftTest.thrift $(THRIFT)
+gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/SecondService.cpp gen-cpp/SecondService.h gen-cpp/SecondService.tcc: $(top_srcdir)/test/ThriftTest.thrift $(THRIFT)
$(THRIFT) --gen cpp:templates,cob_style -r $<
gen-cpp/Service.cpp: $(top_srcdir)/test/StressTest.thrift $(THRIFT)
diff --git a/test/cpp/src/TestClient.cpp b/test/cpp/src/TestClient.cpp
index 64193c6..41f5007 100644
--- a/test/cpp/src/TestClient.cpp
+++ b/test/cpp/src/TestClient.cpp
@@ -22,6 +22,7 @@
#include <ios>
#include <iostream>
#include <sstream>
+#include <fstream>
#include <thrift/protocol/TBinaryProtocol.h>
#include <thrift/protocol/TCompactProtocol.h>
#include <thrift/protocol/THeaderProtocol.h>
@@ -321,9 +322,15 @@
std::shared_ptr<TProtocol> protocol2; // SecondService for multiplexed
if (ssl) {
- cout << "Client Certificate File: " << certPath << '\n';
- cout << "Client Key File: " << keyPath << '\n';
- cout << "CA File: " << caPath << '\n';
+ auto fileExists = [](const std::string& path) {
+ std::ifstream f(path.c_str());
+ return f.good();
+ };
+
+ cout << "Client Path : " << testDir << '\n';
+ cout << "Client Certificate File: " << certPath << " (" << std::boolalpha << fileExists(certPath) << ")"<< '\n';
+ cout << "Client Key File: " << keyPath << " (" << std::boolalpha << fileExists(keyPath) << ")"<< '\n';
+ cout << "CA File: " << caPath << " (" << std::boolalpha << fileExists(caPath) << ")"<< '\n';
factory = std::shared_ptr<TSSLSocketFactory>(new TSSLSocketFactory());
factory->ciphers("ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");
diff --git a/test/known_failures_Linux.json b/test/known_failures_Linux.json
index f4543e9..3f5e605 100644
--- a/test/known_failures_Linux.json
+++ b/test/known_failures_Linux.json
@@ -1,4 +1,12 @@
[
+ "c_glib-netstd_binary_buffered-ip",
+ "c_glib-netstd_binary_framed-ip",
+ "c_glib-netstd_compact_buffered-ip",
+ "c_glib-netstd_compact_framed-ip",
+ "c_glib-netstd_multi-binary_buffered-ip",
+ "c_glib-netstd_multi-binary_framed-ip",
+ "c_glib-netstd_multic-compact_buffered-ip",
+ "c_glib-netstd_multic-compact_framed-ip",
"cl-c_glib_binary_buffered-ip",
"cl-c_glib_binary_framed-ip",
"cl-c_glib_multi-binary_buffered-ip",
@@ -34,6 +42,9 @@
"cpp-cpp_multi-binary_websocket-domain",
"cpp-cpp_multi-binary_websocket-ip",
"cpp-cpp_multi-binary_websocket-ip-ssl",
+ "cpp-cpp_multi_websocket-domain",
+ "cpp-cpp_multi_websocket-ip",
+ "cpp-cpp_multi_websocket-ip-ssl",
"cpp-cpp_multic-compact_websocket-domain",
"cpp-cpp_multic-compact_websocket-ip",
"cpp-cpp_multic-compact_websocket-ip-ssl",
@@ -52,9 +63,6 @@
"cpp-cpp_multij_websocket-domain",
"cpp-cpp_multij_websocket-ip",
"cpp-cpp_multij_websocket-ip-ssl",
- "cpp-cpp_multi_websocket-domain",
- "cpp-cpp_multi_websocket-ip",
- "cpp-cpp_multi_websocket-ip-ssl",
"cpp-dart_binary_http-ip",
"cpp-dart_compact_http-ip",
"cpp-dart_json_http-ip",
@@ -77,24 +85,60 @@
"cpp-go_multih-header_http-ip-ssl",
"cpp-go_multij-json_http-ip",
"cpp-go_multij-json_http-ip-ssl",
+ "cpp-java_binary_buffered-ip-ssl",
+ "cpp-java_binary_framed-fastframed-ip-ssl",
+ "cpp-java_binary_framed-ip-ssl",
"cpp-java_binary_http-ip",
"cpp-java_binary_http-ip-ssl",
+ "cpp-java_binary_zlib-ip-ssl",
+ "cpp-java_compact_buffered-ip-ssl",
+ "cpp-java_compact_framed-fastframed-ip-ssl",
+ "cpp-java_compact_framed-ip-ssl",
"cpp-java_compact_http-ip",
"cpp-java_compact_http-ip-ssl",
+ "cpp-java_compact_zlib-ip-ssl",
+ "cpp-java_json_buffered-ip-ssl",
+ "cpp-java_json_framed-fastframed-ip-ssl",
+ "cpp-java_json_framed-ip-ssl",
"cpp-java_json_http-ip",
"cpp-java_json_http-ip-ssl",
+ "cpp-java_json_zlib-ip-ssl",
+ "cpp-java_multi-binary_buffered-ip-ssl",
+ "cpp-java_multi-binary_framed-fastframed-ip-ssl",
+ "cpp-java_multi-binary_framed-ip-ssl",
"cpp-java_multi-binary_http-ip",
"cpp-java_multi-binary_http-ip-ssl",
- "cpp-java_multic-compact_http-ip",
- "cpp-java_multic-compact_http-ip-ssl",
- "cpp-java_multic_http-ip",
- "cpp-java_multic_http-ip-ssl",
- "cpp-java_multij-json_http-ip",
- "cpp-java_multij-json_http-ip-ssl",
- "cpp-java_multij_http-ip",
- "cpp-java_multij_http-ip-ssl",
+ "cpp-java_multi-binary_zlib-ip-ssl",
+ "cpp-java_multi_buffered-ip-ssl",
+ "cpp-java_multi_framed-fastframed-ip-ssl",
+ "cpp-java_multi_framed-ip-ssl",
"cpp-java_multi_http-ip",
"cpp-java_multi_http-ip-ssl",
+ "cpp-java_multi_zlib-ip-ssl",
+ "cpp-java_multic-compact_buffered-ip-ssl",
+ "cpp-java_multic-compact_framed-fastframed-ip-ssl",
+ "cpp-java_multic-compact_framed-ip-ssl",
+ "cpp-java_multic-compact_http-ip",
+ "cpp-java_multic-compact_http-ip-ssl",
+ "cpp-java_multic-compact_zlib-ip-ssl",
+ "cpp-java_multic_buffered-ip-ssl",
+ "cpp-java_multic_framed-fastframed-ip-ssl",
+ "cpp-java_multic_framed-ip-ssl",
+ "cpp-java_multic_http-ip",
+ "cpp-java_multic_http-ip-ssl",
+ "cpp-java_multic_zlib-ip-ssl",
+ "cpp-java_multij-json_buffered-ip-ssl",
+ "cpp-java_multij-json_framed-fastframed-ip-ssl",
+ "cpp-java_multij-json_framed-ip-ssl",
+ "cpp-java_multij-json_http-ip",
+ "cpp-java_multij-json_http-ip-ssl",
+ "cpp-java_multij-json_zlib-ip-ssl",
+ "cpp-java_multij_buffered-ip-ssl",
+ "cpp-java_multij_framed-fastframed-ip-ssl",
+ "cpp-java_multij_framed-ip-ssl",
+ "cpp-java_multij_http-ip",
+ "cpp-java_multij_http-ip-ssl",
+ "cpp-java_multij_zlib-ip-ssl",
"cpp-netstd_binary_buffered-ip",
"cpp-netstd_binary_buffered-ip-ssl",
"cpp-netstd_binary_framed-ip",
@@ -190,6 +234,9 @@
"cpp-py3_multi-multia_http-domain",
"cpp-py3_multi-multia_http-ip",
"cpp-py3_multi-multia_http-ip-ssl",
+ "cpp-py3_multi_http-domain",
+ "cpp-py3_multi_http-ip",
+ "cpp-py3_multi_http-ip-ssl",
"cpp-py3_multic-accelc_http-domain",
"cpp-py3_multic-accelc_http-ip",
"cpp-py3_multic-accelc_http-ip-ssl",
@@ -214,9 +261,6 @@
"cpp-py3_multij_http-domain",
"cpp-py3_multij_http-ip",
"cpp-py3_multij_http-ip-ssl",
- "cpp-py3_multi_http-domain",
- "cpp-py3_multi_http-ip",
- "cpp-py3_multi_http-ip-ssl",
"cpp-py_binary-accel_http-domain",
"cpp-py_binary-accel_http-ip",
"cpp-py_binary-accel_http-ip-ssl",
@@ -244,6 +288,9 @@
"cpp-py_multi-multia_http-domain",
"cpp-py_multi-multia_http-ip",
"cpp-py_multi-multia_http-ip-ssl",
+ "cpp-py_multi_http-domain",
+ "cpp-py_multi_http-ip",
+ "cpp-py_multi_http-ip-ssl",
"cpp-py_multic-accelc_http-domain",
"cpp-py_multic-accelc_http-ip",
"cpp-py_multic-accelc_http-ip-ssl",
@@ -268,17 +315,6 @@
"cpp-py_multij_http-domain",
"cpp-py_multij_http-ip",
"cpp-py_multij_http-ip-ssl",
- "cpp-py_multi_http-domain",
- "cpp-py_multi_http-ip",
- "cpp-py_multi_http-ip-ssl",
- "c_glib-netstd_binary_buffered-ip",
- "c_glib-netstd_binary_framed-ip",
- "c_glib-netstd_compact_buffered-ip",
- "c_glib-netstd_compact_framed-ip",
- "c_glib-netstd_multi-binary_buffered-ip",
- "c_glib-netstd_multi-binary_framed-ip",
- "c_glib-netstd_multic-compact_buffered-ip",
- "c_glib-netstd_multic-compact_framed-ip",
"d-cl_binary_buffered-ip",
"d-cl_binary_framed-ip",
"d-cpp_binary_buffered-ip",
@@ -305,12 +341,12 @@
"d-cpp_json_http-ip-ssl",
"d-cpp_json_zlib-ip",
"d-cpp_json_zlib-ip-ssl",
- "d-dart_binary_http-ip",
- "d-dart_compact_http-ip",
- "d-dart_json_http-ip",
"d-d_binary_http-ip",
"d-d_compact_http-ip",
"d-d_json_http-ip",
+ "d-dart_binary_http-ip",
+ "d-dart_compact_http-ip",
+ "d-dart_json_http-ip",
"d-go_binary_http-ip",
"d-go_binary_http-ip-ssl",
"d-go_compact_http-ip",
@@ -468,15 +504,15 @@
"go-cpp_header_http-ip-ssl",
"go-cpp_json_http-ip",
"go-cpp_json_http-ip-ssl",
- "go-dart_binary_http-ip",
- "go-dart_compact_http-ip",
- "go-dart_json_http-ip",
"go-d_binary_http-ip",
"go-d_binary_http-ip-ssl",
"go-d_compact_http-ip",
"go-d_compact_http-ip-ssl",
"go-d_json_http-ip",
"go-d_json_http-ip-ssl",
+ "go-dart_binary_http-ip",
+ "go-dart_compact_http-ip",
+ "go-dart_json_http-ip",
"go-java_binary_http-ip",
"go-java_binary_http-ip-ssl",
"go-java_compact_http-ip",
@@ -509,6 +545,42 @@
"hs-php_binary-accel_framed-ip",
"hs-php_json_buffered-ip",
"hs-php_json_framed-ip",
+ "java-cpp_binary_buffered-ip-ssl",
+ "java-cpp_binary_fastframed-framed-ip-ssl",
+ "java-cpp_binary_framed-ip-ssl",
+ "java-cpp_binary_zlib-ip-ssl",
+ "java-cpp_compact_buffered-ip-ssl",
+ "java-cpp_compact_fastframed-framed-ip-ssl",
+ "java-cpp_compact_framed-ip-ssl",
+ "java-cpp_compact_zlib-ip-ssl",
+ "java-cpp_json_buffered-ip-ssl",
+ "java-cpp_json_fastframed-framed-ip-ssl",
+ "java-cpp_json_framed-ip-ssl",
+ "java-cpp_json_zlib-ip-ssl",
+ "java-cpp_multi-binary_buffered-ip-ssl",
+ "java-cpp_multi-binary_fastframed-framed-ip-ssl",
+ "java-cpp_multi-binary_framed-ip-ssl",
+ "java-cpp_multi-binary_zlib-ip-ssl",
+ "java-cpp_multi_buffered-ip-ssl",
+ "java-cpp_multi_fastframed-framed-ip-ssl",
+ "java-cpp_multi_framed-ip-ssl",
+ "java-cpp_multi_zlib-ip-ssl",
+ "java-cpp_multic-compact_buffered-ip-ssl",
+ "java-cpp_multic-compact_fastframed-framed-ip-ssl",
+ "java-cpp_multic-compact_framed-ip-ssl",
+ "java-cpp_multic-compact_zlib-ip-ssl",
+ "java-cpp_multic_buffered-ip-ssl",
+ "java-cpp_multic_fastframed-framed-ip-ssl",
+ "java-cpp_multic_framed-ip-ssl",
+ "java-cpp_multic_zlib-ip-ssl",
+ "java-cpp_multij-json_buffered-ip-ssl",
+ "java-cpp_multij-json_fastframed-framed-ip-ssl",
+ "java-cpp_multij-json_framed-ip-ssl",
+ "java-cpp_multij-json_zlib-ip-ssl",
+ "java-cpp_multij_buffered-ip-ssl",
+ "java-cpp_multij_fastframed-framed-ip-ssl",
+ "java-cpp_multij_framed-ip-ssl",
+ "java-cpp_multij_zlib-ip-ssl",
"java-erl_binary_buffered-ip-ssl",
"java-erl_binary_fastframed-framed-ip-ssl",
"java-erl_binary_framed-ip-ssl",
@@ -572,6 +644,14 @@
"kotlin-netstd_binary_framed-ip",
"kotlin-netstd_compact_framed-ip",
"kotlin-netstd_json_framed-ip",
+ "netstd-c_glib_binary_buffered-ip",
+ "netstd-c_glib_binary_buffered-ip-ssl",
+ "netstd-c_glib_binary_framed-ip",
+ "netstd-c_glib_binary_framed-ip-ssl",
+ "netstd-c_glib_compact_buffered-ip",
+ "netstd-c_glib_compact_buffered-ip-ssl",
+ "netstd-c_glib_compact_framed-ip",
+ "netstd-c_glib_compact_framed-ip-ssl",
"netstd-cl_binary_buffered-ip",
"netstd-cl_binary_framed-ip",
"netstd-cpp_binary_buffered-ip",
@@ -586,20 +666,6 @@
"netstd-cpp_json_buffered-ip-ssl",
"netstd-cpp_json_framed-ip",
"netstd-cpp_json_framed-ip-ssl",
- "netstd-c_glib_binary_buffered-ip",
- "netstd-c_glib_binary_buffered-ip-ssl",
- "netstd-c_glib_binary_framed-ip",
- "netstd-c_glib_binary_framed-ip-ssl",
- "netstd-c_glib_compact_buffered-ip",
- "netstd-c_glib_compact_buffered-ip-ssl",
- "netstd-c_glib_compact_framed-ip",
- "netstd-c_glib_compact_framed-ip-ssl",
- "netstd-dart_binary_buffered-ip",
- "netstd-dart_binary_framed-ip",
- "netstd-dart_compact_buffered-ip",
- "netstd-dart_compact_framed-ip",
- "netstd-dart_json_buffered-ip",
- "netstd-dart_json_framed-ip",
"netstd-d_binary_buffered-ip",
"netstd-d_binary_buffered-ip-ssl",
"netstd-d_binary_framed-ip",
@@ -612,6 +678,12 @@
"netstd-d_json_buffered-ip-ssl",
"netstd-d_json_framed-ip",
"netstd-d_json_framed-ip-ssl",
+ "netstd-dart_binary_buffered-ip",
+ "netstd-dart_binary_framed-ip",
+ "netstd-dart_compact_buffered-ip",
+ "netstd-dart_compact_framed-ip",
+ "netstd-dart_json_buffered-ip",
+ "netstd-dart_json_framed-ip",
"netstd-erl_binary_buffered-ip",
"netstd-erl_binary_buffered-ip-ssl",
"netstd-erl_binary_framed-ip",
@@ -787,15 +859,15 @@
"nodejs-cpp_json_websocket-domain",
"nodejs-cpp_json_websocket-ip",
"nodejs-cpp_json_websocket-ip-ssl",
- "nodejs-dart_binary_http-ip",
- "nodejs-dart_compact_http-ip",
- "nodejs-dart_json_http-ip",
"nodejs-d_binary_http-ip",
"nodejs-d_binary_http-ip-ssl",
"nodejs-d_compact_http-ip",
"nodejs-d_compact_http-ip-ssl",
"nodejs-d_json_http-ip",
"nodejs-d_json_http-ip-ssl",
+ "nodejs-dart_binary_http-ip",
+ "nodejs-dart_compact_http-ip",
+ "nodejs-dart_json_http-ip",
"nodejs-go_binary_http-ip",
"nodejs-go_binary_http-ip-ssl",
"nodejs-go_compact_http-ip",
@@ -911,6 +983,9 @@
"py-cpp_multi-binary_http-domain",
"py-cpp_multi-binary_http-ip",
"py-cpp_multi-binary_http-ip-ssl",
+ "py-cpp_multi_http-domain",
+ "py-cpp_multi_http-ip",
+ "py-cpp_multi_http-ip-ssl",
"py-cpp_multia-binary_http-domain",
"py-cpp_multia-binary_http-ip",
"py-cpp_multia-binary_http-ip-ssl",
@@ -953,14 +1028,6 @@
"py-cpp_multij_http-domain",
"py-cpp_multij_http-ip",
"py-cpp_multij_http-ip-ssl",
- "py-cpp_multi_http-domain",
- "py-cpp_multi_http-ip",
- "py-cpp_multi_http-ip-ssl",
- "py-dart_accel-binary_http-ip",
- "py-dart_accelc-compact_http-ip",
- "py-dart_binary_http-ip",
- "py-dart_compact_http-ip",
- "py-dart_json_http-ip",
"py-d_accel-binary_http-ip",
"py-d_accel-binary_http-ip-ssl",
"py-d_accelc-compact_http-ip",
@@ -971,6 +1038,11 @@
"py-d_compact_http-ip-ssl",
"py-d_json_http-ip",
"py-d_json_http-ip-ssl",
+ "py-dart_accel-binary_http-ip",
+ "py-dart_accelc-compact_http-ip",
+ "py-dart_binary_http-ip",
+ "py-dart_compact_http-ip",
+ "py-dart_json_http-ip",
"py-hs_accel-binary_http-ip",
"py-hs_accelc-compact_http-ip",
"py-hs_binary_http-ip",
@@ -983,6 +1055,7 @@
"py-java_compact_http-ip-ssl",
"py-java_json_http-ip-ssl",
"py-java_multi-binary_http-ip-ssl",
+ "py-java_multi_http-ip-ssl",
"py-java_multia-binary_http-ip-ssl",
"py-java_multia-multi_http-ip-ssl",
"py-java_multiac-compact_http-ip-ssl",
@@ -991,7 +1064,6 @@
"py-java_multic_http-ip-ssl",
"py-java_multij-json_http-ip-ssl",
"py-java_multij_http-ip-ssl",
- "py-java_multi_http-ip-ssl",
"py-lua_accel-binary_http-ip",
"py-lua_accelc-compact_http-ip",
"py-lua_binary_http-ip",
@@ -1029,14 +1101,14 @@
"py-php_binary-accel_framed-ip",
"py-php_json_buffered-ip",
"py-php_json_framed-ip",
+ "py-rs_multi_buffered-ip",
+ "py-rs_multi_framed-ip",
"py-rs_multia-multi_buffered-ip",
"py-rs_multia-multi_framed-ip",
"py-rs_multiac-multic_buffered-ip",
"py-rs_multiac-multic_framed-ip",
"py-rs_multic_buffered-ip",
"py-rs_multic_framed-ip",
- "py-rs_multi_buffered-ip",
- "py-rs_multi_framed-ip",
"py3-cpp_accel-binary_http-domain",
"py3-cpp_accel-binary_http-ip",
"py3-cpp_accel-binary_http-ip-ssl",
@@ -1064,6 +1136,9 @@
"py3-cpp_multi-binary_http-domain",
"py3-cpp_multi-binary_http-ip",
"py3-cpp_multi-binary_http-ip-ssl",
+ "py3-cpp_multi_http-domain",
+ "py3-cpp_multi_http-ip",
+ "py3-cpp_multi_http-ip-ssl",
"py3-cpp_multia-binary_http-domain",
"py3-cpp_multia-binary_http-ip",
"py3-cpp_multia-binary_http-ip-ssl",
@@ -1106,14 +1181,6 @@
"py3-cpp_multij_http-domain",
"py3-cpp_multij_http-ip",
"py3-cpp_multij_http-ip-ssl",
- "py3-cpp_multi_http-domain",
- "py3-cpp_multi_http-ip",
- "py3-cpp_multi_http-ip-ssl",
- "py3-dart_accel-binary_http-ip",
- "py3-dart_accelc-compact_http-ip",
- "py3-dart_binary_http-ip",
- "py3-dart_compact_http-ip",
- "py3-dart_json_http-ip",
"py3-d_accel-binary_http-ip",
"py3-d_accel-binary_http-ip-ssl",
"py3-d_accelc-compact_http-ip",
@@ -1124,6 +1191,11 @@
"py3-d_compact_http-ip-ssl",
"py3-d_json_http-ip",
"py3-d_json_http-ip-ssl",
+ "py3-dart_accel-binary_http-ip",
+ "py3-dart_accelc-compact_http-ip",
+ "py3-dart_binary_http-ip",
+ "py3-dart_compact_http-ip",
+ "py3-dart_json_http-ip",
"py3-hs_accel-binary_http-ip",
"py3-hs_accelc-compact_http-ip",
"py3-hs_binary_http-ip",
@@ -1136,6 +1208,7 @@
"py3-java_compact_http-ip-ssl",
"py3-java_json_http-ip-ssl",
"py3-java_multi-binary_http-ip-ssl",
+ "py3-java_multi_http-ip-ssl",
"py3-java_multia-binary_http-ip-ssl",
"py3-java_multia-multi_http-ip-ssl",
"py3-java_multiac-compact_http-ip-ssl",
@@ -1144,7 +1217,6 @@
"py3-java_multic_http-ip-ssl",
"py3-java_multij-json_http-ip-ssl",
"py3-java_multij_http-ip-ssl",
- "py3-java_multi_http-ip-ssl",
"py3-lua_accel-binary_http-ip",
"py3-lua_accelc-compact_http-ip",
"py3-lua_binary_http-ip",
@@ -1207,7 +1279,6 @@
"rs-netstd_binary_buffered-ip",
"rs-netstd_binary_framed-ip",
"rs-netstd_compact_buffered-ip",
- "rs-netstd_compact_buffered-ip",
"rs-netstd_compact_framed-ip",
"rs-netstd_multi-binary_buffered-ip",
"rs-netstd_multi-binary_framed-ip",