summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-12-17 15:31:19 (GMT)
committerBrad King <brad.king@kitware.com>2010-12-17 15:31:19 (GMT)
commit9bcaff02ff066e9bdd69e3e1e3134aa65c53c121 (patch)
tree2f46b8a3e84e07b51b20c70065c8a1c26ad47fd5 /Tests
parent544d0c37742a068fa07b265380315a25af3ae9f3 (diff)
parent3d13502c986e43f070366d04891c8a3da05e2cb8 (diff)
downloadCMake-9bcaff02ff066e9bdd69e3e1e3134aa65c53c121.zip
CMake-9bcaff02ff066e9bdd69e3e1e3134aa65c53c121.tar.gz
CMake-9bcaff02ff066e9bdd69e3e1e3134aa65c53c121.tar.bz2
Merge branch 'cmake-guiRememberAdvancedCheckbox' into dev/strict-mode
Conflicts: Source/QtDialog/CMakeSetupDialog.cxx
Diffstat (limited to 'Tests')
-rw-r--r--Tests/CMakeLists.txt10
-rw-r--r--Tests/CustomCommand/CMakeLists.txt24
-rw-r--r--Tests/CxxOnly/CMakeLists.txt7
-rw-r--r--Tests/CxxOnly/cxxonly.cxx6
-rw-r--r--Tests/CxxOnly/test.CPP1
-rw-r--r--Tests/Dependency/Four/CMakeLists.txt3
-rw-r--r--Tests/Dependency/Four/FourSrc.c1
-rw-r--r--Tests/ExternalProject/CMakeLists.txt45
-rw-r--r--Tests/FunctionTest/CMakeLists.txt8
-rw-r--r--Tests/MissingSourceFile/CMakeLists.txt3
10 files changed, 99 insertions, 9 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index c421e69..5471052 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -129,6 +129,9 @@ IF(BUILD_TESTING)
ADD_TEST_MACRO(MathTest MathTest)
ADD_TEST_MACRO(Simple Simple)
ADD_TEST_MACRO(PreOrder PreOrder)
+ ADD_TEST_MACRO(MissingSourceFile MissingSourceFile)
+ SET_TESTS_PROPERTIES(MissingSourceFile PROPERTIES
+ PASS_REGULAR_EXPRESSION "CMake Error at CMakeLists.txt:3 \\(add_executable\\):[ \r\n]*Cannot find source file \"MissingSourceFile.c\"")
ADD_TEST_MACRO(COnly COnly)
ADD_TEST_MACRO(CxxOnly CxxOnly)
ADD_TEST_MACRO(IPO COnly/COnly)
@@ -1401,6 +1404,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
--output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log"
)
+ ADD_TEST(CTestTestPrintLabels ${CMAKE_CTEST_COMMAND} --print-labels)
+ SET_TESTS_PROPERTIES(CTestTestPrintLabels PROPERTIES LABELS "Label1;Label2")
+ SET_TESTS_PROPERTIES(CTestTestPrintLabels PROPERTIES PASS_REGULAR_EXPRESSION
+ "All Labels:.* Label1.* Label2")
+
CONFIGURE_FILE(
"${CMake_SOURCE_DIR}/Tests/CTestTestResourceLock/test.cmake.in"
"${CMake_BINARY_DIR}/Tests/CTestTestResourceLock/test.cmake"
@@ -1711,7 +1719,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
ENDIF()
IF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode")
- INCLUDE(FindJava)
+ find_package(Java QUIET)
IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH)
FIND_FILE(JNI_H jni.h
diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt
index 4fc9fb5..76208d4 100644
--- a/Tests/CustomCommand/CMakeLists.txt
+++ b/Tests/CustomCommand/CMakeLists.txt
@@ -9,12 +9,16 @@ ADD_SUBDIRECTORY(GeneratedHeader)
#
# Lib and exe path
#
-SET (LIBRARY_OUTPUT_PATH
- ${PROJECT_BINARY_DIR}/bin/ CACHE INTERNAL
+IF(NOT DEFINED bin_dir)
+ SET(bin_dir "bin")
+ENDIF()
+
+SET (LIBRARY_OUTPUT_PATH
+ ${PROJECT_BINARY_DIR}/${bin_dir} CACHE INTERNAL
"Single output directory for building all libraries.")
-SET (EXECUTABLE_OUTPUT_PATH
- ${PROJECT_BINARY_DIR}/bin/ CACHE INTERNAL
+SET (EXECUTABLE_OUTPUT_PATH
+ ${PROJECT_BINARY_DIR}/${bin_dir} CACHE INTERNAL
"Single output directory for building all executables.")
################################################################
@@ -220,7 +224,12 @@ ADD_CUSTOM_COMMAND(OUTPUT gen_redirect.c
##############################################################################
# Test non-trivial command line arguments in custom commands.
SET(EXPECTED_ARGUMENTS)
+SET(CHECK_ARGS)
+IF(NOT MSVC71)
+ SET(CHECK_ARGS -DPATH=c:/posix/path)
+ENDIF()
SET(CHECK_ARGS
+ ${CHECK_ARGS}
c:/posix/path
c:\\windows\\path
'single-quotes'
@@ -359,13 +368,16 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/check_command_line.c.in
@ONLY IMMEDIATE)
ADD_EXECUTABLE(check_command_line
${CMAKE_CURRENT_BINARY_DIR}/check_command_line.c)
+SET(output_name "check_command_line")
+SET_PROPERTY(TARGET check_command_line
+ PROPERTY OUTPUT_NAME ${output_name})
# SET_TARGET_PROPERTIES(check_command_line PROPERTIES
# COMPILE_FLAGS -DCHECK_COMMAND_LINE_VERBOSE)
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/command_line_check
COMMAND ${CMAKE_COMMAND} -DMARK_FILE=${CMAKE_CURRENT_BINARY_DIR}/check_mark.txt
-P ${CMAKE_CURRENT_SOURCE_DIR}/check_mark.cmake
- COMMAND ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/check_command_line
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/${output_name}
${CHECK_ARGS} ""
VERBATIM
COMMENT "Checking custom command line escapes (single'quote)"
@@ -375,7 +387,7 @@ SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/command_line_check
ADD_CUSTOM_TARGET(do_check_command_line ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/command_line_check
COMMAND ${CMAKE_COMMAND} -E echo "Checking custom target command escapes"
- COMMAND ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/check_command_line
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/${output_name}
${CHECK_ARGS} ""
VERBATIM
COMMENT "Checking custom target command line escapes ($dollar-signs$)"
diff --git a/Tests/CxxOnly/CMakeLists.txt b/Tests/CxxOnly/CMakeLists.txt
index bfc8271..5d27890 100644
--- a/Tests/CxxOnly/CMakeLists.txt
+++ b/Tests/CxxOnly/CMakeLists.txt
@@ -2,7 +2,10 @@
project (CxxOnly CXX)
set(CMAKE_DEBUG_POSTFIX "_test_debug_postfix")
-add_library(testcxx1 STATIC libcxx1.cxx)
+if(WIN32)
+ set(EXTRA_SRCS test.CPP)
+endif()
+add_library(testcxx1.my STATIC libcxx1.cxx ${EXTRA_SRCS})
add_library(testcxx2 SHARED libcxx2.cxx)
add_executable (CxxOnly cxxonly.cxx)
-target_link_libraries(CxxOnly testcxx1 testcxx2)
+target_link_libraries(CxxOnly testcxx1.my testcxx2)
diff --git a/Tests/CxxOnly/cxxonly.cxx b/Tests/CxxOnly/cxxonly.cxx
index 99ccf3b..9cf6f2d 100644
--- a/Tests/CxxOnly/cxxonly.cxx
+++ b/Tests/CxxOnly/cxxonly.cxx
@@ -1,10 +1,16 @@
#include "libcxx1.h"
#include "libcxx2.h"
+#ifdef _MSC_VER
+extern int testCPP;
+#endif
#include <stdio.h>
int main ()
{
+#ifdef _MSC_VER
+ testCPP = 1;
+#endif
if ( LibCxx1Class::Method() != 2.0 )
{
printf("Problem with libcxx1\n");
diff --git a/Tests/CxxOnly/test.CPP b/Tests/CxxOnly/test.CPP
new file mode 100644
index 0000000..8a3cde2
--- /dev/null
+++ b/Tests/CxxOnly/test.CPP
@@ -0,0 +1 @@
+int testCPP;
diff --git a/Tests/Dependency/Four/CMakeLists.txt b/Tests/Dependency/Four/CMakeLists.txt
index ba3711f..df0f162 100644
--- a/Tests/Dependency/Four/CMakeLists.txt
+++ b/Tests/Dependency/Four/CMakeLists.txt
@@ -1,3 +1,6 @@
+INCLUDE_DIRECTORIES(${Dependency_BINARY_DIR}/Two)
ADD_LIBRARY( Four FourSrc.c )
TARGET_LINK_LIBRARIES( Four One Two NoDepA )
+# TwoCustom must build before Four.
+ADD_DEPENDENCIES(Four TwoCustom)
diff --git a/Tests/Dependency/Four/FourSrc.c b/Tests/Dependency/Four/FourSrc.c
index e8fefcd..23a66a4 100644
--- a/Tests/Dependency/Four/FourSrc.c
+++ b/Tests/Dependency/Four/FourSrc.c
@@ -1,3 +1,4 @@
+#include <two-test.h> /* Requires TwoCustom to be built first. */
void NoDepAFunction();
void OneFunction();
void TwoFunction();
diff --git a/Tests/ExternalProject/CMakeLists.txt b/Tests/ExternalProject/CMakeLists.txt
index 587cf57..bf90a52 100644
--- a/Tests/ExternalProject/CMakeLists.txt
+++ b/Tests/ExternalProject/CMakeLists.txt
@@ -7,6 +7,9 @@ find_package(CVS)
find_package(Subversion)
find_package(Git)
+set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER
+ "CMakePredefinedTargets-in-ExternalProjectTest")
+
set(base "${CMAKE_BINARY_DIR}/CMakeExternals")
set(binary_base "${base}/Build")
set_property(DIRECTORY PROPERTY EP_BASE ${base})
@@ -42,6 +45,22 @@ endif()
# Empty projects that test all the known ExternalProject_Add argument key words:
#
+set(proj AAA-TestAlphabetization)
+ExternalProject_Add(${proj}
+ BUILD_COMMAND ""
+ CONFIGURE_COMMAND ""
+ DOWNLOAD_COMMAND ""
+ INSTALL_COMMAND ""
+)
+
+set(proj ZZZ-TestAlphabetization)
+ExternalProject_Add(${proj}
+ BUILD_COMMAND ""
+ CONFIGURE_COMMAND ""
+ DOWNLOAD_COMMAND ""
+ INSTALL_COMMAND ""
+)
+
set(proj MinimalNoOpProject)
ExternalProject_Add(${proj}
BUILD_COMMAND ""
@@ -71,6 +90,7 @@ ExternalProject_Add(${proj}
URL_MD5 ""
UPDATE_COMMAND ""
)
+set_property(TARGET ${proj} PROPERTY FOLDER "")
# Local DIR:
@@ -83,6 +103,7 @@ if(can_build_tutorial_step5)
TEST_BEFORE_INSTALL 1
LOG_INSTALL 1
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "Local")
ExternalProject_Get_Property(${proj} install_dir)
set(TutorialStep5_install_dir ${install_dir})
@@ -93,6 +114,7 @@ if(can_build_tutorial_step5)
TEST_AFTER_INSTALL 1
LOG_TEST 1
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "Local")
endif()
@@ -110,6 +132,7 @@ ExternalProject_Add(${proj}
INSTALL_COMMAND ""
LOG_CONFIGURE 1
)
+set_property(TARGET ${proj} PROPERTY FOLDER "Local/TAR")
set(proj TutorialStep1-LocalNoDirTAR)
ExternalProject_Add(${proj}
@@ -120,6 +143,7 @@ ExternalProject_Add(${proj}
-DTEST_LIST:STRING=1@@2@@3
INSTALL_COMMAND ""
)
+set_property(TARGET ${proj} PROPERTY FOLDER "Local/TAR")
ExternalProject_Add_Step(${proj} mypatch
COMMAND ${CMAKE_COMMAND} -E echo "This is a custom external project step."
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/Step1Patch.cmake
@@ -139,6 +163,7 @@ ExternalProject_Add(${proj}
INSTALL_COMMAND ""
LOG_BUILD 1
)
+set_property(TARGET ${proj} PROPERTY FOLDER "Local/TGZ")
set(proj TutorialStep1-LocalNoDirTGZ)
ExternalProject_Add(${proj}
@@ -148,6 +173,7 @@ ExternalProject_Add(${proj}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
INSTALL_COMMAND ""
)
+set_property(TARGET ${proj} PROPERTY FOLDER "Local/TGZ")
# Local BZ2:
@@ -164,6 +190,7 @@ ExternalProject_Add(${proj}
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
+set_property(TARGET ${proj} PROPERTY FOLDER "Local/BZ2")
set(proj TutorialStep1-LocalNoDirBZ2)
ExternalProject_Add(${proj}
@@ -172,6 +199,7 @@ ExternalProject_Add(${proj}
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
+set_property(TARGET ${proj} PROPERTY FOLDER "Local/BZ2")
# Local ZIP:
@@ -188,6 +216,7 @@ ExternalProject_Add(${proj}
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
+set_property(TARGET ${proj} PROPERTY FOLDER "Local/ZIP")
set(proj TutorialStep1-LocalNoDirZIP)
ExternalProject_Add(${proj}
@@ -196,6 +225,7 @@ ExternalProject_Add(${proj}
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
+set_property(TARGET ${proj} PROPERTY FOLDER "Local/ZIP")
# CVS-based tests:
@@ -227,6 +257,8 @@ if(do_cvs_tests)
CONFIGURE_COMMAND "${CVS_EXECUTABLE}" --version
INSTALL_COMMAND ""
)
+ set_property(TARGET ${proj}
+ PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing")
# CVS by date stamp:
#
@@ -241,6 +273,7 @@ if(do_cvs_tests)
INSTALL_COMMAND ""
DEPENDS "SetupLocalCVSRepository"
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "CVS")
# CVS by tag:
#
@@ -255,6 +288,7 @@ if(do_cvs_tests)
INSTALL_COMMAND ""
DEPENDS "SetupLocalCVSRepository"
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "CVS")
# Live CVS / HEAD (no CVS_TAG):
#
@@ -274,6 +308,7 @@ if(do_cvs_tests)
DEPENDS "TutorialStep1-CVS-20090626"
DEPENDS "TutorialStep1-CVS-testtag1"
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "CVS")
endif()
@@ -326,6 +361,8 @@ if(do_svn_tests)
CONFIGURE_COMMAND "${Subversion_SVN_EXECUTABLE}" --version
INSTALL_COMMAND ""
)
+ set_property(TARGET ${proj}
+ PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing")
# SVN by date stamp:
#
@@ -339,6 +376,7 @@ if(do_svn_tests)
INSTALL_COMMAND ""
DEPENDS "SetupLocalSVNRepository"
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "SVN")
# SVN by revision number:
#
@@ -352,6 +390,7 @@ if(do_svn_tests)
INSTALL_COMMAND ""
DEPENDS "SetupLocalSVNRepository"
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "SVN")
# Live SVN / trunk (no SVN_REVISION):
#
@@ -364,6 +403,7 @@ if(do_svn_tests)
DEPENDS "SetupLocalSVNRepository"
LOG_DOWNLOAD 1
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "SVN")
endif()
@@ -401,6 +441,8 @@ if(do_git_tests)
CONFIGURE_COMMAND "${GIT_EXECUTABLE}" --version
INSTALL_COMMAND ""
)
+ set_property(TARGET ${proj}
+ PROPERTY FOLDER "SetupRepos/Local/Deeply/Nested/For/Testing")
# git by commit id:
#
@@ -414,6 +456,7 @@ if(do_git_tests)
INSTALL_COMMAND ""
DEPENDS "SetupLocalGITRepository"
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
# git by explicit branch/tag name:
#
@@ -427,6 +470,7 @@ if(do_git_tests)
INSTALL_COMMAND ""
DEPENDS "SetupLocalGITRepository"
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
# Live git / master (no GIT_TAG):
#
@@ -439,6 +483,7 @@ if(do_git_tests)
DEPENDS "SetupLocalGITRepository"
LOG_UPDATE 1
)
+ set_property(TARGET ${proj} PROPERTY FOLDER "GIT")
endif()
diff --git a/Tests/FunctionTest/CMakeLists.txt b/Tests/FunctionTest/CMakeLists.txt
index ef55173..5d4f42d 100644
--- a/Tests/FunctionTest/CMakeLists.txt
+++ b/Tests/FunctionTest/CMakeLists.txt
@@ -166,3 +166,11 @@ ELSE(DEFINED SUBDIR_DEFINED)
ENDIF(DEFINED SUBDIR_DEFINED)
ADD_EXECUTABLE(FunctionTest functionTest.c)
+
+# Use the PROJECT_LABEL property: in IDEs, the project label should appear
+# in the UI rather than the target name. If this were a good test of the
+# property rather than just a smoke test, it would verify that the label
+# actually appears in the UI of the IDE... Or at least that the text appears
+# somewhere in the generated project files.
+SET_PROPERTY(TARGET miniFunctionTest
+ PROPERTY PROJECT_LABEL "Test de Fonctionnement")
diff --git a/Tests/MissingSourceFile/CMakeLists.txt b/Tests/MissingSourceFile/CMakeLists.txt
new file mode 100644
index 0000000..42b7c51
--- /dev/null
+++ b/Tests/MissingSourceFile/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8)
+project(MissingSourceFile C)
+add_executable(MissingSourceFile MissingSourceFile.c)