From e195df457a0e526541cf71f1d9e93c1e805b0dd5 Mon Sep 17 00:00:00 2001 From: vsande Date: Fri, 25 Sep 2015 10:22:36 +0200 Subject: [PATCH] Added more tests cases (those located into Fox_library/test folder. Tests will be compiled and performed with CTest if BUILD_TESTING CMake variable is set to ON. Minor fix in sax/test/m_canonicalize.f90 when applying len() to a dictionary_t type --- CMakeLists.txt | 4 ++-- dom/CMakeLists.txt | 4 ++++ dom/test/CMakeLists.txt | 25 +++++++++++++++++++++++++ sax/CMakeLists.txt | 4 ++++ sax/test/CMakeLists.txt | 28 ++++++++++++++++++++++++++++ sax/test/m_canonicalize.f90 | 3 ++- wcml/CMakeLists.txt | 4 ++++ wcml/test/CMakeLists.txt | 25 +++++++++++++++++++++++++ wkml/CMakeLists.txt | 3 +++ wkml/test/CMakeLists.txt | 29 +++++++++++++++++++++++++++++ wxml/CMakeLists.txt | 4 ++++ wxml/test/CMakeLists.txt | 24 ++++++++++++++++++++++++ 12 files changed, 154 insertions(+), 3 deletions(-) create mode 100644 dom/test/CMakeLists.txt create mode 100644 sax/test/CMakeLists.txt create mode 100644 wcml/test/CMakeLists.txt create mode 100644 wkml/test/CMakeLists.txt create mode 100644 wxml/test/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 27726f9b..c245b4e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,12 +2,12 @@ PROJECT(FoX Fortran) SET(CMAKE_VERBOSE_MAKEFILE FALSE) -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) #======================# # Enable testing #======================# - +SET(BUILD_TESTING OFF CACHE STRING "") ENABLE_TESTING() INCLUDE(CTest) diff --git a/dom/CMakeLists.txt b/dom/CMakeLists.txt index 5d9e9263..868178ec 100644 --- a/dom/CMakeLists.txt +++ b/dom/CMakeLists.txt @@ -95,3 +95,7 @@ target_link_libraries( ${PROJECT_NAME}_wxml ${PROJECT_NAME}_sax ) + +IF(${BUILD_TESTING}) + ADD_SUBDIRECTORY(test) +ENDIF() diff --git a/dom/test/CMakeLists.txt b/dom/test/CMakeLists.txt new file mode 100644 index 00000000..87233dd8 --- /dev/null +++ b/dom/test/CMakeLists.txt @@ -0,0 +1,25 @@ + +################################################################# +# FoX DOM tests +################################################################# + +FILE(GLOB_RECURSE TESTS_DOM_SRC *.f90 *.F90) + + +FOREACH(TEST_SRC ${TESTS_DOM_SRC}) + + GET_FILENAME_COMPONENT(EXE_NAME ${TEST_SRC} NAME_WE) + ADD_EXECUTABLE(${EXE_NAME} ${TEST_SRC}) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_dom) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_sax) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_common) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_fsys) + FOREACH (EXT_LIB ${EXT_LIBS}) + IF(DEFINED ${PROJECT_NAME}_ENABLE_${EXT_LIB} AND ${PROJECT_NAME}_ENABLE_${EXT_LIB} AND ${EXT_LIB}_FOUND) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${${EXT_LIB}_LIBRARIES}) + ENDIF() + ENDFOREACH() + ADD_CUSTOM_COMMAND(TARGET ${EXE_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/wcml/test/test_cmlDumpDec_1.input ${PROJECT_BINARY_DIR}/wcml/test) + ADD_TEST(${EXE_NAME}_TEST ${EXECUTABLE_OUTPUT_PATH}/${EXE_NAME}) +ENDFOREACH() + diff --git a/sax/CMakeLists.txt b/sax/CMakeLists.txt index dcc0f812..5232a057 100644 --- a/sax/CMakeLists.txt +++ b/sax/CMakeLists.txt @@ -24,3 +24,7 @@ target_link_libraries( ${PROJECT_NAME}_utils ${PROJECT_NAME}_fsys ) + +IF(${BUILD_TESTING}) + ADD_SUBDIRECTORY(test) +ENDIF() diff --git a/sax/test/CMakeLists.txt b/sax/test/CMakeLists.txt new file mode 100644 index 00000000..6e9aa9b1 --- /dev/null +++ b/sax/test/CMakeLists.txt @@ -0,0 +1,28 @@ + +################################################################# +# FoX SAX tests +################################################################# + +FILE(GLOB_RECURSE TESTS_SAX_SRC *.f90 *.F90) + +FOREACH(TEST_SRC ${TESTS_SAX_SRC}) + GET_FILENAME_COMPONENT(EXE_NAME ${TEST_SRC} NAME) + IF(NOT (${EXE_NAME} STREQUAL "m_canonicalize.f90") AND NOT (${EXE_NAME} STREQUAL "m_handlers.f90")) + ADD_EXECUTABLE(${EXE_NAME} ${TEST_SRC}) + TARGET_SOURCES(${EXE_NAME} PUBLIC m_handlers.f90) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_sax) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_common) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_fsys) + FOREACH (EXT_LIB ${EXT_LIBS}) + IF(DEFINED ${PROJECT_NAME}_ENABLE_${EXT_LIB} AND ${PROJECT_NAME}_ENABLE_${EXT_LIB} AND ${EXT_LIB}_FOUND) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${${EXT_LIB}_LIBRARIES}) + ENDIF() + ENDFOREACH() + ADD_CUSTOM_COMMAND(TARGET ${EXE_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/sax/test/test_sax_fsm_1.in ${PROJECT_BINARY_DIR}/sax/test) + ADD_CUSTOM_COMMAND(TARGET ${EXE_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/sax/test/test_sax_reader_1.in ${PROJECT_BINARY_DIR}/sax/test) + ADD_CUSTOM_COMMAND(TARGET ${EXE_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/sax/test/testin.xml ${PROJECT_BINARY_DIR}/sax/test) + ADD_TEST(${EXE_NAME}_TEST ${EXECUTABLE_OUTPUT_PATH}/${EXE_NAME}) + ENDIF() +ENDFOREACH() + + diff --git a/sax/test/m_canonicalize.f90 b/sax/test/m_canonicalize.f90 index 0edc0379..038deac3 100644 --- a/sax/test/m_canonicalize.f90 +++ b/sax/test/m_canonicalize.f90 @@ -41,7 +41,8 @@ subroutine begin_element_handler(URI, localname, name,attributes) type(dictionary_t), intent(in) :: attributes write(unit=*,fmt="(4a)") ">>Begin Element: {", URI, "}", localname - write(unit=*,fmt="(a,i2,a)") "--- ", len(attributes), " attributes:" + write(unit=*,fmt="(a,i2,a)") "--- ", getLength(attributes), " attributes:" +! write(unit=*,fmt="(a,i2,a)") "--- ", len(attributes), " attributes:" call print_dict(attributes) end subroutine begin_element_handler diff --git a/wcml/CMakeLists.txt b/wcml/CMakeLists.txt index b4eb3552..65e4011a 100644 --- a/wcml/CMakeLists.txt +++ b/wcml/CMakeLists.txt @@ -102,3 +102,7 @@ target_link_libraries( ${PROJECT_NAME}_utils ${PROJECT_NAME}_wxml ) + +IF(${BUILD_TESTING}) + ADD_SUBDIRECTORY(test) +ENDIF() diff --git a/wcml/test/CMakeLists.txt b/wcml/test/CMakeLists.txt new file mode 100644 index 00000000..7fc03e65 --- /dev/null +++ b/wcml/test/CMakeLists.txt @@ -0,0 +1,25 @@ + +################################################################# +# FoX Wxml tests +################################################################# + +FILE(GLOB_RECURSE TESTS_WCML_SRC *.f90 *.F90) + + +FOREACH(TEST_SRC ${TESTS_WCML_SRC}) + + GET_FILENAME_COMPONENT(EXE_NAME ${TEST_SRC} NAME_WE) + ADD_EXECUTABLE(${EXE_NAME} ${TEST_SRC}) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_wcml) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_wxml) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_common) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_fsys) + FOREACH (EXT_LIB ${EXT_LIBS}) + IF(DEFINED ${PROJECT_NAME}_ENABLE_${EXT_LIB} AND ${PROJECT_NAME}_ENABLE_${EXT_LIB} AND ${EXT_LIB}_FOUND) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${${EXT_LIB}_LIBRARIES}) + ENDIF() + ENDFOREACH() + ADD_CUSTOM_COMMAND(TARGET ${EXE_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/wcml/test/test_cmlDumpDec_1.input ${PROJECT_BINARY_DIR}/wcml/test) + ADD_TEST(${EXE_NAME}_TEST ${EXECUTABLE_OUTPUT_PATH}/${EXE_NAME}) +ENDFOREACH() + diff --git a/wkml/CMakeLists.txt b/wkml/CMakeLists.txt index b8990932..5d6be91f 100644 --- a/wkml/CMakeLists.txt +++ b/wkml/CMakeLists.txt @@ -38,3 +38,6 @@ target_link_libraries( ${PROJECT_NAME}_wxml ) +IF(${BUILD_TESTING}) + ADD_SUBDIRECTORY(test) +ENDIF() diff --git a/wkml/test/CMakeLists.txt b/wkml/test/CMakeLists.txt new file mode 100644 index 00000000..bfcb58a4 --- /dev/null +++ b/wkml/test/CMakeLists.txt @@ -0,0 +1,29 @@ + +################################################################# +# FoX Wkml tests +################################################################# + +FILE(GLOB_RECURSE TESTS_WKML_SRC *.f90 *.F90) + +FOREACH(TEST_SRC ${TESTS_WKML_SRC}) + + GET_FILENAME_COMPONENT(EXE_NAME ${TEST_SRC} NAME_WE) + IF(NOT (${EXE_NAME} STREQUAL "m_contours_test_data_sp")) + ADD_EXECUTABLE(${EXE_NAME} ${TEST_SRC}) + TARGET_SOURCES(${EXE_NAME} PUBLIC m_contours_test_data_sp.f90) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_wkml) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_wxml) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_common) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_fsys) + FOREACH (EXT_LIB ${EXT_LIBS}) + IF(DEFINED ${PROJECT_NAME}_ENABLE_${EXT_LIB} AND ${PROJECT_NAME}_ENABLE_${EXT_LIB} AND ${EXT_LIB}_FOUND) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${${EXT_LIB}_LIBRARIES}) + ENDIF() + ENDFOREACH() + ADD_CUSTOM_COMMAND(TARGET ${EXE_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/sax/test/testin.xml ${PROJECT_BINARY_DIR}/sax/test) + ADD_TEST(${EXE_NAME}_TEST ${EXECUTABLE_OUTPUT_PATH}/${EXE_NAME}) + ENDIF() +ENDFOREACH() + + + diff --git a/wxml/CMakeLists.txt b/wxml/CMakeLists.txt index 03c8f5a8..1a282f14 100644 --- a/wxml/CMakeLists.txt +++ b/wxml/CMakeLists.txt @@ -31,3 +31,7 @@ target_link_libraries( ${PROJECT_NAME}_common ${PROJECT_NAME}_fsys ) + +IF(${BUILD_TESTING}) + ADD_SUBDIRECTORY(test) +ENDIF() diff --git a/wxml/test/CMakeLists.txt b/wxml/test/CMakeLists.txt new file mode 100644 index 00000000..bee57660 --- /dev/null +++ b/wxml/test/CMakeLists.txt @@ -0,0 +1,24 @@ + +################################################################# +# FoX Wxml tests +################################################################# + +FILE(GLOB_RECURSE TESTS_WXML_SRC *.f90 *.F90) +SET(TESTS_WXML_SRC ${TESTS_WXML_SRC} PARENT_SCOPE) + +FOREACH(TEST_SRC ${TESTS_WXML_SRC}) + GET_FILENAME_COMPONENT(EXE_NAME ${TEST_SRC} NAME_WE) + ADD_EXECUTABLE(${EXE_NAME} ${TEST_SRC}) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_wxml) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_common) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${PROJECT_NAME}_fsys) + FOREACH (EXT_LIB ${EXT_LIBS}) + IF(DEFINED ${PROJECT_NAME}_ENABLE_${EXT_LIB} AND ${PROJECT_NAME}_ENABLE_${EXT_LIB} AND ${EXT_LIB}_FOUND) + TARGET_LINK_LIBRARIES(${EXE_NAME} ${${EXT_LIB}_LIBRARIES}) + ENDIF() + ENDFOREACH() + ADD_TEST(${EXE_NAME}_TEST ${EXECUTABLE_OUTPUT_PATH}/${EXE_NAME}) +ENDFOREACH() + + +