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/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");