From 22a9d2a8dfbb69989021115bce95d651e159ad26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= <gruenich@dune-project.org> Date: Wed, 14 Mar 2012 17:05:59 +0000 Subject: [PATCH] [CMake] Most tests are run correctly, some fail due to an exception or missing MPI support. Module name, version and email address is extracted from dune.module. [[Imported from SVN: r6587]] --- CMakeLists.txt | 103 ++++++++++++++++++++++++-------- cmake/modules/DuneMacros.cmake | 24 ++++++++ config.h.cmake | 3 +- dune/common/test/CMakeLists.txt | 85 +++++++++++++++++++++----- 4 files changed, 173 insertions(+), 42 deletions(-) create mode 100644 cmake/modules/DuneMacros.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 15a66bf3b..22591a1ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,14 +1,16 @@ # general stuff cmake_minimum_required(VERSION 2.8) -set(ProjectName "dune-common") -set(ProjectVersion "2.2-svn") -set(ProjectMaintainer "DUNE Project") -set(ProjectMaintainerEmail "dune@dune-project.org") -project(${ProjectName} C CXX) # make sure our own modules are found set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules") +include(DuneMacros) +dune_module_information(${CMAKE_SOURCE_DIR}) +set(ProjectName "${DUNE_MODULE_NAME}") +set(ProjectVersion "${DUNE_VERSION_STRING}") +set(ProjectMaintainerEmail "${DUNE_MAINTAINER}") +project(${ProjectName} C CXX) + # include dune-common to include pathtest include_directories("${CMAKE_SOURCE_DIR}") link_directories("${CMAKE_SOURCE_DIR}") @@ -27,8 +29,13 @@ check_include_file_cxx("memory" HAVE_MEMORY) set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -DHAVE_MEMORY=${HAVE_MEMORY}") # search for packages -find_package(MPI) -set(HAVE_MPI MPI_CXX_FOUND) +#find_package(MPI) +#set(HAVE_MPI MPI_CXX_FOUND) +#include_directories(${MPI_CXX_INCLUDE_PATH}) +#set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} ${MPI_CXX_COMPILE_FLAGS}) +#set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ${MPI_CXX_LINK_FLAGS}) +#include_directories(${MPI_CXX_INCLUDE_PATH}) + find_package(Boost) set(HAVE_BOOST BOOST_FOUND) find_package(SharedPtr) @@ -49,43 +56,91 @@ add_test(arraylisttest dune/common/test/arraylisttest) add_test(arraytest dune/common/test/arraytest) add_test(bigunsignedinttest dune/common/test/bigunsignedinttest) add_test(bitsetvectortest dune/common/test/bitsetvectortest) +add_test(check_fvector_size dune/common/test/check_fvector_size) add_test(conversiontest dune/common/test/conversiontest) add_test(deprtuplestest dune/common/test/deprtuplestest) add_test(dynmatrixtest dune/common/test/dynmatrixtest) add_test(dynvectortest dune/common/test/dynvectortest) add_test(enumsettest dune/common/test/enumsettest) -add_test(fassigntest dune/common/test/fassigntest) add_test(fmatrixtest dune/common/test/fmatrixtest) add_test(fvectortest dune/common/test/fvectortest) add_test(gcdlcmtest dune/common/test/gcdlcmtest) -add_test(iteratorfacadetest2 dune/common/test/iteratorfacadetest2) add_test(iteratorfacadetest dune/common/test/iteratorfacadetest) +add_test(iteratorfacadetest2 dune/common/test/iteratorfacadetest2) add_test(lrutest dune/common/test/lrutest) +if(MPI_CXX_FOUND) + add_test(mpicollectivecommunication dune/common/test/mpicollectivecommunication) +endif(MPI_CXX_FOUND) add_test(mpiguardtest dune/common/test/mpiguardtest) add_test(mpihelpertest dune/common/test/mpihelpertest) -add_test(nullptr-test2 dune/common/test/nullptr-test2) -add_test(nullptr-test dune/common/test/nullptr-test) +add_test(mpihelpertest2 dune/common/test/mpihelpertest2) +add_test(nullptr_test dune/common/test/nullptr_test) add_test(parametertreetest dune/common/test/parametertreetest) add_test(pathtest dune/common/test/pathtest) add_test(poolallocatortest dune/common/test/poolallocatortest) -add_test(shared_ptrtest dune/common/test/shared_ptrtest) +add_test(shared_ptrtest_config dune/common/test/shared_ptrtest_config) +add_test(shared_ptrtest_dune dune/common/test/shared_ptrtest_dune) add_test(singletontest dune/common/test/singletontest) -add_test(sllisttest dune/common/test/sllisttest) -add_test(NAME static_assert_test - COMMAND ${CMAKE_COMMAND} --build . --target static_assert_test --config $<CONFIGURATION>) -add_test(NAME static_assert_test_fail - COMMAND ${CMAKE_COMMAND} --build . --target static_assert_test_fail --config $<CONFIGURATION>) -set_tests_properties(static_assert_test_fail PROPERTIES WILL_FAIL true) add_test(streamtest dune/common/test/streamtest) +add_test(testfassign1 dune/common/test/testfassign1) add_test(testfassign2 dune/common/test/testfassign2) -add_test(testfassign dune/common/test/testfassign) -add_test(testfconstruct dune/common/test/testfconstruct) -add_test(test-stack dune/common/test/test-stack) -add_test(tuplestest dune/common/test/tuplestest) +add_test(testfassign3 dune/common/test/testfassign3) +add_test(testfassign4 dune/common/test/testfassign4) +add_test(test_stack dune/common/test/test_stack) +add_test(tuplestest_config dune/common/test/tuplestest_config) +add_test(tuplestest_dune dune/common/test/tuplestest_dune) +add_test(tuplestest_tr1 dune/common/test/tuplestest_tr1) add_test(tupleutilitytest dune/common/test/tupleutilitytest) add_test(utilitytest dune/common/test/utilitytest) +# failing tests +add_test(testfassign_fail1 dune/common/test/testfassign_fail1) +add_test(testfassign_fail2 dune/common/test/testfassign_fail2) +add_test(testfassign_fail3 dune/common/test/testfassign_fail3) +add_test(testfassign_fail4 dune/common/test/testfassign_fail4) +add_test(testfassign_fail5 dune/common/test/testfassign_fail5) +add_test(testfassign_fail6 dune/common/test/testfassign_fail6) +set_tests_properties( + testfassign_fail1 + testfassign_fail2 + testfassign_fail3 + testfassign_fail4 + testfassign_fail5 + testfassign_fail6 + PROPERTIES WILL_FAIL true) +# compile test +add_test(NAME static_assert_test + COMMAND ${CMAKE_COMMAND} --build . --target static_assert_test --config $<CONFIGURATION>) +add_test(NAME testfconstruct + COMMAND ${CMAKE_COMMAND} --build . --target testfconstruct --config $<CONFIGURATION>) +# failing compile tests +add_test(NAME genericiterator_compile_fail + COMMAND ${CMAKE_COMMAND} --build . --target genericiterator_compile_fail --config $<CONFIGURATION>) +add_test(NAME check_fvector_size_fail1 + COMMAND ${CMAKE_COMMAND} --build . --target check_fvector_size_fail1 --config $<CONFIGURATION>) +add_test(NAME check_fvector_size_fail2 + COMMAND ${CMAKE_COMMAND} --build . --target check_fvector_size_fail2 --config $<CONFIGURATION>) +add_test(NAME nullptr_test_fail + COMMAND ${CMAKE_COMMAND} --build . --target nullptr_test_fail --config $<CONFIGURATION>) +add_test(NAME static_assert_test_fail + COMMAND ${CMAKE_COMMAND} --build . --target static_assert_test_fail --config $<CONFIGURATION>) +add_test(NAME testfconstruct_fail1 + COMMAND ${CMAKE_COMMAND} --build . --target testfconstruct_fail1 --config $<CONFIGURATION>) +add_test(NAME testfconstruct_fail2 + COMMAND ${CMAKE_COMMAND} --build . --target testfconstruct_fail2 --config $<CONFIGURATION>) +set_tests_properties( + genericiterator_compile_fail + check_fvector_size_fail1 + check_fvector_size_fail2 + nullptr_test_fail + static_assert_test_fail + testfconstruct_fail1 + testfconstruct_fail2 + PROPERTIES WILL_FAIL true) + # add tests from dune/common/parallel/test add_test(indexsettest dune/common/parallel/test/indexsettest) -add_test(indicestest dune/common/parallel/test/indicestest) add_test(selectiontest dune/common/parallel/test/selectiontest) -add_test(syncertest dune/common/parallel/test/syncertest) +if(MPI_CXX_FOUND) + add_test(indicestest dune/common/parallel/test/indicestest) + add_test(syncertest dune/common/parallel/test/syncertest) +endif(MPI_CXX_FOUND) diff --git a/cmake/modules/DuneMacros.cmake b/cmake/modules/DuneMacros.cmake new file mode 100644 index 000000000..ad257a57e --- /dev/null +++ b/cmake/modules/DuneMacros.cmake @@ -0,0 +1,24 @@ +# add dune-common version from dune.module to config.h +macro(dune_module_information MODULE_DIR) + file(READ "${MODULE_DIR}/dune.module" DUNE_MODULE) + + # find version string + string(REGEX REPLACE ".*Version:[ ]*([^ \n]+).*" "\\1" DUNE_VERSION_STRING "${DUNE_MODULE}") + string(REGEX REPLACE "([0-9]).*" "\\1" DUNE_VERSION_MAJOR "${DUNE_VERSION_STRING}") + string(REGEX REPLACE "[0-9]*\\.([0-9]).*" "\\1" DUNE_VERSION_MINOR "${DUNE_VERSION_STRING}") + string(REGEX REPLACE "[0-9]*\\.[0-9]*\\.([0-9]).*" "\\1" DUNE_VERSION_REVISION "${DUNE_VERSION_STRING}") + + # remove false matches in version string + string(REGEX MATCH "[^0-9]" NON_NUMBER_CHARACTER "${DUNE_VERSION_MINOR}") + if(NON_NUMBER_CHARACTER) + set(DUNE_COMMON_VERSION_MINOR "0") + endif(NON_NUMBER_CHARACTER) + string(REGEX MATCH "[^0-9]" NON_NUMBER_CHARACTER "${DUNE_VERSION_REVISION}") + if(NON_NUMBER_CHARACTER) + set(DUNE_COMMON_VERSION_REVISION "0") + endif(NON_NUMBER_CHARACTER) + + # find strings for module name, maintainer + string(REGEX REPLACE ".*Module:[ ]*([^ \n]+).*" "\\1" DUNE_MODULE_NAME "${DUNE_MODULE}") + string(REGEX REPLACE ".*Maintainer:[ ]*([^ \n]+).*" "\\1" DUNE_MAINTAINER "${DUNE_MODULE}") +endmacro(dune_module_information) diff --git a/config.h.cmake b/config.h.cmake index c815e3810..9bc9c8313 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -1,7 +1,6 @@ #define DUNE_COMMON_FIELDVECTOR_SIZE_IS_METHOD 1 -/* #cmake define01 HAVE_MPI */ -#define HAVE_MPI 0 +#cmakedefine01 HAVE_MPI #cmakedefine01 HAVE_MALLOC_H #cmakedefine01 HAVE_BOOST diff --git a/dune/common/test/CMakeLists.txt b/dune/common/test/CMakeLists.txt index 1db2f166b..baa6be480 100644 --- a/dune/common/test/CMakeLists.txt +++ b/dune/common/test/CMakeLists.txt @@ -5,6 +5,11 @@ add_executable("bigunsignedinttest" bigunsignedinttest.cc) target_link_libraries("bigunsignedinttest" "dunecommon") add_executable("bitsetvectortest" bitsetvectortest.cc) +add_executable("check_fvector_size" check_fvector_size.cc) +add_executable("check_fvector_size_fail1" EXCLUDE_FROM_ALL check_fvector_size_fail.cc) +set_target_properties(check_fvector_size_fail1 PROPERTIES COMPILE_FLAGS "-DDIM=1") +add_executable("check_fvector_size_fail2" EXCLUDE_FROM_ALL check_fvector_size_fail.cc) +set_target_properties(check_fvector_size_fail2 PROPERTIES COMPILE_FLAGS "-DDIM=3") add_executable("conversiontest" conversiontest.cc) add_executable("deprtuplestest" deprtuplestest.cc) @@ -22,18 +27,25 @@ target_link_libraries("fmatrixtest" "dunecommon") add_executable("fvectortest" fvectortest.cc) add_executable("gcdlcmtest" gcdlcmtest.cc) +add_executable("genericiterator_compile_fail" EXCLUDE_FROM_ALL genericiterator_compile_fail.cc) add_executable("iteratorfacadetest2" iteratorfacadetest2.cc) add_executable("iteratorfacadetest" iteratorfacadetest.cc) add_executable("lrutest" lrutest.cc) - add_executable("mpiguardtest" mpiguardtest.cc) target_link_libraries("mpiguardtest" "dunecommon") - +#target_link_libraries(mpiguardtest ${MPI_CXX_LIBRARIES}) +add_executable("mpicollectivecommunication" mpicollectivecommunication.cc) +#target_link_libraries(mpicollectivecommunication ${MPI_CXX_LIBRARIES}) add_executable("mpihelpertest" mpihelpertest.cc) -add_executable("nullptr-test" nullptr-test.cc) - -#add_executable("nullptr-test2" nullptr-test2.cc) -#target_link_libraries("nullptr-test2" "dunecommon") +#target_link_libraries(mpihelpertest ${MPI_CXX_LIBRARIES}) +add_executable("mpihelpertest2" mpihelpertest.cc) +#target_link_libraries(mpihelpertest2 ${MPI_CXX_LIBRARIES}) +set_target_properties(mpihelpertest2 PROPERTIES COMPILE_FLAGS "-DMPIHELPER_PREINITIALIZE") +add_executable("nullptr_test" nullptr-test.cc nullptr-test2.cc) +target_link_libraries(nullptr_test "dunecommon") +add_executable("nullptr_test_fail" EXCLUDE_FROM_ALL nullptr-test.cc) +target_link_libraries(nullptr_test_fail "dunecommon") +set_target_properties(nullptr_test_fail PROPERTIES COMPILE_FLAGS "-DFAIL") add_executable("parametertreetest" parametertreetest.cc) target_link_libraries("parametertreetest" "dunecommon") @@ -42,22 +54,63 @@ add_executable("pathtest" pathtest.cc) target_link_libraries("pathtest" "dunecommon") add_executable("poolallocatortest" poolallocatortest.cc) -add_executable("shared_ptrtest" shared_ptrtest.cc) +add_executable("shared_ptrtest_config" shared_ptrtest.cc) +add_executable("shared_ptrtest_dune" shared_ptrtest.cc) +set_target_properties(shared_ptrtest_dune PROPERTIES COMPILE_FLAGS "-DDISABLE_CONFIGURED_SHARED_PTR") add_executable("singletontest" singletontest.cc) -add_executable("sllisttest" sllisttest.cc) +add_executable("sllisttest" EXCLUDE_FROM_ALL sllisttest.cc) add_executable("static_assert_test" EXCLUDE_FROM_ALL static_assert_test.cc) add_executable("static_assert_test_fail" EXCLUDE_FROM_ALL static_assert_test_fail.cc) add_executable("streamtest" streamtest.cc) target_link_libraries("streamtest" "dunecommon") -#add_executable("testfassign" testfassign.cc) -#add_executable("testfassign2" testfassign2.cc) -#add_executable("testfconstruct" testfconstruct.cc) - -add_executable("test-stack" test-stack.cc) -target_link_libraries("test-stack" "dunecommon") - -add_executable("tuplestest" tuplestest.cc) +add_executable("testfassign1" testfassign.cc testfassign2.cc) +set_target_properties(testfassign1 PROPERTIES COMPILE_FLAGS "-D_DUNE_TEST_N=3 -D_VALUES=\"1,2,3\"") +target_link_libraries(testfassign1 "dunecommon") +add_executable("testfassign2" testfassign.cc) +set_target_properties(testfassign2 PROPERTIES COMPILE_FLAGS "-D_DUNE_TEST_N=3 -D_VALUES=\"1,zero\"") +target_link_libraries(testfassign2 "dunecommon") +add_executable("testfassign3" testfassign.cc) +set_target_properties(testfassign3 PROPERTIES COMPILE_FLAGS "-D_DUNE_TEST_N=3 -D_VALUES=\"zero\"") +target_link_libraries(testfassign3 "dunecommon") +add_executable("testfassign4" testfassign.cc) +set_target_properties(testfassign4 PROPERTIES COMPILE_FLAGS "-D_DUNE_TEST_N=2 -D_DUNE_TEST_M=3 -D_VALUES=\"1, zero, nextRow, 2, 3, 4\"") +target_link_libraries(testfassign4 "dunecommon") +add_executable("testfassign_fail1" testfassign.cc) +set_target_properties(testfassign_fail1 PROPERTIES COMPILE_FLAGS "-D_DUNE_TEST_N=3 -D_VALUES=\"1,2\"") +target_link_libraries(testfassign_fail1 "dunecommon") +add_executable("testfassign_fail2" testfassign.cc) +set_target_properties(testfassign_fail2 PROPERTIES COMPILE_FLAGS "-D_DUNE_TEST_N=3 -D_VALUES=\"1,2,3,4\"") +target_link_libraries(testfassign_fail2 "dunecommon") +add_executable("testfassign_fail3" testfassign.cc) +set_target_properties(testfassign_fail3 PROPERTIES COMPILE_FLAGS "-D_DUNE_TEST_N=2 -D_DUNE_TEST_M=2 -D_VALUES=\"1, nextRow, 2, 3\"") +target_link_libraries(testfassign_fail3 "dunecommon") +add_executable("testfassign_fail4" testfassign.cc) +set_target_properties(testfassign_fail4 PROPERTIES COMPILE_FLAGS "-D_DUNE_TEST_N=2 -D_DUNE_TEST_M=2 -D_VALUES=\"1, 2, 3, nextRow, 2, 3\"") +target_link_libraries(testfassign_fail4 "dunecommon") +add_executable("testfassign_fail5" testfassign.cc) +set_target_properties(testfassign_fail5 PROPERTIES COMPILE_FLAGS "-D_DUNE_TEST_N=2 -D_DUNE_TEST_M=2 -D_VALUES=\"1, 2\"") +target_link_libraries(testfassign_fail5 "dunecommon") +add_executable("testfassign_fail6" testfassign.cc) +set_target_properties(testfassign_fail6 PROPERTIES COMPILE_FLAGS "-D_DUNE_TEST_N=2 -D_DUNE_TEST_M=2 -D_VALUES=\"1, 2, nextRow, 2, 3, nextRow, 4, 5\"") +target_link_libraries(testfassign_fail6 "dunecommon") + +add_executable("testfconstruct" EXCLUDE_FROM_ALL testfconstruct.cc) +set_target_properties(testfconstruct PROPERTIES COMPILE_FLAGS "-DFVSIZE=3") +target_link_libraries(testfconstruct "dunecommon") +add_executable("testfconstruct_fail1" EXCLUDE_FROM_ALL testfconstruct.cc) +set_target_properties(testfconstruct_fail1 PROPERTIES COMPILE_FLAGS "-DFVSIZE=2") +target_link_libraries(testfconstruct_fail1 "dunecommon") +add_executable("testfconstruct_fail2" EXCLUDE_FROM_ALL testfconstruct.cc) +set_target_properties(testfconstruct_fail2 PROPERTIES COMPILE_FLAGS "-DFVSIZE=5") +target_link_libraries(testfconstruct_fail2 "dunecommon") +add_executable("test_stack" test-stack.cc) +target_link_libraries("test_stack" "dunecommon") +add_executable("tuplestest_config" tuplestest.cc) +add_executable("tuplestest_dune" tuplestest.cc) +set_target_properties(tuplestest_dune PROPERTIES COMPILE_FLAGS "-DDISABLE_TR1_TUPLE -DDISABLE_STD_TUPLE") +add_executable("tuplestest_tr1" tuplestest.cc) +set_target_properties(tuplestest_tr1 PROPERTIES COMPILE_FLAGS "-DDISABLE_STD_TUPLE") add_executable("tupleutilitytest" tupleutilitytest.cc) add_executable("utilitytest" utilitytest.cc) -- GitLab