Added tests for ctest parallel options (PARALLEL_LEVEL, PROCESSORS, RUN_SERIAL)
This commit is contained in:
parent
ca29998943
commit
664a409ae0
@ -1083,6 +1083,15 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=CVS -P ${CMake_SOURCE_DIR}/Utilities/Rel
|
|||||||
)
|
)
|
||||||
SET_TESTS_PROPERTIES(CTestTestCrash PROPERTIES
|
SET_TESTS_PROPERTIES(CTestTestCrash PROPERTIES
|
||||||
PASS_REGULAR_EXPRESSION "SegFault")
|
PASS_REGULAR_EXPRESSION "SegFault")
|
||||||
|
|
||||||
|
CONFIGURE_FILE(
|
||||||
|
"${CMake_SOURCE_DIR}/Tests/CTestTestParallel/test.cmake.in"
|
||||||
|
"${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake"
|
||||||
|
@ONLY ESCAPE_QUOTES)
|
||||||
|
ADD_TEST(CTestTestParallel ${CMAKE_CTEST_COMMAND}
|
||||||
|
-S "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake" -V
|
||||||
|
--output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log"
|
||||||
|
)
|
||||||
ADD_TEST(CTestTestShowOnly ${CMAKE_CTEST_COMMAND}
|
ADD_TEST(CTestTestShowOnly ${CMAKE_CTEST_COMMAND}
|
||||||
-N
|
-N
|
||||||
)
|
)
|
||||||
|
24
Tests/CTestTestParallel/CMakeLists.txt
Normal file
24
Tests/CTestTestParallel/CMakeLists.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
cmake_minimum_required (VERSION 2.6)
|
||||||
|
PROJECT(CTestTestParallel)
|
||||||
|
|
||||||
|
SET(DART_ROOT "" CACHE STRING "" FORCE)
|
||||||
|
ENABLE_TESTING()
|
||||||
|
INCLUDE (${CMAKE_ROOT}/Modules/Dart.cmake)
|
||||||
|
|
||||||
|
GET_FILENAME_COMPONENT(CTEST_COMMAND "${CMAKE_COMMAND}" PATH)
|
||||||
|
SET(CTEST_COMMAND "${CTEST_COMMAND}/ctest")
|
||||||
|
|
||||||
|
ADD_EXECUTABLE (LockFile lockFile.cxx)
|
||||||
|
TARGET_LINK_LIBRARIES (NoBuild ${EXTRA_LIBS})
|
||||||
|
|
||||||
|
ENABLE_TESTING ()
|
||||||
|
|
||||||
|
ADD_TEST (TestRunSerial1 LockFile)
|
||||||
|
ADD_TEST (TestRunSerial2 LockFile)
|
||||||
|
SET_TESTS_PROPERTIES(TestRunSerial1 TestRunSerial2 PROPERTIES RUN_SERIAL true)
|
||||||
|
|
||||||
|
ADD_TEST (TestProcessorsGreaterThanMPL1 LockFile)
|
||||||
|
ADD_TEST (TestProcessorsGreaterThanMPL2 LockFile)
|
||||||
|
SET_TESTS_PROPERTIES(TestProcessorsGreaterThanMPL1 PROPERTIES PROCESSORS 10)
|
||||||
|
|
||||||
|
INCLUDE (CTest)
|
7
Tests/CTestTestParallel/CTestConfig.cmake
Normal file
7
Tests/CTestTestParallel/CTestConfig.cmake
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
set(CTEST_PROJECT_NAME "CTestTestParallel")
|
||||||
|
set(CTEST_NIGHTLY_START_TIME "21:00:00 EDT")
|
||||||
|
set(CTEST_DART_SERVER_VERSION "2")
|
||||||
|
set(CTEST_DROP_METHOD "http")
|
||||||
|
set(CTEST_DROP_SITE "www.cdash.org")
|
||||||
|
set(CTEST_DROP_LOCATION "/CDash/submit.php?project=PublicDashboard")
|
||||||
|
set(CTEST_DROP_SITE_CDASH TRUE)
|
20
Tests/CTestTestParallel/lockFile.cxx
Normal file
20
Tests/CTestTestParallel/lockFile.cxx
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
//if run serially, works fine
|
||||||
|
//if run in parallel, someone will attempt to delete
|
||||||
|
//a locked file, which will fail
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
std::string fname = "lockedFile.txt";
|
||||||
|
std::fstream fout;
|
||||||
|
fout.open(fname.c_str(), std::ios::out);
|
||||||
|
|
||||||
|
for(int i = 0; i < 10000; i++)
|
||||||
|
{
|
||||||
|
fout << "x";
|
||||||
|
fout.flush();
|
||||||
|
}
|
||||||
|
fout.close();
|
||||||
|
return std::remove("lockedFile.txt");
|
||||||
|
}
|
33
Tests/CTestTestParallel/test.cmake.in
Normal file
33
Tests/CTestTestParallel/test.cmake.in
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.1)
|
||||||
|
|
||||||
|
# Settings:
|
||||||
|
SET(CTEST_DASHBOARD_ROOT "@CMake_BINARY_DIR@/Tests/CTestTest")
|
||||||
|
SET(CTEST_SITE "@SITE@")
|
||||||
|
SET(CTEST_BUILD_NAME "CTestTest-@BUILDNAME@-Parallel")
|
||||||
|
|
||||||
|
SET(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestTestParallel")
|
||||||
|
SET(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestTestParallel")
|
||||||
|
SET(CTEST_CVS_COMMAND "@CVSCOMMAND@")
|
||||||
|
SET(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
|
||||||
|
SET(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}")
|
||||||
|
SET(CTEST_MEMORYCHECK_COMMAND "@MEMORYCHECK_COMMAND@")
|
||||||
|
SET(CTEST_MEMORYCHECK_SUPPRESSIONS_FILE "@MEMORYCHECK_SUPPRESSIONS_FILE@")
|
||||||
|
SET(CTEST_MEMORYCHECK_COMMAND_OPTIONS "@MEMORYCHECK_COMMAND_OPTIONS@")
|
||||||
|
SET(CTEST_COVERAGE_COMMAND "@COVERAGE_COMMAND@")
|
||||||
|
SET(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
|
||||||
|
|
||||||
|
#CTEST_EMPTY_BINARY_DIRECTORY(${CTEST_BINARY_DIRECTORY})
|
||||||
|
|
||||||
|
FILE(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "
|
||||||
|
CMAKE_CXX_FLAGS:STRING=@CMAKE_CXX_FLAGS@
|
||||||
|
CMAKE_C_FLAGS:STRING=@CMAKE_C_FLAGS@
|
||||||
|
CMAKE_C_COMPILER:STRING=@CMAKE_C_COMPILER@
|
||||||
|
CMAKE_CXX_COMPILER:STRING=@CMAKE_CXX_COMPILER@
|
||||||
|
CMAKE_C_COMPILER_ARG1:STRING=@CMAKE_C_COMPILER_ARG1@
|
||||||
|
CMAKE_CXX_COMPILER_ARG1:STRING=@CMAKE_CXX_COMPILER_ARG1@
|
||||||
|
")
|
||||||
|
|
||||||
|
CTEST_START(Experimental)
|
||||||
|
CTEST_CONFIGURE(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
|
||||||
|
CTEST_BUILD(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
|
||||||
|
CTEST_TEST(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res PARALLEL_LEVEL 4)
|
Loading…
x
Reference in New Issue
Block a user