Browse Source

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.
Brad King 16 years ago
parent
commit
5872cc7c1f

+ 20 - 0
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()

+ 17 - 0
Tests/CMakeLib/testXMLParser.cxx

@@ -0,0 +1,17 @@
+#include "testXMLParser.h"
+
+#include "cmXMLParser.h"
+
+#include <cmsys/ios/iostream>
+
+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;
+}

+ 6 - 0
Tests/CMakeLib/testXMLParser.h.in

@@ -0,0 +1,6 @@
+#ifndef testXMLParser_h
+#define testXMLParser_h
+
+#define SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@"
+
+#endif

+ 4 - 0
Tests/CMakeLib/testXMLParser.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Document>
+  <Element attr="1"/>
+</Document>

+ 2 - 0
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)