# CMake build for xerces-c # # Written by Roger Leigh # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Definitions required for building add_definitions( -DHAVE_CONFIG_H=1 ) # Search the project binary dir for config.h include_directories( ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR} ) set(EXTRA_DIST src/DOM/Normalizer/expectedOutput src/DOM/TypeInfo/data/combined.dtd src/DOM/TypeInfo/data/combined.xml src/DOM/TypeInfo/data/combined.xsd src/DOM/TypeInfo/data/SecondSchema.xsd src/DOM/TypeInfo/data/TypeInfo.dtd src/DOM/TypeInfo/data/TypeInfo.xml src/DOM/TypeInfo/data/TypeInfo.xsd src/DOM/TypeInfo/data/TypeInfoJustDTD.xml src/DOM/TypeInfo/data/TypeInfoNoDTD.xml src/DOM/TypeInfo/data/TypeInfoNoDTD.xsd src/XSTSHarness/regression src/xinclude ) macro(add_test_executable name) add_executable(${name} ${ARGN}) target_link_libraries(${name} xerces-c) set_target_properties(${name} PROPERTIES FOLDER "Tests") list(APPEND test_programs ${name}) endmacro() add_test_executable(DOMTest src/DOM/DOMTest/DTest.cpp src/DOM/DOMTest/DTest.h ) add_test_executable(DOMMemTest src/DOM/DOMMemTest/DOMMemTest.cpp ) add_test_executable(Normalizer src/DOM/Normalizer/Normalizer.cpp src/DOM/Normalizer/Normalizer.hpp ) add_test_executable(RangeTest src/DOM/RangeTest/RangeTest.cpp ) add_test_executable(DOMTraversalTest src/DOM/Traversal/Traversal.cpp ) add_test_executable(DOMTypeInfoTest src/DOM/TypeInfo/TypeInfo.cpp src/DOM/TypeInfo/TypeInfo.hpp ) add_test_executable(EncodingTest src/EncodingTest/EncodingTest.cpp ) add_test_executable(InitTermTest src/InitTermTest/InitTermTest.cpp src/InitTermTest/InitTermTest.hpp ) add_test_executable(MemHandlerTest src/MemHandlerTest/MemoryMonitor.cpp src/MemHandlerTest/MemoryMonitor.hpp src/MemHandlerTest/SimpleValueHashTableOf.hpp ) add_test_executable(NetAccessorTest src/NetAccessorTest/NetAccessorTest.cpp ) # Doesn't compile under gcc4 for some reason # dcargill says this is obsolete and we can delete it. #add_test_executable(ParserTest # src/ParserTest/ParserTest.cpp # src/ParserTest/ParserTest.hpp # src/ParserTest/ParserTest_Parser.cpp # src/ParserTest/ParserTest_Parser.hpp #) if(NOT XERCES_USE_MUTEXMGR_NOTHREAD) add_test_executable(ThreadTest src/ThreadTest/ThreadTest.cpp ) endif() # Fails to compile under gcc 4 (ambiguous calls to NullPointerException) # dcargill says this is obsolete and we can delete it. #add_test_executable(UtilTests # src/UtilTests/CoreTests_BitSet.cpp # src/UtilTests/CoreTests_CountedPointer.cpp # src/UtilTests/CoreTests_RefArray.cpp # src/UtilTests/CoreTests_RefHashTable.cpp # src/UtilTests/CoreTests_RefStack.cpp # src/UtilTests/CoreTests_RefVector.cpp # src/UtilTests/CoreTests_String.cpp # src/UtilTests/CoreTests_Transcoders.cpp # src/UtilTests/CoreTests_URL.cpp # src/UtilTests/CoreTests_ValueArray.cpp # src/UtilTests/CoreTests_ValueStack.cpp # src/UtilTests/CoreTests_ValueVector.cpp # src/UtilTests/CoreTestsMain.cpp # src/UtilTests/CoreTests.hpp #) add_test_executable(XSerializerTest src/XSerializerTest/XSerializerHandlers.cpp src/XSerializerTest/XSerializerHandlers.hpp src/XSerializerTest/XSerializerTest.cpp src/XSerializerTest/XSerializerTest.hpp ) add_test_executable(XSTSHarness src/XSTSHarness/XSTSHarness.cpp src/XSTSHarness/XSTSHarness.hpp src/XSTSHarness/XSTSHarnessHandlers.cpp src/XSTSHarness/XSTSHarnessHandlers.hpp src/XSTSHarness/XMLHarnessHandlers.cpp src/XSTSHarness/XMLHarnessHandlers.hpp ) # Fails to compile under gcc4 (values too long for long type) add_test_executable(XSValueTest src/XSValueTest/XSValueTest.cpp src/XSValueTest/XSValueTest.hpp ) if(XERCES_XMLCH_T STREQUAL "char16_t") add_test_executable(Char16Test src/Char16Test/Char16Test.cpp ) if(MSVC) set_target_properties(Char16Test PROPERTIES COMPILE_FLAGS "/utf-8") endif() endif() # Run tests include(XercesTest) add_xerces_test(DOMTest COMMAND DOMTest) add_xerces_test(DOMMemTest COMMAND DOMMemTest) add_xerces_test(RangeTest COMMAND RangeTest) add_xerces_test(DOMTraversalTest COMMAND DOMTraversalTest) add_xerces_test(XSerializerTest COMMAND XSerializerTest EXPECT_FAIL) add_xerces_test(XSerializerTest1 COMMAND XSerializerTest -v=never personal.xml) add_xerces_test(XSerializerTest2 COMMAND XSerializerTest -v=always personal.xml) add_xerces_test(XSerializerTest3 COMMAND XSerializerTest -v=never personal-schema.xml) add_xerces_test(XSerializerTest4 COMMAND XSerializerTest -v=always personal-schema.xml) add_xerces_test(XSerializerTest5 COMMAND XSerializerTest -v=always -f personal-schema.xml) add_xerces_test(XSValueTest COMMAND XSValueTest) add_xerces_test(InitTermTest COMMAND InitTermTest EXPECT_FAIL) add_xerces_test(InitTermTest1 COMMAND InitTermTest personal.xml) add_xerces_test(InitTermTest2 COMMAND InitTermTest -n -s personal-schema.xml) add_xerces_test(InitTermTest3 COMMAND InitTermTest -n -s -f personal-schema.xml) if(NOT XERCES_USE_MUTEXMGR_NOTHREAD) add_xerces_test(ThreadTest COMMAND ThreadTest EXPECT_FAIL) add_xerces_test(ThreadTest1 COMMAND ThreadTest -parser=sax -v=never -quiet -threads 10 -time 20 personal.xml) add_xerces_test(ThreadTest2 COMMAND ThreadTest -parser=dom -v=never -quiet -threads 10 -time 20 personal.xml) add_xerces_test(ThreadTest3 COMMAND ThreadTest -parser=sax2 -v=never -quiet -threads 10 -time 20 personal.xml) add_xerces_test(ThreadTest4 COMMAND ThreadTest -parser=sax -v=always -quiet -threads 10 -time 20 personal.xml) add_xerces_test(ThreadTest5 COMMAND ThreadTest -parser=dom -v=always -quiet -threads 10 -time 20 personal.xml) add_xerces_test(ThreadTest6 COMMAND ThreadTest -parser=sax2 -v=always -quiet -threads 10 -time 20 personal.xml) add_xerces_test(ThreadTest7 COMMAND ThreadTest -parser=sax -gc -v=always -quiet -threads 10 -time 20 personal.xml) add_xerces_test(ThreadTest8 COMMAND ThreadTest -parser=dom -gc -v=always -quiet -threads 10 -time 20 personal.xml) add_xerces_test(ThreadTest9 COMMAND ThreadTest -parser=sax2 -gc -v=always -quiet -threads 10 -time 20 personal.xml) add_xerces_test(ThreadTest10 COMMAND ThreadTest -parser=sax -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml) add_xerces_test(ThreadTest11 COMMAND ThreadTest -parser=dom -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml) add_xerces_test(ThreadTest12 COMMAND ThreadTest -parser=sax2 -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml) add_xerces_test(ThreadTest13 COMMAND ThreadTest -parser=sax -gc -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml) add_xerces_test(ThreadTest14 COMMAND ThreadTest -parser=dom -gc -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml) add_xerces_test(ThreadTest15 COMMAND ThreadTest -parser=sax2 -gc -n -s -f -v=always -quiet -threads 10 -time 20 personal-schema.xml) endif() add_xerces_test(MemHandlerTest COMMAND MemHandlerTest EXPECT_FAIL) add_xerces_test(MemHandlerTest1 COMMAND MemHandlerTest -v=always -n -r=2 personal.xml) add_xerces_test(MemHandlerTest2 COMMAND MemHandlerTest -v=always -n -r=2 -s -f personal-schema.xml) add_xerces_test(DOMTypeInfoTest WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/src/DOM/TypeInfo" COMMAND DOMTypeInfoTest) if(XERCES_XMLCH_T STREQUAL "char16_t") add_xerces_test(Char16Test COMMAND Char16Test) endif()