Add unit test for RESOURCE_LOCK test property
This commit is contained in:
parent
adca29a5be
commit
2fd9b8072b
|
@ -119,9 +119,12 @@ void cmCTestMultiProcessHandler::StartTestProcess(int test)
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
void cmCTestMultiProcessHandler::LockResources(int index)
|
void cmCTestMultiProcessHandler::LockResources(int index)
|
||||||
{
|
{
|
||||||
this->LockedResources.insert(
|
for(std::set<std::string>::iterator i =
|
||||||
this->Properties[index]->LockedResources.begin(),
|
this->Properties[index]->LockedResources.begin();
|
||||||
this->Properties[index]->LockedResources.end());
|
i != this->Properties[index]->LockedResources.end(); ++i)
|
||||||
|
{
|
||||||
|
this->LockedResources.insert(*i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
|
|
|
@ -1284,7 +1284,16 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
|
||||||
-S "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake" -V
|
-S "${CMake_BINARY_DIR}/Tests/CTestTestParallel/test.cmake" -V
|
||||||
--output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log"
|
--output-log "${CMake_BINARY_DIR}/Tests/CTestTestParallel/testOutput.log"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
CONFIGURE_FILE(
|
||||||
|
"${CMake_SOURCE_DIR}/Tests/CTestTestResourceLock/test.cmake.in"
|
||||||
|
"${CMake_BINARY_DIR}/Tests/CTestTestResourceLock/test.cmake"
|
||||||
|
@ONLY ESCAPE_QUOTES)
|
||||||
|
ADD_TEST(CTestTestResourceLock ${CMAKE_CTEST_COMMAND}
|
||||||
|
-S "${CMake_BINARY_DIR}/Tests/CTestTestResourceLock/test.cmake" -V
|
||||||
|
--output-log "${CMake_BINARY_DIR}/Tests/CTestTestResourceLock/output.log"
|
||||||
|
)
|
||||||
|
|
||||||
CONFIGURE_FILE(
|
CONFIGURE_FILE(
|
||||||
"${CMake_SOURCE_DIR}/Tests/CTestTestScheduler/test.cmake.in"
|
"${CMake_SOURCE_DIR}/Tests/CTestTestScheduler/test.cmake.in"
|
||||||
"${CMake_BINARY_DIR}/Tests/CTestTestScheduler/test.cmake"
|
"${CMake_BINARY_DIR}/Tests/CTestTestScheduler/test.cmake"
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
cmake_minimum_required (VERSION 2.6)
|
||||||
|
PROJECT(CTestTestResourceLock)
|
||||||
|
INCLUDE(CTest)
|
||||||
|
|
||||||
|
ADD_EXECUTABLE (LockFile lockFile.c)
|
||||||
|
|
||||||
|
ADD_TEST (TestLockedFile1.1 LockFile locked1.txt)
|
||||||
|
ADD_TEST (TestLockedFile1.2 LockFile locked1.txt)
|
||||||
|
SET_TESTS_PROPERTIES(TestLockedFile1.1 TestLockedFile1.2 PROPERTIES RESOURCE_LOCK "locked1.txt")
|
||||||
|
|
||||||
|
ADD_TEST (TestLockedFile2.1 LockFile locked2.txt)
|
||||||
|
ADD_TEST (TestLockedFile2.2 LockFile locked2.txt)
|
||||||
|
SET_TESTS_PROPERTIES(TestLockedFile2.1 TestLockedFile2.2 PROPERTIES RESOURCE_LOCK "locked2.txt")
|
|
@ -0,0 +1,7 @@
|
||||||
|
set(CTEST_PROJECT_NAME "CTestTestResourceLock")
|
||||||
|
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)
|
|
@ -0,0 +1,31 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Disable deprecation warning for fopen */
|
||||||
|
#define _CRT_SECURE_NO_WARNINGS
|
||||||
|
|
||||||
|
/*if run serially, works fine.
|
||||||
|
If run in parallel, someone will attempt to delete
|
||||||
|
a locked file, which will fail */
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
FILE* file;
|
||||||
|
int i;
|
||||||
|
const char* fname;
|
||||||
|
if(argc >= 2)
|
||||||
|
{
|
||||||
|
fname = argv[1];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fname = "lockedFile.txt";
|
||||||
|
}
|
||||||
|
file = fopen(fname, "w");
|
||||||
|
|
||||||
|
for(i = 0; i < 10000; i++)
|
||||||
|
{
|
||||||
|
fprintf(file, "%s", "x");
|
||||||
|
fflush(file);
|
||||||
|
}
|
||||||
|
fclose(file);
|
||||||
|
return remove(fname);
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
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@-ResourceLock")
|
||||||
|
|
||||||
|
SET(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestTestResourceLock")
|
||||||
|
SET(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestTestResourceLock")
|
||||||
|
SET(CTEST_CVS_COMMAND "@CVSCOMMAND@")
|
||||||
|
SET(CTEST_CMAKE_GENERATOR "@CMAKE_TEST_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})
|
||||||
|
|
||||||
|
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…
Reference in New Issue