diff --git a/qgcunittest.pro b/qgcunittest.pro deleted file mode 100644 index f7f3ed26e0ccd462f3f1ed8c00e84588713d14af..0000000000000000000000000000000000000000 --- a/qgcunittest.pro +++ /dev/null @@ -1,35 +0,0 @@ -# ------------------------------------------------- -# QGroundControl - Micro Air Vehicle Groundstation -# Please see our website at -# Maintainer: -# Lorenz Meier -# (c) 2009-2011 QGroundControl Developers -# This file is part of the open groundstation project -# QGroundControl is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# QGroundControl is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with QGroundControl. If not, see . -# ------------------------------------------------- - - -TARGET = qgcunittest -QT += testlib - -QGCS_UNITTEST_OVERRIDE = true -include (qgroundcontrol.pro) - -TESTDIR = $$BASEDIR/src/qgcunittest - -HEADERS += \ - $$TESTDIR/AutoTest.h \ - $$TESTDIR/UASUnitTest.h \ - -SOURCES += \ - $$TESTDIR/testSuite.cc \ - $$TESTDIR/UASUnitTest.cc \ No newline at end of file diff --git a/qgroundcontrol.pri b/qgroundcontrol.pri index 859a4ee777432b931c2c2db8793e58bbb9858d20..bdd264a9b633735f849f82be3a19deae02cae3bd 100644 --- a/qgroundcontrol.pri +++ b/qgroundcontrol.pri @@ -175,7 +175,7 @@ linux-g++|linux-g++-64{ CONFIG -= console DEFINES += __STDC_LIMIT_MACROS - release { + CONFIG(release, debug|release) { DEFINES += QT_NO_DEBUG } @@ -429,11 +429,11 @@ win32-g++ { - debug { + CONFIG(debug, debug|release) { CONFIG += console } - release { + CONFIG(release, debug|release) { CONFIG -= console DEFINES += QT_NO_DEBUG } @@ -445,14 +445,14 @@ win32-g++ { system(cp): { # CP command is available, use it instead of copy / xcopy message("Using cp to copy image and audio files to executable") - debug { + CONFIG(debug, debug|release) { QMAKE_POST_LINK += && cp $$BASEDIR/libs/lib/sdl/win32/SDL.dll $$TARGETDIR/debug/SDL.dll QMAKE_POST_LINK += && cp -r $$BASEDIR/files $$TARGETDIR/debug/files QMAKE_POST_LINK += && cp -r $$BASEDIR/libs/mavlink $$TARGETDIR/debug/mavlink QMAKE_POST_LINK += && cp -r $$BASEDIR/models $$TARGETDIR/debug/models } - release { + CONFIG(release, debug|release) { QMAKE_POST_LINK += && cp $$BASEDIR/libs/lib/sdl/win32/SDL.dll $$TARGETDIR/release/SDL.dll QMAKE_POST_LINK += && cp -r $$BASEDIR/files $$TARGETDIR/release/files QMAKE_POST_LINK += && cp -r $$BASEDIR/libs/mavlink $$TARGETDIR/release/mavlink diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro index e36ae2505392eba9cd75a8f53530670505230a23..6da2b5d78fbbf95c2130c735d0cf11d362909bc0 100644 --- a/qgroundcontrol.pro +++ b/qgroundcontrol.pro @@ -30,7 +30,8 @@ QT += network \ phonon \ webkit \ sql \ - declarative + declarative \ + testlib # Setting this variable allows you to include this .pro file in another such that # you can set your own TARGET and main() function. This is used by the unit test @@ -43,11 +44,11 @@ isEmpty(QGCS_UNITTEST_OVERRIDE) { BASEDIR = $${IN_PWD} linux-g++|linux-g++-64{ - debug { + CONFIG(debug, debug|release) { TARGETDIR = $${OUT_PWD}/debug BUILDDIR = $${OUT_PWD}/build-debug } - release { + CONFIG(release, debug|release) { TARGETDIR = $${OUT_PWD}/release BUILDDIR = $${OUT_PWD}/build-release } @@ -736,6 +737,20 @@ SOURCES += \ src/ui/designer/QGCXYPlot.cc \ src/ui/menuactionhelper.cpp +CONFIG(debug, debug|release) { + # Unit Test sources/headers go here + + INCLUDEPATH += \ + src/qgcunittest + + HEADERS += \ + src/qgcunittest/AutoTest.h \ + src/qgcunittest/UASUnitTest.h + + SOURCES += \ + src/qgcunittest/UASUnitTest.cc +} + # Enable Google Earth only on Mac OS and Windows with Visual Studio compiler macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc diff --git a/src/main.cc b/src/main.cc index b3658b650779bf6ae9c298c74a7e85398efc3299..398ff65aa7758f3619095b1e3a34c78681a4861a 100644 --- a/src/main.cc +++ b/src/main.cc @@ -32,7 +32,7 @@ This file is part of the QGROUNDCONTROL project #include "QGCCore.h" #include "MainWindow.h" #include "configuration.h" - +#include "AutoTest.h" /* SDL does ugly things to main() */ #ifdef main @@ -68,6 +68,28 @@ int main(int argc, char *argv[]) #ifdef Q_OS_WIN qInstallMsgHandler( msgHandler ); #endif + +#ifdef QT_DEBUG + if (argc > 1 && QString(argv[1]).compare("--unittest", Qt::CaseInsensitive) == 0) { + // Strip off extra command line args so QTest doesn't complain + for (int i=1; igetLongitude(), 0.0); } -void UASUnitTest::getAltitude_test() +void UASUnitTest::getAltitudeAMSL_test() { - QCOMPARE(uas->getAltitude(), 0.0); + QCOMPARE(uas->getAltitudeAMSL(), 0.0); +} +void UASUnitTest::getAltitudeRelative_test() +{ + QCOMPARE(uas->getAltitudeRelative(), 0.0); } void UASUnitTest::getRoll_test() { @@ -316,7 +320,6 @@ void UASUnitTest::signalUASLink_test() { qDebug()<< link->getName(); qDebug()<< QString::number(link->getId()); - qDebug()<< QString::number(link->getNominalDataRate()); QVERIFY(link != NULL); uas->addLink(link); } diff --git a/src/qgcunittest/UASUnitTest.h b/src/qgcunittest/UASUnitTest.h index 192257e5ae223f3f08c3c3e7a0e67af2ed2cebcd..45b1828bd935d3279f5d8715ec2b63bfd1c864c4 100644 --- a/src/qgcunittest/UASUnitTest.h +++ b/src/qgcunittest/UASUnitTest.h @@ -42,7 +42,8 @@ private slots: void getLocalZ_test(); void getLatitude_test(); void getLongitude_test(); - void getAltitude_test(); + void getAltitudeAMSL_test(); + void getAltitudeRelative_test(); void getRoll_test(); void getPitch_test(); void getYaw_test(); diff --git a/src/qgcunittest/testSuite.cc b/src/qgcunittest/testSuite.cc deleted file mode 100755 index 0489b2298661812b2fffb0e15dcaffd5b57d1173..0000000000000000000000000000000000000000 --- a/src/qgcunittest/testSuite.cc +++ /dev/null @@ -1,28 +0,0 @@ -/** -* @author Rob Caldecott -* @note This was obtained from http://qtcreator.blogspot.com/2010/04/sample-multiple-unit-test-project.html -* -*/ - -#include "AutoTest.h" -#include - -#if 1 -// This is all you need to run all the tests -TEST_MAIN -#else -// Or supply your own main function -int main(int argc, char *argv[]) -{ - int failures = AutoTest::run(argc, argv); - if (failures == 0) - { - qDebug() << "ALL TESTS PASSED"; - } - else - { - qDebug() << failures << " TESTS FAILED!"; - } - return failures; -} -#endif