Use QTestLib to harness the tests.

This commit is contained in:
Matt Williams 2010-02-25 12:20:44 +00:00
parent 44ee0d5309
commit fe3961c041
3 changed files with 63 additions and 31 deletions

View File

@ -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)

View File

@ -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 <QtTest>
#include "Volume.h"
#ifdef WIN32
#include <windows.h> // 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<PolyVox::uint8_t> 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)

32
tests/testvolume.h Normal file
View File

@ -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 <QObject>
class TestVolume: public QObject
{
Q_OBJECT
private slots:
void testSize();
};