Ref T275, unit tests for FSX/P3D

In that very case testing the offsets for request ids
This commit is contained in:
Klaus Basan
2018-06-25 01:51:42 +02:00
parent 7a745d2ce6
commit 350d7257c2
8 changed files with 273 additions and 1 deletions

View File

@@ -0,0 +1,26 @@
/* Copyright (C) 2018
* swift project community / contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
#ifndef BLACKSIMPLUGINFSXP3DTEST_H
#define BLACKSIMPLUGINFSXP3DTEST_H
//! \cond PRIVATE_TESTS
/*!
* \namespace Plugins
* \defgroup testpluginsfsxp3d BlackSimPluginFsxP3D Unit Tests
* \ingroup tests
* Unit tests for BlackSimPluginFsxP3D. Unit tests do have their own namespace, so
* the regular namespace BlackSimPlugin is completely free of unit tests.
* Add any new tests to TestMain::unitMain as shown there.
*/
//! \endcond
#endif // guard

View File

@@ -0,0 +1,37 @@
/* Copyright (C) 2018
* swift Project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
//! \cond PRIVATE_TESTS
//! \file
//! \ingroup testpluginfsxp3d
#include "testblacksimpluginfsxp3dmain.h"
#include "blackmisc/registermetadata.h"
#include <QCoreApplication>
#include <QtGlobal>
using namespace BlackSimPluginFsxP3D;
/*!
* Starter for test cases
* \brief main
* \param argc
* \param argv
* \return
*/
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Q_UNUSED(a);
BlackMisc::registerMetadata();
return CBlackSimPluginFsxP3DTest::unitMain(argc, argv);;
}
//! \endcond

View File

@@ -0,0 +1,33 @@
load(common_pre)
QT += core testlib dbus network gui widgets
TARGET = testsimpluginfsxp3d
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG += blackmisc blackcore blackconfig blackgui
CONFIG += testcase
CONFIG += no_testcase_installs
DEPENDPATH += . $$SourceRoot/src
INCLUDEPATH += . $$SourceRoot/src
HEADERS += *.h
SOURCES += *.cpp
DESTDIR = $$DestRoot/bin
LIBS *= -lsimulatorfsxcommon -lsimulatorfscommon -lfsuipc -lsimulatorplugincommon
# include(../../src/plugins/simulator/fsxp3d.pri)
include(../../src/plugins/simulator/fsxp3d_include.pri)
addStaticLibraryDependency(simulatorfscommon)
addStaticLibraryDependency(simulatorfsxcommon)
addStaticLibraryDependency(fsuipc)
addStaticLibraryDependency(simulatorplugincommon)
# Ignore linker warning about missing pdb files from Simconnect
msvc: QMAKE_LFLAGS *= /ignore:4099
load(common_post)

View File

@@ -0,0 +1,35 @@
/* Copyright (C) 2018
* swift Project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
//! \cond PRIVATE_TESTS
//! \file
//! \ingroup testplugins
#include "testblacksimpluginfsxp3dmain.h"
#include "testfsxp3dcommon.h"
#include "blackmisc/test/test.h"
#include <QStringList>
#include <QTest>
namespace BlackSimPluginFsxP3D
{
int CBlackSimPluginFsxP3DTest::unitMain(int argc, char *argv[])
{
BlackMisc::Test::CTest test(argc, argv);
int status = 0;
{
CTestFsxP3DCommon commonTest;
status |= test.exec(&commonTest, "blacksimpluginfsxp3d_fsxp3dcommon");
}
return status;
}
} // namespace
//! \endcond

View File

@@ -0,0 +1,34 @@
/* Copyright (C) 2018
* swift project community / contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
#ifndef BLACKSIMPLUGINFSXP3D_TESTMAIN_H
#define BLACKSIMPLUGINFSXP3D_TESTMAIN_H
//! \cond PRIVATE_TESTS
//! \file
//! \ingroup testplugins
namespace BlackSimPluginFsxP3D
{
/*!
* Class firing all unit tests in this namespace.
* Avoids clashes with other main(..) functions and allows to fire the test cases
* simply from any other main.
*/
class CBlackSimPluginFsxP3DTest
{
public:
//! Starting all
static int unitMain(int argc, char *argv[]);
};
} // ns
//! \endcond
#endif // guard

