From c3b7b5c888c8a967c88efdf0e8dc59e2cad405ef Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Thu, 5 Nov 2015 15:20:16 +0000 Subject: [PATCH] Skip INetwork unit tests if FSD test server is not reachable The unit test fails in case the infrastructure is not available and therefore declares the whole CI build as failure. refs #456 --- tests/blackcore/testnetwork.cpp | 27 +++++++++++++++++++++++++-- tests/blackcore/testnetwork.h | 4 ++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/tests/blackcore/testnetwork.cpp b/tests/blackcore/testnetwork.cpp index c3a3d3f43..f726e3b82 100644 --- a/tests/blackcore/testnetwork.cpp +++ b/tests/blackcore/testnetwork.cpp @@ -9,6 +9,7 @@ #include "testnetwork.h" #include "expect.h" +#include "blackmisc/network/networkutils.h" using namespace BlackCore; using namespace BlackMisc; @@ -18,8 +19,18 @@ using namespace BlackMisc::Network; using namespace BlackMisc::Geo; using namespace BlackMisc::PhysicalQuantities; -void BlackCoreTest::CTestNetwork::networkTest(BlackCore::INetwork *net) +namespace BlackCoreTest { + + void CTestNetwork::networkTest(BlackCore::INetwork *net) + { + CServer fsdServer("", "", "vatsim-germany.org", 6809, CUser("1234567", "", "", "123456")); + if (!this->pingServer(fsdServer)) + { + qWarning() << "Skipping unit test because fsd server is not reachable."; + return; + } + QString string = net->connectionStatusToString(INetwork::Connected); QVERIFY(string == "Connected"); @@ -28,7 +39,7 @@ void BlackCoreTest::CTestNetwork::networkTest(BlackCore::INetwork *net) aircraft.setIcaoCodes(CAircraftIcaoCode("C172", "L1P"), CAirlineIcaoCode("YYY")); EXPECT_UNIT(e) - .send(&INetwork::presetServer, CServer("", "", "vatsim-germany.org", 6809, CUser("1234567", "", "", "123456"))) + .send(&INetwork::presetServer, fsdServer) .send(&INetwork::presetCallsign, "SWIFT") .send(&INetwork::presetIcaoCodes, aircraft) .send(&INetwork::initiateConnection) @@ -66,4 +77,16 @@ void BlackCoreTest::CTestNetwork::networkTest(BlackCore::INetwork *net) qDebug() << "DISCONNECTED"; }) .wait(10); + } + + bool CTestNetwork::pingServer(const CServer &server) + { + QString m; + CUrl url(server.getAddress(), server.getPort()); + if (!CNetworkUtils::canConnect(url, m, 2500)) + { + return false; + } + return true; + } } diff --git a/tests/blackcore/testnetwork.h b/tests/blackcore/testnetwork.h index 3dacc53bd..49144e852 100644 --- a/tests/blackcore/testnetwork.h +++ b/tests/blackcore/testnetwork.h @@ -13,6 +13,7 @@ #define BLACKCORETEST_TESTNETWORK_H #include "blackcore/network_vatlib.h" +#include "blackcore/data/globalsetup.h" #include "blackmisc/simulation/ownaircraftproviderdummy.h" #include @@ -40,6 +41,9 @@ namespace BlackCoreTest void networkTest(BlackCore::INetwork *); BlackCore::CNetworkVatlib m_networkVatlib ; //!< vatlib instance + + //! Test if server is available + static bool pingServer(const BlackMisc::Network::CServer &server); }; } //namespace