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
This commit is contained in:
Mathew Sutcliffe
2015-11-05 15:20:16 +00:00
parent a32c32f7f4
commit c3b7b5c888
2 changed files with 29 additions and 2 deletions

View File

@@ -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;
}
}