View File

@@ -0,0 +1,64 @@
/* Copyright (C) 2018
* swift Project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
//! \cond PRIVATE_TESTS
/*!
* \file
* \ingroup testblacksimplugin
*/
#include "testfsxp3dcommon.h"
#include "plugins/simulator/fsxcommon/simconnectdatadefinition.h"
#include "plugins/simulator/fsxcommon/simulatorfsxcommon.h"
#include <QTest>
using namespace BlackSimPlugin::FsxCommon;
namespace BlackSimPluginFsxP3D
{
void CTestFsxP3DCommon::requestIds()
{
DWORD objectId = 666;
DWORD requestId = CSimulatorFsxCommon::unitTestRequestId(CSimConnectObject::Aircraft);
CSimConnectObject simObject(CSimConnectObject::Aircraft);
simObject.setRequestId(requestId);
simObject.setObjectId(objectId);
QVERIFY(CSimulatorFsxCommon::isRequestForSimObjAircraft(requestId));
QVERIFY(!CSimulatorFsxCommon::isRequestForSimObjTerrainProbe(requestId));
CSimConnectDefinitions::SimObjectRequest sor = CSimulatorFsxCommon::requestToSimObjectRequest(requestId);
QVERIFY(sor == CSimConnectDefinitions::SimObjectBaseId);
requestId = simObject.getRequestId(CSimConnectDefinitions::SimObjectAdd);
sor = CSimulatorFsxCommon::requestToSimObjectRequest(requestId);
QVERIFY(sor == CSimConnectDefinitions::SimObjectAdd);
requestId = simObject.getRequestId(CSimConnectDefinitions::SimObjectLights);
sor = CSimulatorFsxCommon::requestToSimObjectRequest(requestId);
QVERIFY(sor == CSimConnectDefinitions::SimObjectLights);
requestId = simObject.getRequestId(CSimConnectDefinitions::SimObjectRemove);
sor = CSimulatorFsxCommon::requestToSimObjectRequest(requestId);
QVERIFY(sor == CSimConnectDefinitions::SimObjectRemove);
requestId = CSimulatorFsxCommon::unitTestRequestId(CSimConnectObject::TerrainProbe);
simObject.setRequestId(requestId);
requestId = simObject.getRequestId(CSimConnectDefinitions::SimObjectPositionData);
sor = CSimulatorFsxCommon::requestToSimObjectRequest(requestId);
QVERIFY(sor == CSimConnectDefinitions::SimObjectPositionData);
requestId = simObject.getRequestId(CSimConnectDefinitions::SimObjectMisc);
sor = CSimulatorFsxCommon::requestToSimObjectRequest(requestId);
QVERIFY(sor == CSimConnectDefinitions::SimObjectMisc);
}
} // ns
//! \endcond

View File

@@ -0,0 +1,38 @@
/* Copyright (C) 2018
* swift project community / contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
#ifndef BLACKSIMPLUGINFSXP3D_TESTFSXP3DCOMMON_H
#define BLACKSIMPLUGINFSXP3D_TESTFSXP3DCOMMON_H
//! \cond PRIVATE_TESTS
//! \file
//! \ingroup testblacksimplugin
#include <QObject>
namespace BlackSimPluginFsxP3D
{
//! FSX/P3D common tests
class CTestFsxP3DCommon : public QObject
{
Q_OBJECT
public:
//! Standard test case constructor
explicit CTestFsxP3DCommon(QObject *parent = nullptr) : QObject(parent) {}
private slots:
//! Request IDs
void requestIds();
};
} // namespace
//! \endcond
#endif // guard

View File

@@ -11,4 +11,9 @@ testblackmisc.file = blackmisc/testblackmisc.pro
testblackcore.file = blackcore/testblackcore.pro
testblackgui.file = blackgui/testblackgui.pro
contains(BLACK_CONFIG,FSX|P3D) {
SUBDIRS += testsimpluginfsxp3d
testsimpluginfsxp3d.file = blacksimpluginfsxp3d/testblacksimpluginfsxp3d.pro
}
load(common_post)