Commit 2c2291bb authored by Bill Hoffman's avatar Bill Hoffman
Browse files

ENH: add new feature to ctest so that it can cmake, build and run a test executable

parent a8620773
......@@ -148,69 +148,125 @@ IF (NOT DART_ROOT)
SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM})
ENDIF (NOT DART_ROOT)
CONFIGURE_FILE(
${CMake_SOURCE_DIR}/Source/cmaketest.h.in
${CMake_BINARY_DIR}/Source/cmaketest.h ESCAPE_QUOTES)
ADD_EXECUTABLE(cmaketest cmaketest.cxx)
TARGET_LINK_LIBRARIES(cmaketest CMakeLib)
IF(BUILD_TESTING)
ADD_TEST(CommandLineTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/CommandLineTest
${CMake_BINARY_DIR}/Tests/CommandLineTest
CommandLineTest)
ADD_TEST(CustomCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/CustomCommand
${CMake_BINARY_DIR}/Tests/CustomCommand
CustomCommand
${CMake_BINARY_DIR}/Tests/CustomCommand/bin)
ADD_TEST(FindPackageTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/FindPackageTest
${CMake_BINARY_DIR}/Tests/FindPackageTest
FindPackageTest)
ADD_TEST(SystemInformation ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/SystemInformation
${CMake_BINARY_DIR}/Tests/SystemInformation
DumpInformation)
ADD_TEST(StringFileTest ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/StringFileTest
${CMake_BINARY_DIR}/Tests/StringFileTest
StringFileTest)
ADD_TEST(TryCompile ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/TryCompile
${CMake_BINARY_DIR}/Tests/TryCompile
TryCompile)
ADD_TEST(simple ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Simple
${CMake_BINARY_DIR}/Tests/Simple
simple)
ADD_TEST(conly ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/COnly
${CMake_BINARY_DIR}/Tests/COnly
conly)
ADD_TEST(X11 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/X11
${CMake_BINARY_DIR}/Tests/X11
UseX11)
ADD_TEST(LoadedCommand ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/LoadCommand
${CMake_BINARY_DIR}/Tests/LoadCommand
LoadedCommand)
ADD_TEST(LoadedCommandOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/LoadCommand
${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig
LoadedCommand ONLY_ONE_CONFIG)
# This variable is set by cmake, however to
# test cmake we want to make sure that
# the ctest from this cmake is used for testing
# and not the ctest from the cmake building and testing
# cmake.
SET(CMAKE_CTEST_COMMAND "${EXECUTABLE_OUTPUT_PATH}/ctest")
ADD_TEST(CommandLineTest ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/CommandLineTest"
"${CMake_BINARY_DIR}/Tests/CommandLineTest"
--build-two-config
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project CommandLineTest
--test-command CommandLineTest)
ADD_TEST(CustomCommand ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/CustomCommand"
"${CMake_BINARY_DIR}/Tests/CustomCommand"
--build-two-config
--build-generator ${CMAKE_GENERATOR}
--build-project CustomCommand
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin"
--test-command CustomCommand
)
ADD_TEST(FindPackageTest ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPackageTest"
"${CMake_BINARY_DIR}/Tests/FindPackageTest"
--build-two-config
--build-generator ${CMAKE_GENERATOR}
--build-project FindPackageTest
--build-makeprogram ${MAKEPROGRAM}
--test-command FindPackageTest)
ADD_TEST(SystemInformation ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/SystemInformation"
"${CMake_BINARY_DIR}/Tests/SystemInformation"
--build-two-config
--build-generator ${CMAKE_GENERATOR}
--build-project DumpInformation
--build-makeprogram ${MAKEPROGRAM}
--test-command DumpInformation)
ADD_TEST(StringFileTest ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/StringFileTest"
"${CMake_BINARY_DIR}/Tests/StringFileTest"
--build-two-config
--build-generator ${CMAKE_GENERATOR}
--build-project StringFileTest
--build-makeprogram ${MAKEPROGRAM}
--test-command StringFileTest)
ADD_TEST(TryCompile ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/TryCompile"
"${CMake_BINARY_DIR}/Tests/TryCompile"
--build-generator ${CMAKE_GENERATOR}
--build-project TryCompile
--build-makeprogram ${MAKEPROGRAM}
--build-two-config
--test-command TryCompile)
ADD_TEST(simple ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Simple"
"${CMake_BINARY_DIR}/Tests/Simple"
--build-generator ${CMAKE_GENERATOR}
--build-project Simple
--build-makeprogram ${MAKEPROGRAM}
--build-two-config
--test-command simple)
ADD_TEST(conly ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/COnly"
"${CMake_BINARY_DIR}/Tests/COnly"
--build-generator ${CMAKE_GENERATOR}
--build-project conly
--build-makeprogram ${MAKEPROGRAM}
--build-two-config
--test-command conly)
ADD_TEST(X11 ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/X11"
"${CMake_BINARY_DIR}/Tests/X11"
--build-generator ${CMAKE_GENERATOR}
--build-project UseX11
--build-makeprogram ${MAKEPROGRAM}
--build-two-config
--test-command UseX11)
ADD_TEST(LoadedCommand ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/LoadCommand"
"${CMake_BINARY_DIR}/Tests/LoadCommand"
--build-generator ${CMAKE_GENERATOR}
--build-project LoadedCommand
--build-makeprogram ${MAKEPROGRAM}
--build-two-config
--test-command LoadedCommand)
ADD_TEST(LoadedCommandOneConfig ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/LoadCommand"
"${CMake_BINARY_DIR}/Tests/LoadCommandOneConfig"
--build-generator ${CMAKE_GENERATOR}
--build-project LoadedCommand
--build-makeprogram ${MAKEPROGRAM}
--test-command LoadedCommand
)
# Como does not seem to support shared libraries.
GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
......@@ -218,37 +274,62 @@ IF(BUILD_TESTING)
SET(COMPILER_IS_COMO 1)
ENDIF(CMAKE_BASE_NAME MATCHES "^como$")
IF(NOT COMPILER_IS_COMO)
ADD_TEST(complex ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Complex
${CMake_BINARY_DIR}/Tests/Complex
complex
${CMake_BINARY_DIR}/Tests/Complex/bin)
ADD_TEST(complexOneConfig ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Complex
${CMake_BINARY_DIR}/Tests/ComplexOneConfig
complex
${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin ONLY_ONE_CONFIG)
ADD_TEST(complex ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Complex"
"${CMake_BINARY_DIR}/Tests/Complex"
--build-two-config
--build-generator ${CMAKE_GENERATOR}
--build-project complex
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Complex/bin"
--test-command complex
)
ADD_TEST(complexOneConfig ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Complex"
"${CMake_BINARY_DIR}/Tests/ComplexOneConfig"
--build-generator ${CMAKE_GENERATOR}
--build-project complex
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/ComplexOneConfig/bin"
--test-command complex)
ENDIF(NOT COMPILER_IS_COMO)
ADD_TEST(Example ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Example
${CMake_BINARY_DIR}/Example
helloDemo
${CMake_BINARY_DIR}/Example/Demo
HELLO)
ADD_TEST(testing ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Testing
${CMake_BINARY_DIR}/Tests/Testing
testing
${CMake_BINARY_DIR}/Tests/Testing/bin)
ADD_TEST(wrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Wrapping
${CMake_BINARY_DIR}/Tests/Wrapping
wrapping
${CMake_BINARY_DIR}/Tests/Wrapping/bin)
ADD_TEST(Example ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Example"
"${CMake_BINARY_DIR}/Example"
--build-generator ${CMAKE_GENERATOR}
--build-project HELLO
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Example/Demo"
--test-command helloDemo
)
ADD_TEST(testing ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Testing"
"${CMake_BINARY_DIR}/Tests/Testing"
--build-generator ${CMAKE_GENERATOR}
--build-project testing
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Testing/bin"
--test-command testing
)
ADD_TEST(wrapping ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Wrapping"
"${CMake_BINARY_DIR}/Tests/Wrapping"
--build-generator ${CMAKE_GENERATOR}
--build-project wrapping
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
--test-command wrapping
)
INCLUDE ( ${CMAKE_ROOT}/Modules/FindQt.cmake )
MARK_AS_ADVANCED(
......@@ -258,119 +339,194 @@ IF(BUILD_TESTING)
QT_UIC_EXE)
IF (QT_FOUND)
ADD_TEST(qtwrapping ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Wrapping
${CMake_BINARY_DIR}/Tests/Wrapping
qtwrapping
${CMake_BINARY_DIR}/Tests/Wrapping/bin
wrapping)
ADD_TEST(qtwrapping ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Wrapping"
"${CMake_BINARY_DIR}/Tests/Wrapping"
--build-generator ${CMAKE_GENERATOR}
--build-project Wrapping
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
--test-command qtwrapping
)
ENDIF (QT_FOUND)
ADD_TEST(testdriver1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/TestDriver
${CMake_BINARY_DIR}/Tests/TestDriver
TestDriverTest
${CMake_BINARY_DIR}/Tests/Wrapping/bin
TestDriverTest test1)
ADD_TEST(testdriver2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/TestDriver
${CMake_BINARY_DIR}/Tests/TestDriver
TestDriverTest
${CMake_BINARY_DIR}/Tests/Wrapping/bin
TestDriverTest test2)
ADD_TEST(testdriver3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/TestDriver
${CMake_BINARY_DIR}/Tests/TestDriver
TestDriverTest
${CMake_BINARY_DIR}/Tests/Wrapping/bin
TestDriverTest subdir/test3)
ADD_TEST(dependency_w_libout ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Dependency
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
exec
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec
Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
ADD_TEST(dependency_wo_lib_out ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Dependency
${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut
exec
${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec
Dependency)
ADD_TEST(dependency2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Dependency
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
exec2
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2
Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
ADD_TEST(dependency3 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Dependency
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
exec3
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3
Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
ADD_TEST(dependency4 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Dependency
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut
exec4
${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4
Dependency CMAKE_ARGS -DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib)
ADD_TEST(linkline ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/LinkLine
${CMake_BINARY_DIR}/Tests/LinkLine
Exec
${CMake_BINARY_DIR}/Tests/LinkLine
LinkLine)
ADD_TEST(linkorder1 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/LinkLineOrder
${CMake_BINARY_DIR}/Tests/LinkLineOrder
Exec1
${CMake_BINARY_DIR}/Tests/LinkLineOrder
LinkLineOrder)
ADD_TEST(linkorder2 ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/LinkLineOrder
${CMake_BINARY_DIR}/Tests/LinkLineOrder
Exec2
${CMake_BINARY_DIR}/Tests/LinkLineOrder
LinkLineOrder)
ADD_TEST(curl ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Source/CTest/Curl
${CMake_BINARY_DIR}/Tests/Curl
LIBCURL)
ADD_TEST(kwsys ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Source/kwsys
${CMake_BINARY_DIR}/Tests/kwsys
test1
${CMake_BINARY_DIR}/Tests/kwsys
kwsys)
ADD_TEST(testdriver1 ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/TestDriver"
"${CMake_BINARY_DIR}/Tests/TestDriver"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
--build-project TestDriverTest
--test-command TestDriverTest test1
)
ADD_TEST(testdriver2 ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/TestDriver"
"${CMake_BINARY_DIR}/Tests/TestDriver"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
--build-project TestDriverTest
--test-command TestDriverTest test2
)
ADD_TEST(testdriver3 ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/TestDriver"
"${CMake_BINARY_DIR}/Tests/TestDriver"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Wrapping/bin"
--build-project TestDriverTest
--test-command TestDriverTest subdir/test3
)
ADD_TEST(dependency_w_libout ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Dependency"
"${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec"
--build-project Dependency
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-options
-DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
--test-command exec
)
ADD_TEST(dependency_wo_lib_out ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Dependency"
"${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut"
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WOLibOut/Exec"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project Dependency
--test-command exec
)
ADD_TEST(dependency2 ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Dependency"
"${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec2"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project Dependency
--build-options
-DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
--test-command exec2
)
ADD_TEST(dependency3 ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Dependency"
"${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec3"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project Dependency
--build-options
-DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
--test-command exec3)
ADD_TEST(dependency4 ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Dependency"
"${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut"
--build-exe-dir "${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Exec4"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project Dependency
--build-options
-DLIBRARY_OUTPUT_PATH:PATH=${CMake_BINARY_DIR}/Tests/Dependency/WithLibOut/Lib
--test-command exec4
)
ADD_TEST(linkline ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/LinkLine"
"${CMake_BINARY_DIR}/Tests/LinkLine"
--build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLine"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project Linkline
--test-command Exec
)
ADD_TEST(linkorder1 ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
"${CMake_BINARY_DIR}/Tests/LinkLineOrder"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
--build-project LinkLineOrder
--test-command Exec1
)
ADD_TEST(linkorder2 ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/LinkLineOrder"
"${CMake_BINARY_DIR}/Tests/LinkLineOrder"
--build-exe-dir "${CMake_BINARY_DIR}/Tests/LinkLineOrder"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project LinkLineOrder
--test-command Exec2
)
ADD_TEST(curl ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Source/CTest/Curl"
"${CMake_BINARY_DIR}/Tests/Curl"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project LIBCURL
--test-command LIBCURL)
ADD_TEST(kwsys ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Source/kwsys"
"${CMake_BINARY_DIR}/Tests/kwsys"
--build-exe-dir "${CMake_BINARY_DIR}/Tests/kwsys"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project kwsys
--test-command test1
)
IF (APPLE)
ADD_TEST(objc++ ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/Objc++
${CMake_BINARY_DIR}/Tests/Objc++
objc++)
ADD_TEST(objc++ ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Objc++"
"${CMake_BINARY_DIR}/Tests/Objc++"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-project objc++
--test-command objc++
)
ENDIF (APPLE)
IF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
# Will be set if the wxwindows gui is on
ADD_TEST(UseWX ${EXECUTABLE_OUTPUT_PATH}/cmaketest
${CMake_SOURCE_DIR}/Tests/UseWX
${CMake_BINARY_DIR}/Tests/UseWX
UseWX
${CMake_BINARY_DIR}/Tests/UseWX
UsewxWindows
CMAKE_ARGS -DCMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE:FILEPATH=${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE})
ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/UseWX"
"${CMake_BINARY_DIR}/Tests/UseWX"
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${MAKEPROGRAM}
--build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX
--build-project UsewxWindows
--build-options CMAKE_ARGS -DCMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE:FILEPATH=${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE}
--test-command UseWX
)
ENDIF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
IF(UNIX)
......
This diff is collapsed.
......@@ -26,6 +26,9 @@ class cmCTest
public:
typedef std::vector<cmStdString> tm_VectorOfStrings;
///! Process Command line arguments
int Run(std::vector<std::string>const&, std::string* output = 0);
/**
* Run a dashboard using a specified confiuration script
*/
......@@ -289,6 +292,21 @@ private:
int m_CompatibilityMode;
// information for the --build-and-test options
std::string m_ExecutableDirectory;
std::string m_CMakeSelf;
std::string m_CTestSelf;
std::string m_SourceDir;
std::string m_BinaryDir;
std::string m_BuildGenerator;
std::string m_BuildMakeProgram;
std::string m_BuildProject;
std::string m_BuildTarget;
std::vector<std::string> m_BuildOptions;
std::string m_TestCommand;
std::vector<std::string> m_TestCommandArgs;
bool m_BuildTwoConfig;
bool m_BuildNoClean;
std::string m_NotesFiles;
//! Reread the configuration file
......@@ -335,8 +353,12 @@ private:
bool ProcessMemCheckValgrindOutput(const std::string& str, std::string& log, int* results);
bool ProcessMemCheckPurifyOutput(const std::string& str, std::string& log, int* results);
//! Initialize memory checking subsystem.
///! Run CMake and build a test and then run it as a single test.
int RunCMakeAndTest(std::string* output);
///! Initialize memory checking subsystem.
bool InitializeMemoryChecking();
///! Find the running cmake
void FindRunningCMake(const char* arg0);
};
#endif
......@@ -64,7 +64,9 @@ const char* cmSystemTools::GetWindows9xComspecSubstitute()
}
void (*cmSystemTools::s_ErrorCallback)(const char*, const char*, bool&, void*);