From 5872cc7c1f0b41e7b9cfe7060ef88bc69daf8219 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 8 Dec 2009 11:44:50 -0500 Subject: Create CMakeLib test driver and test cmXMLParser We create a new CMakeLibTests driver executable in which to writes unit tests for CMakeLib. Our first test is a smoke-test of cmXMLParser. --- Tests/CMakeLib/CMakeLists.txt | 20 ++++++++++++++++++++ Tests/CMakeLib/testXMLParser.cxx | 17 +++++++++++++++++ Tests/CMakeLib/testXMLParser.h.in | 6 ++++++ Tests/CMakeLib/testXMLParser.xml | 4 ++++ Tests/CMakeLists.txt | 2 ++ 5 files changed, 49 insertions(+) create mode 100644 Tests/CMakeLib/CMakeLists.txt create mode 100644 Tests/CMakeLib/testXMLParser.cxx create mode 100644 Tests/CMakeLib/testXMLParser.h.in create mode 100644 Tests/CMakeLib/testXMLParser.xml diff --git a/Tests/CMakeLib/CMakeLists.txt b/Tests/CMakeLib/CMakeLists.txt new file mode 100644 index 0000000..37bc09f --- /dev/null +++ b/Tests/CMakeLib/CMakeLists.txt @@ -0,0 +1,20 @@ +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMake_BINARY_DIR}/Source + ${CMake_SOURCE_DIR}/Source + ) + +set(CMakeLib_TESTS + testXMLParser + ) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/testXMLParser.h.in + ${CMAKE_CURRENT_BINARY_DIR}/testXMLParser.h @ONLY) + +create_test_sourcelist(CMakeLib_TEST_SRCS CMakeLibTests.cxx ${CMakeLib_TESTS}) +add_executable(CMakeLibTests ${CMakeLib_TEST_SRCS}) +target_link_libraries(CMakeLibTests CMakeLib) + +foreach(test ${CMakeLib_TESTS}) + add_test(CMakeLib.${test} CMakeLibTests ${test}) +endforeach() diff --git a/Tests/CMakeLib/testXMLParser.cxx b/Tests/CMakeLib/testXMLParser.cxx new file mode 100644 index 0000000..54ed5dc --- /dev/null +++ b/Tests/CMakeLib/testXMLParser.cxx @@ -0,0 +1,17 @@ +#include "testXMLParser.h" + +#include "cmXMLParser.h" + +#include + +int testXMLParser(int, char*[]) +{ + // TODO: Derive from parser and check attributes. + cmXMLParser parser; + if(!parser.ParseFile(SOURCE_DIR "/testXMLParser.xml")) + { + cmsys_ios::cerr << "cmXMLParser failed!" << cmsys_ios::endl; + return 1; + } + return 0; +} diff --git a/Tests/CMakeLib/testXMLParser.h.in b/Tests/CMakeLib/testXMLParser.h.in new file mode 100644 index 0000000..da0b275 --- /dev/null +++ b/Tests/CMakeLib/testXMLParser.h.in @@ -0,0 +1,6 @@ +#ifndef testXMLParser_h +#define testXMLParser_h + +#define SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@" + +#endif diff --git a/Tests/CMakeLib/testXMLParser.xml b/Tests/CMakeLib/testXMLParser.xml new file mode 100644 index 0000000..5a13f07 --- /dev/null +++ b/Tests/CMakeLib/testXMLParser.xml @@ -0,0 +1,4 @@ + + + + diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index f47dccb..2a31989 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -37,6 +37,8 @@ SET_DIRECTORY_PROPERTIES(PROPERTIES # Testing IF(BUILD_TESTING) + ADD_SUBDIRECTORY(CMakeLib) + # Collect a list of all test build directories. SET(TEST_BUILD_DIRS) -- cgit v0.12