From fe3961c041d48e5ecd58c316fe4f9263d0e413e3 Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Thu, 25 Feb 2010 12:20:44 +0000 Subject: [PATCH] Use QTestLib to harness the tests. --- tests/CMakeLists.txt | 25 ++++++++++++----- tests/{checksize.cpp => testvolume.cpp} | 37 +++++++++---------------- tests/testvolume.h | 32 +++++++++++++++++++++ 3 files changed, 63 insertions(+), 31 deletions(-) rename tests/{checksize.cpp => testvolume.cpp} (69%) create mode 100644 tests/testvolume.h diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a1c960e3..705ad8dc 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,11 +1,22 @@ -SET (CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE) +FIND_PACKAGE(Qt4) +SET(QT_USE_QTTEST TRUE) +SET(QT_DONT_USE_QTGUI TRUE) +INCLUDE(${QT_USE_FILE}) -#FIND_PACKAGE(Qt4) -#SET(QT_USE_QTTEST TRUE) +INCLUDE_DIRECTORIES(${PolyVox_SOURCE_DIR}/PolyVoxCore/include ${CMAKE_CURRENT_BINARY_DIR}) -INCLUDE_DIRECTORIES("../library/PolyVoxCore/include") +# Volume test executable -ADD_EXECUTABLE(checksize checksize.cpp) -TARGET_LINK_LIBRARIES(checksize PolyVoxCore) +SET(volume_SRCS testvolume.cpp) +SET(volume_HDRS testvolume.h) +QT4_WRAP_CPP(volume_moc_SRCS ${volume_HDRS}) +ADD_EXECUTABLE(testvolume ${volume_SRCS} ${volume_moc_SRCS}) +TARGET_LINK_LIBRARIES(testvolume PolyVoxCore ${QT_LIBRARIES}) -ADD_TEST(VolumeSizeTest ${EXECUTABLE_OUTPUT_PATH}/checksize) +# Set up volume tests + +ADD_TEST(VolumeSizeTest ${EXECUTABLE_OUTPUT_PATH}/testvolume testSize) + + + +SET(CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE) diff --git a/tests/checksize.cpp b/tests/testvolume.cpp similarity index 69% rename from tests/checksize.cpp rename to tests/testvolume.cpp index 3a3f543b..3b79f082 100644 --- a/tests/checksize.cpp +++ b/tests/testvolume.cpp @@ -1,5 +1,4 @@ /******************************************************************************* -Copyright (c) 2005-2009 David Williams Copyright (c) 2010 Matt Williams This software is provided 'as-is', without any express or implied @@ -19,36 +18,26 @@ freely, subject to the following restrictions: misrepresented as being the original software. 3. This notice may not be removed or altered from any source - distribution. + distribution. *******************************************************************************/ +#include "testvector.h" + +#include #include "Volume.h" -#ifdef WIN32 -#include // Standard Header For Most Programs -#endif - -//Some namespaces we need -using namespace std; using namespace PolyVox; -int main(int argc, char *argv[]) +void TestVolume::testSize() { const PolyVox::uint16_t g_uVolumeSideLength = 128; Volume volData(g_uVolumeSideLength, g_uVolumeSideLength, g_uVolumeSideLength); - - cout << "Tidying memory..."; - volData.tidyUpMemory(0); - cout << "done." << endl; - if(volData.getWidth() == g_uVolumeSideLength && volData.getHeight() == g_uVolumeSideLength && volData.getDepth() == g_uVolumeSideLength) - { - cout << "Success" << endl; - return EXIT_SUCCESS; - } - else - { - cout << "Failure" << endl; - return EXIT_FAILURE; - } -} + volData.tidyUpMemory(0); + + QCOMPARE(volData.getWidth(), g_uVolumeSideLength); + QCOMPARE(volData.getHeight(), g_uVolumeSideLength); + QCOMPARE(volData.getDepth(), g_uVolumeSideLength); +} + +QTEST_MAIN(TestVolume) diff --git a/tests/testvolume.h b/tests/testvolume.h new file mode 100644 index 00000000..97767817 --- /dev/null +++ b/tests/testvolume.h @@ -0,0 +1,32 @@ +/******************************************************************************* +Copyright (c) 2010 Matt Williams + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +*******************************************************************************/ + +#include + +class TestVolume: public QObject +{ + Q_OBJECT + + private slots: + void testSize(); +};