mirror of
https://github.com/glest/glest-source.git
synced 2025-09-02 20:42:34 +02:00
- added cppunit into build system and started writing some unit tests (requires new dependency cppunit)
This commit is contained in:
162
source/tests/CMakeLists.txt
Normal file
162
source/tests/CMakeLists.txt
Normal file
@@ -0,0 +1,162 @@
|
||||
#########################################################################################
|
||||
# megaglest_tests
|
||||
|
||||
SET(EXTERNAL_LIBS "")
|
||||
SET(TARGET_NAME "megaglest_tests")
|
||||
|
||||
IF(BUILD_MEGAGLEST_TESTS)
|
||||
MESSAGE(STATUS "Will try to build MegaGlest unit tests")
|
||||
|
||||
INCLUDE (CheckIncludeFiles)
|
||||
|
||||
FIND_PACKAGE(CppUnit REQUIRED)
|
||||
INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIR})
|
||||
IF(UNIX)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CPPUNIT_LIBRARY})
|
||||
ENDIF()
|
||||
|
||||
FIND_PACKAGE(SDL REQUIRED)
|
||||
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
|
||||
IF(UNIX)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${SDL_LIBRARY})
|
||||
ENDIF()
|
||||
|
||||
#########################################################################################
|
||||
# megaglest test code
|
||||
|
||||
SET(DIRS_WITH_SRC
|
||||
./
|
||||
shared_lib/xml)
|
||||
|
||||
SET(MG_INCLUDES_ROOT "./")
|
||||
SET(MG_SOURCES_ROOT "./")
|
||||
SET(MG_INCLUDE_FILES "")
|
||||
SET(MG_SOURCE_FILES "")
|
||||
|
||||
SET(GLEST_LIB_INCLUDE_ROOT "../shared_lib/include/")
|
||||
SET(GLEST_LIB_INCLUDE_DIRS
|
||||
${GLEST_LIB_INCLUDE_ROOT}platform/common
|
||||
${GLEST_LIB_INCLUDE_ROOT}platform/posix
|
||||
${GLEST_LIB_INCLUDE_ROOT}util
|
||||
${GLEST_LIB_INCLUDE_ROOT}graphics
|
||||
${GLEST_LIB_INCLUDE_ROOT}graphics/gl
|
||||
${GLEST_LIB_INCLUDE_ROOT}graphics/iqm
|
||||
${GLEST_LIB_INCLUDE_ROOT}sound
|
||||
${GLEST_LIB_INCLUDE_ROOT}sound/openal
|
||||
${GLEST_LIB_INCLUDE_ROOT}xml
|
||||
${GLEST_LIB_INCLUDE_ROOT}xml/rapidxml
|
||||
${GLEST_LIB_INCLUDE_ROOT}glew
|
||||
${GLEST_LIB_INCLUDE_ROOT}lua
|
||||
${GLEST_LIB_INCLUDE_ROOT}map)
|
||||
|
||||
IF(WANT_STREFLOP)
|
||||
SET(GLEST_LIB_INCLUDE_DIRS
|
||||
${GLEST_LIB_INCLUDE_DIRS}
|
||||
${GLEST_LIB_INCLUDE_ROOT}streflop
|
||||
${GLEST_LIB_INCLUDE_ROOT}streflop/libm_flt32_source)
|
||||
ENDIF()
|
||||
|
||||
INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} )
|
||||
|
||||
IF(WIN32)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/posix)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/sound/ds8)
|
||||
INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl )
|
||||
ELSE()
|
||||
INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/sdl )
|
||||
SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/sdl)
|
||||
SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}platform/unix)
|
||||
ENDIF()
|
||||
|
||||
FOREACH(DIR IN LISTS DIRS_WITH_SRC)
|
||||
set(INCLUDE_DIR_TO_GLOB ${MG_INCLUDES_ROOT}${DIR})
|
||||
INCLUDE_DIRECTORIES( ${INCLUDE_DIR_TO_GLOB} )
|
||||
IF(APPLE)
|
||||
#MESSAGE(STATUS "INCLUDE_DIR_TO_GLOB: ${INCLUDE_DIR_TO_GLOB}")
|
||||
FILE(GLOB INC_FILES_FROM_THIS_DIR ${INCLUDE_DIR_TO_GLOB}/*.h)
|
||||
#MESSAGE(STATUS "INCLUDE FILES GLOBBED: ${INC_FILES_FROM_THIS_DIR}")
|
||||
SET(MG_INCLUDE_FILES ${MG_INCLUDE_FILES} ${INC_FILES_FROM_THIS_DIR})
|
||||
ENDIF(APPLE)
|
||||
|
||||
set(SRC_DIR_TO_GLOB ${MG_SOURCES_ROOT}${DIR})
|
||||
#MESSAGE(STATUS "SRC_DIR_TO_GLOB: ${SRC_DIR_TO_GLOB}")
|
||||
FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.cpp)
|
||||
#MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}")
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR})
|
||||
|
||||
set(SRC_DIR_TO_GLOB ${MG_SOURCES_ROOT}${DIR})
|
||||
#MESSAGE(STATUS "SRC_DIR_TO_GLOB: ${SRC_DIR_TO_GLOB}")
|
||||
FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.c)
|
||||
#MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}")
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR})
|
||||
|
||||
IF(APPLE)
|
||||
FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.mm)
|
||||
#MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}")
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR})
|
||||
FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.m)
|
||||
#MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}")
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR})
|
||||
ENDIF(APPLE)
|
||||
ENDFOREACH(DIR)
|
||||
|
||||
#MESSAGE(STATUS "Source files: ${MG_INCLUDE_FILES}")
|
||||
#MESSAGE(STATUS "Source files: ${MG_SOURCE_FILES}")
|
||||
#MESSAGE(STATUS "Include dirs: ${INCLUDE_DIRECTORIES}")
|
||||
|
||||
IF(APPLE)
|
||||
SET(PLATFORM_SPECIFIC_DEFINES "-DHAVE_SYS_IOCTL_H")
|
||||
ELSEIF(WIN32)
|
||||
SET(PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE")
|
||||
ELSE()
|
||||
SET(PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE -DHAVE_SYS_IOCTL_H")
|
||||
ENDIF()
|
||||
|
||||
SET_SOURCE_FILES_PROPERTIES(${MG_SOURCE_FILES} PROPERTIES COMPILE_FLAGS
|
||||
"${PLATFORM_SPECIFIC_DEFINES} ${STREFLOP_PROPERTIES} ${CXXFLAGS}")
|
||||
|
||||
SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1)
|
||||
|
||||
OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF)
|
||||
IF(WANT_DEV_OUTPATH)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux)
|
||||
ELSE()
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]")
|
||||
|
||||
MESSAGE(STATUS "***Note: The final output path for Megaglest Game will be [${EXECUTABLE_OUTPUT_PATH}]")
|
||||
|
||||
SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1)
|
||||
|
||||
ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
|
||||
IF(NOT WIN32)
|
||||
IF(WANT_STREFLOP)
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP})
|
||||
ENDIF()
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest)
|
||||
ENDIF()
|
||||
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})
|
||||
|
||||
# Run the unit tests after build
|
||||
IF(EXISTS ${XVFB_EXEC})
|
||||
MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} will run tests with it.")
|
||||
|
||||
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
|
||||
COMMAND ${XVFB_EXEC} --auto-servernum --server-num=770 ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}
|
||||
COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests via xvfb...")
|
||||
|
||||
ELSE()
|
||||
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
|
||||
COMMAND ${EXECUTABLE_OUTPUT_PATH}/${TARGET_NAME}
|
||||
COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests...")
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
264
source/tests/shared_lib/xml/xml_parser_test.cpp
Normal file
264
source/tests/shared_lib/xml/xml_parser_test.cpp
Normal file
@@ -0,0 +1,264 @@
|
||||
// ==============================================================
|
||||
// This file is part of MegaGlest Unit Tests (www.megaglest.org)
|
||||
//
|
||||
// Copyright (C) 2013 Mark Vejvoda
|
||||
//
|
||||
// You can redistribute this code and/or modify it under
|
||||
// the terms of the GNU General Public License as published
|
||||
// by the Free Software Foundation; either version 2 of the
|
||||
// License, or (at your option) any later version
|
||||
// ==============================================================
|
||||
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
#include <memory>
|
||||
#include <fstream>
|
||||
#include "xml_parser.h"
|
||||
#include "platform_util.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#include <io.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
using namespace Shared::Xml;
|
||||
using namespace Shared::Platform;
|
||||
|
||||
bool removeTestFile(string file) {
|
||||
#ifdef WIN32
|
||||
int result = _unlink(file.c_str());
|
||||
#else
|
||||
int result = unlink(file.c_str());
|
||||
#endif
|
||||
|
||||
return (result == 0);
|
||||
}
|
||||
|
||||
void createValidXMLTestFile(const string& test_filename) {
|
||||
std::ofstream xmlFile(test_filename.c_str());
|
||||
xmlFile << "<?xml version=\"1.0\"?>" << std::endl
|
||||
<< "<menu>" << std::endl
|
||||
<< "<menu-background-model value=\"data/core/menu/main_model/menu_main1.g3d\"/>" << std::endl
|
||||
<< "</menu>" << std::endl;
|
||||
xmlFile.close();
|
||||
}
|
||||
|
||||
void createMalformedXMLTestFile(const string& test_filename) {
|
||||
std::ofstream xmlFile(test_filename.c_str());
|
||||
xmlFile << "<?xml version=\"1.0\"?> #@$ !#@$@#$" << std::endl
|
||||
<< "<menu>" << std::endl
|
||||
<< "<menu-background-model value=\"data/core/menu/main_model/menu_main1.g3d\"/>"
|
||||
<< std::endl;
|
||||
xmlFile.close();
|
||||
}
|
||||
|
||||
class SafeRemoveTestFile {
|
||||
private:
|
||||
string filename;
|
||||
public:
|
||||
SafeRemoveTestFile(const string &filename) {
|
||||
this->filename = filename;
|
||||
}
|
||||
~SafeRemoveTestFile() {
|
||||
removeTestFile(this->filename);
|
||||
}
|
||||
};
|
||||
|
||||
class XmlIoTest : public CppUnit::TestFixture {
|
||||
// Register the suite of tests for this fixture
|
||||
CPPUNIT_TEST_SUITE( XmlIoTest );
|
||||
|
||||
CPPUNIT_TEST( test_getInstance );
|
||||
CPPUNIT_TEST( test_cleanup );
|
||||
CPPUNIT_TEST_EXCEPTION( test_load_file_missing, megaglest_runtime_error );
|
||||
CPPUNIT_TEST( test_load_file_valid );
|
||||
CPPUNIT_TEST_EXCEPTION( test_load_file_malformed_content, megaglest_runtime_error );
|
||||
CPPUNIT_TEST_EXCEPTION( test_save_file_null_node, megaglest_runtime_error );
|
||||
CPPUNIT_TEST(test_save_file_valid_node );
|
||||
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
// End of Fixture registration
|
||||
|
||||
public:
|
||||
|
||||
void test_getInstance() {
|
||||
XmlIo &newInstance = XmlIo::getInstance();
|
||||
CPPUNIT_ASSERT( newInstance.isInitialized() == true );
|
||||
}
|
||||
void test_cleanup() {
|
||||
XmlIo &newInstance = XmlIo::getInstance();
|
||||
CPPUNIT_ASSERT( newInstance.isInitialized() == true );
|
||||
|
||||
newInstance.cleanup();
|
||||
CPPUNIT_ASSERT( newInstance.isInitialized() == false );
|
||||
}
|
||||
void test_load_file_missing() {
|
||||
XmlNode *rootNode = XmlIo::getInstance().load("/some/path/that/does/not exist", std::map<string,string>());
|
||||
}
|
||||
void test_load_file_valid() {
|
||||
const string test_filename = "xml_test_valid.xml";
|
||||
createValidXMLTestFile(test_filename);
|
||||
SafeRemoveTestFile deleteFile(test_filename);
|
||||
|
||||
XmlNode *rootNode = XmlIo::getInstance().load(test_filename, std::map<string,string>());
|
||||
|
||||
CPPUNIT_ASSERT( rootNode != NULL );
|
||||
CPPUNIT_ASSERT( rootNode->getName() == "menu" );
|
||||
}
|
||||
void test_load_file_malformed_content() {
|
||||
const string test_filename = "xml_test_malformed.xml";
|
||||
createMalformedXMLTestFile(test_filename);
|
||||
SafeRemoveTestFile deleteFile(test_filename);
|
||||
|
||||
XmlNode *rootNode = XmlIo::getInstance().load(test_filename, std::map<string,string>());
|
||||
}
|
||||
|
||||
void test_save_file_null_node() {
|
||||
XmlNode *rootNode = NULL;
|
||||
XmlIo::getInstance().save("",rootNode);
|
||||
}
|
||||
|
||||
void test_save_file_valid_node() {
|
||||
const string test_filename_load = "xml_test_save_load_valid.xml";
|
||||
const string test_filename_save = "xml_test_save_valid.xml";
|
||||
createValidXMLTestFile(test_filename_load);
|
||||
SafeRemoveTestFile deleteFile(test_filename_load);
|
||||
|
||||
XmlNode *rootNode = XmlIo::getInstance().load(test_filename_load, std::map<string,string>());
|
||||
|
||||
XmlIo::getInstance().save(test_filename_save,rootNode);
|
||||
SafeRemoveTestFile deleteFile2(test_filename_save);
|
||||
}
|
||||
};
|
||||
|
||||
class XmlIoRapidTest : public CppUnit::TestFixture {
|
||||
// Register the suite of tests for this fixture
|
||||
CPPUNIT_TEST_SUITE( XmlIoRapidTest );
|
||||
|
||||
CPPUNIT_TEST( test_getInstance );
|
||||
CPPUNIT_TEST( test_cleanup );
|
||||
CPPUNIT_TEST_EXCEPTION( test_load_file_missing, megaglest_runtime_error );
|
||||
CPPUNIT_TEST( test_load_file_valid );
|
||||
CPPUNIT_TEST_EXCEPTION( test_load_file_malformed_content, megaglest_runtime_error );
|
||||
CPPUNIT_TEST_EXCEPTION( test_save_file_null_node, megaglest_runtime_error );
|
||||
CPPUNIT_TEST(test_save_file_valid_node );
|
||||
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
// End of Fixture registration
|
||||
|
||||
public:
|
||||
|
||||
void test_getInstance() {
|
||||
XmlIoRapid &newInstance = XmlIoRapid::getInstance();
|
||||
CPPUNIT_ASSERT( newInstance.isInitialized() == true );
|
||||
}
|
||||
void test_cleanup() {
|
||||
XmlIoRapid &newInstance = XmlIoRapid::getInstance();
|
||||
CPPUNIT_ASSERT( newInstance.isInitialized() == true );
|
||||
|
||||
newInstance.cleanup();
|
||||
CPPUNIT_ASSERT( newInstance.isInitialized() == false );
|
||||
}
|
||||
void test_load_file_missing() {
|
||||
XmlNode *rootNode = XmlIoRapid::getInstance().load("/some/path/that/does/not exist", std::map<string,string>());
|
||||
}
|
||||
void test_load_file_valid() {
|
||||
const string test_filename = "xml_test_valid.xml";
|
||||
createValidXMLTestFile(test_filename);
|
||||
SafeRemoveTestFile deleteFile(test_filename);
|
||||
|
||||
XmlNode *rootNode = XmlIoRapid::getInstance().load(test_filename, std::map<string,string>());
|
||||
|
||||
CPPUNIT_ASSERT( rootNode != NULL );
|
||||
CPPUNIT_ASSERT( rootNode->getName() == "menu" );
|
||||
}
|
||||
void test_load_file_malformed_content() {
|
||||
const string test_filename = "xml_test_malformed.xml";
|
||||
createMalformedXMLTestFile(test_filename);
|
||||
SafeRemoveTestFile deleteFile(test_filename);
|
||||
XmlNode *rootNode = XmlIoRapid::getInstance().load(test_filename, std::map<string,string>());
|
||||
}
|
||||
|
||||
void test_save_file_null_node() {
|
||||
XmlNode *rootNode = NULL;
|
||||
XmlIoRapid::getInstance().save("",rootNode);
|
||||
}
|
||||
|
||||
void test_save_file_valid_node() {
|
||||
const string test_filename_load = "xml_test_save_load_valid.xml";
|
||||
const string test_filename_save = "xml_test_save_valid.xml";
|
||||
createValidXMLTestFile(test_filename_load);
|
||||
SafeRemoveTestFile deleteFile(test_filename_load);
|
||||
|
||||
XmlNode *rootNode = XmlIoRapid::getInstance().load(test_filename_load, std::map<string,string>());
|
||||
|
||||
XmlIoRapid::getInstance().save(test_filename_save,rootNode);
|
||||
SafeRemoveTestFile deleteFile2(test_filename_save);
|
||||
}
|
||||
};
|
||||
|
||||
class XmlTreeTest : public CppUnit::TestFixture {
|
||||
// Register the suite of tests for this fixture
|
||||
CPPUNIT_TEST_SUITE( XmlTreeTest );
|
||||
|
||||
CPPUNIT_TEST_EXCEPTION( test_invalid_xml_engine_lowerbound, megaglest_runtime_error );
|
||||
CPPUNIT_TEST_EXCEPTION( test_invalid_xml_engine_upperbound, megaglest_runtime_error );
|
||||
CPPUNIT_TEST( test_valid_xml_engine );
|
||||
CPPUNIT_TEST( test_init );
|
||||
CPPUNIT_TEST_EXCEPTION( test_load_simultaneously_same_file, megaglest_runtime_error );
|
||||
CPPUNIT_TEST( test_load_simultaneously_different_file );
|
||||
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
// End of Fixture registration
|
||||
|
||||
public:
|
||||
|
||||
void test_invalid_xml_engine_lowerbound() {
|
||||
XmlTree xml(static_cast<xml_engine_parser_type>(-1));
|
||||
}
|
||||
void test_invalid_xml_engine_upperbound() {
|
||||
XmlTree xml(static_cast<xml_engine_parser_type>(2));
|
||||
}
|
||||
void test_valid_xml_engine() {
|
||||
XmlTree xmlInstance;
|
||||
CPPUNIT_ASSERT( xmlInstance.getRootNode() == NULL );
|
||||
}
|
||||
void test_init() {
|
||||
XmlTree xmlInstance;
|
||||
xmlInstance.init("");
|
||||
CPPUNIT_ASSERT( xmlInstance.getRootNode() != NULL );
|
||||
CPPUNIT_ASSERT( xmlInstance.getRootNode()->getName() == "" );
|
||||
|
||||
xmlInstance.init("testRoot");
|
||||
CPPUNIT_ASSERT( xmlInstance.getRootNode() != NULL );
|
||||
CPPUNIT_ASSERT( xmlInstance.getRootNode()->getName() == "testRoot" );
|
||||
}
|
||||
void test_load_simultaneously_same_file() {
|
||||
const string test_filename = "xml_test_valid.xml";
|
||||
createValidXMLTestFile(test_filename);
|
||||
SafeRemoveTestFile deleteFile(test_filename);
|
||||
|
||||
XmlTree xmlInstance1;
|
||||
xmlInstance1.load(test_filename, std::map<string,string>());
|
||||
XmlTree xmlInstance2;
|
||||
xmlInstance2.load(test_filename, std::map<string,string>());
|
||||
}
|
||||
void test_load_simultaneously_different_file() {
|
||||
const string test_filename1 = "xml_test_valid1.xml";
|
||||
createValidXMLTestFile(test_filename1);
|
||||
SafeRemoveTestFile deleteFile(test_filename1);
|
||||
const string test_filename2 = "xml_test_valid2.xml";
|
||||
createValidXMLTestFile(test_filename2);
|
||||
SafeRemoveTestFile deleteFile2(test_filename2);
|
||||
|
||||
XmlTree xmlInstance1;
|
||||
xmlInstance1.load(test_filename1, std::map<string,string>());
|
||||
XmlTree xmlInstance2;
|
||||
xmlInstance2.load(test_filename2, std::map<string,string>());
|
||||
}
|
||||
};
|
||||
|
||||
// Suite Registrations
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION( XmlIoTest );
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION( XmlIoRapidTest );
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION( XmlTreeTest );
|
23
source/tests/test_runner.cpp
Normal file
23
source/tests/test_runner.cpp
Normal file
@@ -0,0 +1,23 @@
|
||||
#include <cppunit/CompilerOutputter.h>
|
||||
#include <cppunit/extensions/TestFactoryRegistry.h>
|
||||
#include <cppunit/ui/text/TestRunner.h>
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
// Get the top level suite from the registry
|
||||
CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();
|
||||
|
||||
// Adds the test to the list of test to run
|
||||
CppUnit::TextUi::TestRunner runner;
|
||||
runner.addTest( suite );
|
||||
|
||||
// Change the default outputter to a compiler error format outputter
|
||||
runner.setOutputter( new CppUnit::CompilerOutputter( &runner.result(),
|
||||
std::cerr ) );
|
||||
// Run the tests.
|
||||
bool wasSucessful = runner.run();
|
||||
|
||||
// Return error code 1 if the one of test failed.
|
||||
return wasSucessful ? 0 : 1;
|
||||
}
|
Reference in New Issue
Block a user