blob: 78cd1171d264534d63770d808319240469c5afff [file] [log] [blame]
# CMake build for xerces-c
#
# Written by Roger Leigh <rleigh@codelibre.net>
#
# 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()