From c26008ccf3999156cab5a05172a04c562bed9cc8 Mon Sep 17 00:00:00 2001 From: Sebastien Barre Date: Fri, 18 Jan 2002 20:32:06 -0500 Subject: ENH: Increase test + coverage --- Tests/Complex/CMakeLists.txt | 24 +++++++--- Tests/Complex/Executable/CMakeLists.txt | 8 +++- Tests/Complex/Executable/complex.cxx | 40 +++++++++++++++- Tests/Complex/VarTests.cmake | 56 ++++++++++++++++++++++ Tests/Complex/VarTests.txt | 36 -------------- Tests/ComplexOneConfig/CMakeLists.txt | 24 +++++++--- Tests/ComplexOneConfig/Executable/CMakeLists.txt | 8 +++- Tests/ComplexOneConfig/Executable/complex.cxx | 40 +++++++++++++++- Tests/ComplexOneConfig/VarTests.cmake | 56 ++++++++++++++++++++++ Tests/ComplexOneConfig/VarTests.txt | 36 -------------- Tests/ComplexRelativePaths/CMakeLists.txt | 24 +++++++--- .../ComplexRelativePaths/Executable/CMakeLists.txt | 8 +++- Tests/ComplexRelativePaths/Executable/complex.cxx | 40 +++++++++++++++- Tests/ComplexRelativePaths/VarTests.cmake | 56 ++++++++++++++++++++++ Tests/ComplexRelativePaths/VarTests.txt | 36 -------------- 15 files changed, 357 insertions(+), 135 deletions(-) create mode 100644 Tests/Complex/VarTests.cmake delete mode 100644 Tests/Complex/VarTests.txt create mode 100644 Tests/ComplexOneConfig/VarTests.cmake delete mode 100644 Tests/ComplexOneConfig/VarTests.txt create mode 100644 Tests/ComplexRelativePaths/VarTests.cmake delete mode 100644 Tests/ComplexRelativePaths/VarTests.txt diff --git a/Tests/Complex/CMakeLists.txt b/Tests/Complex/CMakeLists.txt index 050cd3e..cae0377 100644 --- a/Tests/Complex/CMakeLists.txt +++ b/Tests/Complex/CMakeLists.txt @@ -12,7 +12,9 @@ ENDIF (CMAKE_ANSI_CXXFLAGS) ADD_DEFINITIONS(-DCMAKE_IS_FUN) -INCLUDE(${Complex_SOURCE_DIR}/VarTests.txt) +IF (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake) + INCLUDE(${Complex_SOURCE_DIR}/VarTests.cmake) +ENDIF (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake) LOAD_CACHE(${Complex_SOURCE_DIR}) @@ -53,13 +55,18 @@ SUBDIRS(Library Executable) SUBDIR_DEPENDS(Executable Library) # -# Exec program +# Exec program (TODO: test a result) # Increase coverage. # -OPTION(EXEC_PROGRAM "Test EXEC_PROGRAM" ON) -IF (EXEC_PROGRAM) - EXEC_PROGRAM("echo EXEC_PROGRAM") -ENDIF (EXEC_PROGRAM) +OPTION(NO_EXEC_PROGRAM "Do not test EXEC_PROGRAM" 0) +IF (NOT NO_EXEC_PROGRAM) + EXEC_PROGRAM("echo NO_EXEC_PROGRAM" "${Complex_BINARY_DIR}") +ELSE (NOT NO_EXEC_PROGRAM) + MESSAGE("Set this option ON") +ENDIF (NOT NO_EXEC_PROGRAM) + +MARK_AS_ADVANCED(NO_EXEC_PROGRAM) +MARK_AS_ADVANCED(CLEAR NO_EXEC_PROGRAM) # # More coverage @@ -78,6 +85,11 @@ INSTALL_FILES(/tmp .h ${Complex_BINARY_DIR}/cmTestConfigure.h) MAKE_DIRECTORY("${Complex_BINARY_DIR}/make_dir") # +# Testing +# +ENABLE_TESTING() + +# # Test Cable # CABLE_CLASS_SET(Float float) diff --git a/Tests/Complex/Executable/CMakeLists.txt b/Tests/Complex/Executable/CMakeLists.txt index 4bd1620..15808b4 100644 --- a/Tests/Complex/Executable/CMakeLists.txt +++ b/Tests/Complex/Executable/CMakeLists.txt @@ -14,7 +14,13 @@ FIND_LIBRARY(CMAKE_LIB TARGET_LINK_LIBRARIES(complex ${CMAKE_LIB}) LINK_LIBRARIES(${CMAKE_LIB}) -# More coverage +# +# Testing +# +ADD_TEST(complex ${Complex_BINARY_DIR}/bin/complex) +# +# More coverage +# INSTALL_TARGETS(/tmp complex) INSTALL_PROGRAMS(/tmp complex) diff --git a/Tests/Complex/Executable/complex.cxx b/Tests/Complex/Executable/complex.cxx index b2f5162..6a55b5c 100644 --- a/Tests/Complex/Executable/complex.cxx +++ b/Tests/Complex/Executable/complex.cxx @@ -106,6 +106,42 @@ int main() Passed("SHOULD_BE_DEFINED is defined."); #endif +#ifdef SHOULD_NOT_BE_DEFINED_AND + Failed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_AND is defined."); +#else + Passed("SHOULD_NOT_BE_DEFINED_AND is not defined."); +#endif + +#ifndef SHOULD_BE_DEFINED_AND + Failed("IF or SET is broken, SHOULD_BE_DEFINED_AND is not defined.\n"); +#else + Passed("SHOULD_BE_DEFINED_AND is defined."); +#endif + +#ifdef SHOULD_NOT_BE_DEFINED_OR + Failed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_OR is defined."); +#else + Passed("SHOULD_NOT_BE_DEFINED_OR is not defined."); +#endif + +#ifndef SHOULD_BE_DEFINED_OR + Failed("IF or SET is broken, SHOULD_BE_DEFINED_OR is not defined.\n"); +#else + Passed("SHOULD_BE_DEFINED_OR is defined."); +#endif + +#ifdef SHOULD_NOT_BE_DEFINED_MATCHES + Failed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_MATCHES is defined."); +#else + Passed("SHOULD_NOT_BE_DEFINED_MATCHES is not defined."); +#endif + +#ifndef SHOULD_BE_DEFINED_MATCHES + Failed("IF or SET is broken, SHOULD_BE_DEFINED_MATCHES is not defined.\n"); +#else + Passed("SHOULD_BE_DEFINED_MATCHES is defined."); +#endif + #ifndef ONE_VAR Failed("cmakedefine is broken, ONE_VAR is not defined."); #else @@ -188,7 +224,7 @@ int main() Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_NAME is not defined."); #else - if(strcmp(FILENAME_VAR_NAME, "VarTests.txt") != 0) + if(strcmp(FILENAME_VAR_NAME, "VarTests.cmake") != 0) { Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_NAME == ", FILENAME_VAR_NAME); @@ -203,7 +239,7 @@ int main() Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_EXT is not defined."); #else - if(strcmp(FILENAME_VAR_EXT, ".txt") != 0) + if(strcmp(FILENAME_VAR_EXT, ".cmake") != 0) { Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_EXT == ", FILENAME_VAR_EXT); diff --git a/Tests/Complex/VarTests.cmake b/Tests/Complex/VarTests.cmake new file mode 100644 index 0000000..ee3faf3 --- /dev/null +++ b/Tests/Complex/VarTests.cmake @@ -0,0 +1,56 @@ +SET (ZERO_VAR 0) + +IF(ZERO_VAR) + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED) +ELSE(ZERO_VAR) + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED) +ENDIF(ZERO_VAR) + +SET(ONE_VAR 1) + +VARIABLE_REQUIRES(ONE_VAR + ONE_VAR_IS_DEFINED ONE_VAR) + +SET (ONE_VAR2 1) + +IF(ONE_VAR AND ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_AND) +ELSE(ONE_VAR AND ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_AND) +ENDIF(ONE_VAR AND ONE_VAR2) + +IF(ZERO_VAR OR ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_OR) +ELSE(ZERO_VAR OR ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_OR) +ENDIF(ZERO_VAR OR ONE_VAR2) + +SET(STRING_VAR "CMake is great" CACHE STRING "test a cache variable") + +IF(STRING_VAR MATCHES "^CMake") + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_MATCHES) +ELSE(STRING_VAR MATCHES "^CMake") + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_MATCHES) +ENDIF(STRING_VAR MATCHES "^CMake") + +FOREACH (INDEX 1 2) + SET(FOREACH_VAR${INDEX} "VALUE${INDEX}") +ENDFOREACH(INDEX) + +FIND_FILE(FILENAME_VAR "VarTests.cmake" ${Complex_SOURCE_DIR}) + +GET_FILENAME_COMPONENT(FILENAME_VAR_PATH ${FILENAME_VAR} PATH) +GET_FILENAME_COMPONENT(FILENAME_VAR_PATH_NAME ${FILENAME_VAR_PATH} NAME) +GET_FILENAME_COMPONENT(FILENAME_VAR_NAME ${FILENAME_VAR} NAME) +GET_FILENAME_COMPONENT(FILENAME_VAR_EXT ${FILENAME_VAR} EXT) +GET_FILENAME_COMPONENT(FILENAME_VAR_NAME_WE ${FILENAME_VAR} NAME_WE) + +FIND_PATH(PATH_VAR "VarTests.cmake" ${Complex_SOURCE_DIR}) +GET_FILENAME_COMPONENT(PATH_VAR_NAME ${PATH_VAR} NAME) + +# Coverage only + +BUILD_COMMAND(BUILD_COMMAND_VAR ${CMAKE_MAKE_PROGRAM}) +BUILD_NAME(BUILD_NAME_VAR) +SITE_NAME(SITE_NAME_VAR) + diff --git a/Tests/Complex/VarTests.txt b/Tests/Complex/VarTests.txt deleted file mode 100644 index 0775636..0000000 --- a/Tests/Complex/VarTests.txt +++ /dev/null @@ -1,36 +0,0 @@ -SET (ZERO_VAR 0) - -IF(ZERO_VAR) - ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED) -ELSE(ZERO_VAR) - ADD_DEFINITIONS(-DSHOULD_BE_DEFINED) -ENDIF(ZERO_VAR) - -SET(ONE_VAR 1) - -VARIABLE_REQUIRES(ONE_VAR - ONE_VAR_IS_DEFINED ONE_VAR) - -SET(STRING_VAR "CMake is great" CACHE STRING "test a cache variable") - -FOREACH (INDEX 1 2) - SET(FOREACH_VAR${INDEX} "VALUE${INDEX}") -ENDFOREACH(INDEX) - -FIND_FILE(FILENAME_VAR "VarTests.txt" ${Complex_SOURCE_DIR}) - -GET_FILENAME_COMPONENT(FILENAME_VAR_PATH ${FILENAME_VAR} PATH) -GET_FILENAME_COMPONENT(FILENAME_VAR_PATH_NAME ${FILENAME_VAR_PATH} NAME) -GET_FILENAME_COMPONENT(FILENAME_VAR_NAME ${FILENAME_VAR} NAME) -GET_FILENAME_COMPONENT(FILENAME_VAR_EXT ${FILENAME_VAR} EXT) -GET_FILENAME_COMPONENT(FILENAME_VAR_NAME_WE ${FILENAME_VAR} NAME_WE) - -FIND_PATH(PATH_VAR "VarTests.txt" ${Complex_SOURCE_DIR}) -GET_FILENAME_COMPONENT(PATH_VAR_NAME ${PATH_VAR} NAME) - -# Coverage only - -BUILD_COMMAND(BUILD_COMMAND_VAR ${CMAKE_MAKE_PROGRAM}) -BUILD_NAME(BUILD_NAME_VAR) -SITE_NAME(SITE_NAME_VAR) - diff --git a/Tests/ComplexOneConfig/CMakeLists.txt b/Tests/ComplexOneConfig/CMakeLists.txt index 050cd3e..cae0377 100644 --- a/Tests/ComplexOneConfig/CMakeLists.txt +++ b/Tests/ComplexOneConfig/CMakeLists.txt @@ -12,7 +12,9 @@ ENDIF (CMAKE_ANSI_CXXFLAGS) ADD_DEFINITIONS(-DCMAKE_IS_FUN) -INCLUDE(${Complex_SOURCE_DIR}/VarTests.txt) +IF (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake) + INCLUDE(${Complex_SOURCE_DIR}/VarTests.cmake) +ENDIF (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake) LOAD_CACHE(${Complex_SOURCE_DIR}) @@ -53,13 +55,18 @@ SUBDIRS(Library Executable) SUBDIR_DEPENDS(Executable Library) # -# Exec program +# Exec program (TODO: test a result) # Increase coverage. # -OPTION(EXEC_PROGRAM "Test EXEC_PROGRAM" ON) -IF (EXEC_PROGRAM) - EXEC_PROGRAM("echo EXEC_PROGRAM") -ENDIF (EXEC_PROGRAM) +OPTION(NO_EXEC_PROGRAM "Do not test EXEC_PROGRAM" 0) +IF (NOT NO_EXEC_PROGRAM) + EXEC_PROGRAM("echo NO_EXEC_PROGRAM" "${Complex_BINARY_DIR}") +ELSE (NOT NO_EXEC_PROGRAM) + MESSAGE("Set this option ON") +ENDIF (NOT NO_EXEC_PROGRAM) + +MARK_AS_ADVANCED(NO_EXEC_PROGRAM) +MARK_AS_ADVANCED(CLEAR NO_EXEC_PROGRAM) # # More coverage @@ -78,6 +85,11 @@ INSTALL_FILES(/tmp .h ${Complex_BINARY_DIR}/cmTestConfigure.h) MAKE_DIRECTORY("${Complex_BINARY_DIR}/make_dir") # +# Testing +# +ENABLE_TESTING() + +# # Test Cable # CABLE_CLASS_SET(Float float) diff --git a/Tests/ComplexOneConfig/Executable/CMakeLists.txt b/Tests/ComplexOneConfig/Executable/CMakeLists.txt index 4bd1620..15808b4 100644 --- a/Tests/ComplexOneConfig/Executable/CMakeLists.txt +++ b/Tests/ComplexOneConfig/Executable/CMakeLists.txt @@ -14,7 +14,13 @@ FIND_LIBRARY(CMAKE_LIB TARGET_LINK_LIBRARIES(complex ${CMAKE_LIB}) LINK_LIBRARIES(${CMAKE_LIB}) -# More coverage +# +# Testing +# +ADD_TEST(complex ${Complex_BINARY_DIR}/bin/complex) +# +# More coverage +# INSTALL_TARGETS(/tmp complex) INSTALL_PROGRAMS(/tmp complex) diff --git a/Tests/ComplexOneConfig/Executable/complex.cxx b/Tests/ComplexOneConfig/Executable/complex.cxx index b2f5162..6a55b5c 100644 --- a/Tests/ComplexOneConfig/Executable/complex.cxx +++ b/Tests/ComplexOneConfig/Executable/complex.cxx @@ -106,6 +106,42 @@ int main() Passed("SHOULD_BE_DEFINED is defined."); #endif +#ifdef SHOULD_NOT_BE_DEFINED_AND + Failed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_AND is defined."); +#else + Passed("SHOULD_NOT_BE_DEFINED_AND is not defined."); +#endif + +#ifndef SHOULD_BE_DEFINED_AND + Failed("IF or SET is broken, SHOULD_BE_DEFINED_AND is not defined.\n"); +#else + Passed("SHOULD_BE_DEFINED_AND is defined."); +#endif + +#ifdef SHOULD_NOT_BE_DEFINED_OR + Failed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_OR is defined."); +#else + Passed("SHOULD_NOT_BE_DEFINED_OR is not defined."); +#endif + +#ifndef SHOULD_BE_DEFINED_OR + Failed("IF or SET is broken, SHOULD_BE_DEFINED_OR is not defined.\n"); +#else + Passed("SHOULD_BE_DEFINED_OR is defined."); +#endif + +#ifdef SHOULD_NOT_BE_DEFINED_MATCHES + Failed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_MATCHES is defined."); +#else + Passed("SHOULD_NOT_BE_DEFINED_MATCHES is not defined."); +#endif + +#ifndef SHOULD_BE_DEFINED_MATCHES + Failed("IF or SET is broken, SHOULD_BE_DEFINED_MATCHES is not defined.\n"); +#else + Passed("SHOULD_BE_DEFINED_MATCHES is defined."); +#endif + #ifndef ONE_VAR Failed("cmakedefine is broken, ONE_VAR is not defined."); #else @@ -188,7 +224,7 @@ int main() Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_NAME is not defined."); #else - if(strcmp(FILENAME_VAR_NAME, "VarTests.txt") != 0) + if(strcmp(FILENAME_VAR_NAME, "VarTests.cmake") != 0) { Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_NAME == ", FILENAME_VAR_NAME); @@ -203,7 +239,7 @@ int main() Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_EXT is not defined."); #else - if(strcmp(FILENAME_VAR_EXT, ".txt") != 0) + if(strcmp(FILENAME_VAR_EXT, ".cmake") != 0) { Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_EXT == ", FILENAME_VAR_EXT); diff --git a/Tests/ComplexOneConfig/VarTests.cmake b/Tests/ComplexOneConfig/VarTests.cmake new file mode 100644 index 0000000..ee3faf3 --- /dev/null +++ b/Tests/ComplexOneConfig/VarTests.cmake @@ -0,0 +1,56 @@ +SET (ZERO_VAR 0) + +IF(ZERO_VAR) + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED) +ELSE(ZERO_VAR) + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED) +ENDIF(ZERO_VAR) + +SET(ONE_VAR 1) + +VARIABLE_REQUIRES(ONE_VAR + ONE_VAR_IS_DEFINED ONE_VAR) + +SET (ONE_VAR2 1) + +IF(ONE_VAR AND ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_AND) +ELSE(ONE_VAR AND ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_AND) +ENDIF(ONE_VAR AND ONE_VAR2) + +IF(ZERO_VAR OR ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_OR) +ELSE(ZERO_VAR OR ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_OR) +ENDIF(ZERO_VAR OR ONE_VAR2) + +SET(STRING_VAR "CMake is great" CACHE STRING "test a cache variable") + +IF(STRING_VAR MATCHES "^CMake") + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_MATCHES) +ELSE(STRING_VAR MATCHES "^CMake") + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_MATCHES) +ENDIF(STRING_VAR MATCHES "^CMake") + +FOREACH (INDEX 1 2) + SET(FOREACH_VAR${INDEX} "VALUE${INDEX}") +ENDFOREACH(INDEX) + +FIND_FILE(FILENAME_VAR "VarTests.cmake" ${Complex_SOURCE_DIR}) + +GET_FILENAME_COMPONENT(FILENAME_VAR_PATH ${FILENAME_VAR} PATH) +GET_FILENAME_COMPONENT(FILENAME_VAR_PATH_NAME ${FILENAME_VAR_PATH} NAME) +GET_FILENAME_COMPONENT(FILENAME_VAR_NAME ${FILENAME_VAR} NAME) +GET_FILENAME_COMPONENT(FILENAME_VAR_EXT ${FILENAME_VAR} EXT) +GET_FILENAME_COMPONENT(FILENAME_VAR_NAME_WE ${FILENAME_VAR} NAME_WE) + +FIND_PATH(PATH_VAR "VarTests.cmake" ${Complex_SOURCE_DIR}) +GET_FILENAME_COMPONENT(PATH_VAR_NAME ${PATH_VAR} NAME) + +# Coverage only + +BUILD_COMMAND(BUILD_COMMAND_VAR ${CMAKE_MAKE_PROGRAM}) +BUILD_NAME(BUILD_NAME_VAR) +SITE_NAME(SITE_NAME_VAR) + diff --git a/Tests/ComplexOneConfig/VarTests.txt b/Tests/ComplexOneConfig/VarTests.txt deleted file mode 100644 index 0775636..0000000 --- a/Tests/ComplexOneConfig/VarTests.txt +++ /dev/null @@ -1,36 +0,0 @@ -SET (ZERO_VAR 0) - -IF(ZERO_VAR) - ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED) -ELSE(ZERO_VAR) - ADD_DEFINITIONS(-DSHOULD_BE_DEFINED) -ENDIF(ZERO_VAR) - -SET(ONE_VAR 1) - -VARIABLE_REQUIRES(ONE_VAR - ONE_VAR_IS_DEFINED ONE_VAR) - -SET(STRING_VAR "CMake is great" CACHE STRING "test a cache variable") - -FOREACH (INDEX 1 2) - SET(FOREACH_VAR${INDEX} "VALUE${INDEX}") -ENDFOREACH(INDEX) - -FIND_FILE(FILENAME_VAR "VarTests.txt" ${Complex_SOURCE_DIR}) - -GET_FILENAME_COMPONENT(FILENAME_VAR_PATH ${FILENAME_VAR} PATH) -GET_FILENAME_COMPONENT(FILENAME_VAR_PATH_NAME ${FILENAME_VAR_PATH} NAME) -GET_FILENAME_COMPONENT(FILENAME_VAR_NAME ${FILENAME_VAR} NAME) -GET_FILENAME_COMPONENT(FILENAME_VAR_EXT ${FILENAME_VAR} EXT) -GET_FILENAME_COMPONENT(FILENAME_VAR_NAME_WE ${FILENAME_VAR} NAME_WE) - -FIND_PATH(PATH_VAR "VarTests.txt" ${Complex_SOURCE_DIR}) -GET_FILENAME_COMPONENT(PATH_VAR_NAME ${PATH_VAR} NAME) - -# Coverage only - -BUILD_COMMAND(BUILD_COMMAND_VAR ${CMAKE_MAKE_PROGRAM}) -BUILD_NAME(BUILD_NAME_VAR) -SITE_NAME(SITE_NAME_VAR) - diff --git a/Tests/ComplexRelativePaths/CMakeLists.txt b/Tests/ComplexRelativePaths/CMakeLists.txt index 050cd3e..cae0377 100644 --- a/Tests/ComplexRelativePaths/CMakeLists.txt +++ b/Tests/ComplexRelativePaths/CMakeLists.txt @@ -12,7 +12,9 @@ ENDIF (CMAKE_ANSI_CXXFLAGS) ADD_DEFINITIONS(-DCMAKE_IS_FUN) -INCLUDE(${Complex_SOURCE_DIR}/VarTests.txt) +IF (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake) + INCLUDE(${Complex_SOURCE_DIR}/VarTests.cmake) +ENDIF (EXISTS ${Complex_SOURCE_DIR}/VarTests.cmake) LOAD_CACHE(${Complex_SOURCE_DIR}) @@ -53,13 +55,18 @@ SUBDIRS(Library Executable) SUBDIR_DEPENDS(Executable Library) # -# Exec program +# Exec program (TODO: test a result) # Increase coverage. # -OPTION(EXEC_PROGRAM "Test EXEC_PROGRAM" ON) -IF (EXEC_PROGRAM) - EXEC_PROGRAM("echo EXEC_PROGRAM") -ENDIF (EXEC_PROGRAM) +OPTION(NO_EXEC_PROGRAM "Do not test EXEC_PROGRAM" 0) +IF (NOT NO_EXEC_PROGRAM) + EXEC_PROGRAM("echo NO_EXEC_PROGRAM" "${Complex_BINARY_DIR}") +ELSE (NOT NO_EXEC_PROGRAM) + MESSAGE("Set this option ON") +ENDIF (NOT NO_EXEC_PROGRAM) + +MARK_AS_ADVANCED(NO_EXEC_PROGRAM) +MARK_AS_ADVANCED(CLEAR NO_EXEC_PROGRAM) # # More coverage @@ -78,6 +85,11 @@ INSTALL_FILES(/tmp .h ${Complex_BINARY_DIR}/cmTestConfigure.h) MAKE_DIRECTORY("${Complex_BINARY_DIR}/make_dir") # +# Testing +# +ENABLE_TESTING() + +# # Test Cable # CABLE_CLASS_SET(Float float) diff --git a/Tests/ComplexRelativePaths/Executable/CMakeLists.txt b/Tests/ComplexRelativePaths/Executable/CMakeLists.txt index 4bd1620..15808b4 100644 --- a/Tests/ComplexRelativePaths/Executable/CMakeLists.txt +++ b/Tests/ComplexRelativePaths/Executable/CMakeLists.txt @@ -14,7 +14,13 @@ FIND_LIBRARY(CMAKE_LIB TARGET_LINK_LIBRARIES(complex ${CMAKE_LIB}) LINK_LIBRARIES(${CMAKE_LIB}) -# More coverage +# +# Testing +# +ADD_TEST(complex ${Complex_BINARY_DIR}/bin/complex) +# +# More coverage +# INSTALL_TARGETS(/tmp complex) INSTALL_PROGRAMS(/tmp complex) diff --git a/Tests/ComplexRelativePaths/Executable/complex.cxx b/Tests/ComplexRelativePaths/Executable/complex.cxx index b2f5162..6a55b5c 100644 --- a/Tests/ComplexRelativePaths/Executable/complex.cxx +++ b/Tests/ComplexRelativePaths/Executable/complex.cxx @@ -106,6 +106,42 @@ int main() Passed("SHOULD_BE_DEFINED is defined."); #endif +#ifdef SHOULD_NOT_BE_DEFINED_AND + Failed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_AND is defined."); +#else + Passed("SHOULD_NOT_BE_DEFINED_AND is not defined."); +#endif + +#ifndef SHOULD_BE_DEFINED_AND + Failed("IF or SET is broken, SHOULD_BE_DEFINED_AND is not defined.\n"); +#else + Passed("SHOULD_BE_DEFINED_AND is defined."); +#endif + +#ifdef SHOULD_NOT_BE_DEFINED_OR + Failed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_OR is defined."); +#else + Passed("SHOULD_NOT_BE_DEFINED_OR is not defined."); +#endif + +#ifndef SHOULD_BE_DEFINED_OR + Failed("IF or SET is broken, SHOULD_BE_DEFINED_OR is not defined.\n"); +#else + Passed("SHOULD_BE_DEFINED_OR is defined."); +#endif + +#ifdef SHOULD_NOT_BE_DEFINED_MATCHES + Failed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_MATCHES is defined."); +#else + Passed("SHOULD_NOT_BE_DEFINED_MATCHES is not defined."); +#endif + +#ifndef SHOULD_BE_DEFINED_MATCHES + Failed("IF or SET is broken, SHOULD_BE_DEFINED_MATCHES is not defined.\n"); +#else + Passed("SHOULD_BE_DEFINED_MATCHES is defined."); +#endif + #ifndef ONE_VAR Failed("cmakedefine is broken, ONE_VAR is not defined."); #else @@ -188,7 +224,7 @@ int main() Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_NAME is not defined."); #else - if(strcmp(FILENAME_VAR_NAME, "VarTests.txt") != 0) + if(strcmp(FILENAME_VAR_NAME, "VarTests.cmake") != 0) { Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_NAME == ", FILENAME_VAR_NAME); @@ -203,7 +239,7 @@ int main() Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_EXT is not defined."); #else - if(strcmp(FILENAME_VAR_EXT, ".txt") != 0) + if(strcmp(FILENAME_VAR_EXT, ".cmake") != 0) { Failed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, " "FILENAME_VAR_EXT == ", FILENAME_VAR_EXT); diff --git a/Tests/ComplexRelativePaths/VarTests.cmake b/Tests/ComplexRelativePaths/VarTests.cmake new file mode 100644 index 0000000..ee3faf3 --- /dev/null +++ b/Tests/ComplexRelativePaths/VarTests.cmake @@ -0,0 +1,56 @@ +SET (ZERO_VAR 0) + +IF(ZERO_VAR) + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED) +ELSE(ZERO_VAR) + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED) +ENDIF(ZERO_VAR) + +SET(ONE_VAR 1) + +VARIABLE_REQUIRES(ONE_VAR + ONE_VAR_IS_DEFINED ONE_VAR) + +SET (ONE_VAR2 1) + +IF(ONE_VAR AND ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_AND) +ELSE(ONE_VAR AND ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_AND) +ENDIF(ONE_VAR AND ONE_VAR2) + +IF(ZERO_VAR OR ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_OR) +ELSE(ZERO_VAR OR ONE_VAR2) + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_OR) +ENDIF(ZERO_VAR OR ONE_VAR2) + +SET(STRING_VAR "CMake is great" CACHE STRING "test a cache variable") + +IF(STRING_VAR MATCHES "^CMake") + ADD_DEFINITIONS(-DSHOULD_BE_DEFINED_MATCHES) +ELSE(STRING_VAR MATCHES "^CMake") + ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED_MATCHES) +ENDIF(STRING_VAR MATCHES "^CMake") + +FOREACH (INDEX 1 2) + SET(FOREACH_VAR${INDEX} "VALUE${INDEX}") +ENDFOREACH(INDEX) + +FIND_FILE(FILENAME_VAR "VarTests.cmake" ${Complex_SOURCE_DIR}) + +GET_FILENAME_COMPONENT(FILENAME_VAR_PATH ${FILENAME_VAR} PATH) +GET_FILENAME_COMPONENT(FILENAME_VAR_PATH_NAME ${FILENAME_VAR_PATH} NAME) +GET_FILENAME_COMPONENT(FILENAME_VAR_NAME ${FILENAME_VAR} NAME) +GET_FILENAME_COMPONENT(FILENAME_VAR_EXT ${FILENAME_VAR} EXT) +GET_FILENAME_COMPONENT(FILENAME_VAR_NAME_WE ${FILENAME_VAR} NAME_WE) + +FIND_PATH(PATH_VAR "VarTests.cmake" ${Complex_SOURCE_DIR}) +GET_FILENAME_COMPONENT(PATH_VAR_NAME ${PATH_VAR} NAME) + +# Coverage only + +BUILD_COMMAND(BUILD_COMMAND_VAR ${CMAKE_MAKE_PROGRAM}) +BUILD_NAME(BUILD_NAME_VAR) +SITE_NAME(SITE_NAME_VAR) + diff --git a/Tests/ComplexRelativePaths/VarTests.txt b/Tests/ComplexRelativePaths/VarTests.txt deleted file mode 100644 index 0775636..0000000 --- a/Tests/ComplexRelativePaths/VarTests.txt +++ /dev/null @@ -1,36 +0,0 @@ -SET (ZERO_VAR 0) - -IF(ZERO_VAR) - ADD_DEFINITIONS(-DSHOULD_NOT_BE_DEFINED) -ELSE(ZERO_VAR) - ADD_DEFINITIONS(-DSHOULD_BE_DEFINED) -ENDIF(ZERO_VAR) - -SET(ONE_VAR 1) - -VARIABLE_REQUIRES(ONE_VAR - ONE_VAR_IS_DEFINED ONE_VAR) - -SET(STRING_VAR "CMake is great" CACHE STRING "test a cache variable") - -FOREACH (INDEX 1 2) - SET(FOREACH_VAR${INDEX} "VALUE${INDEX}") -ENDFOREACH(INDEX) - -FIND_FILE(FILENAME_VAR "VarTests.txt" ${Complex_SOURCE_DIR}) - -GET_FILENAME_COMPONENT(FILENAME_VAR_PATH ${FILENAME_VAR} PATH) -GET_FILENAME_COMPONENT(FILENAME_VAR_PATH_NAME ${FILENAME_VAR_PATH} NAME) -GET_FILENAME_COMPONENT(FILENAME_VAR_NAME ${FILENAME_VAR} NAME) -GET_FILENAME_COMPONENT(FILENAME_VAR_EXT ${FILENAME_VAR} EXT) -GET_FILENAME_COMPONENT(FILENAME_VAR_NAME_WE ${FILENAME_VAR} NAME_WE) - -FIND_PATH(PATH_VAR "VarTests.txt" ${Complex_SOURCE_DIR}) -GET_FILENAME_COMPONENT(PATH_VAR_NAME ${PATH_VAR} NAME) - -# Coverage only - -BUILD_COMMAND(BUILD_COMMAND_VAR ${CMAKE_MAKE_PROGRAM}) -BUILD_NAME(BUILD_NAME_VAR) -SITE_NAME(SITE_NAME_VAR) - -- cgit v0.12