[Cmake-commits] CMake branch, master, updated. 2fd9b8072bb15e16446e15c1165566d4a238e4cc
cmake-commits at cmake.org
cmake-commits at cmake.org
Wed Mar 3 10:33:15 EST 2010
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, master has been updated
via 2fd9b8072bb15e16446e15c1165566d4a238e4cc (commit)
from adca29a5beca6f25d1224176584ea7c4ef0bf360 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2fd9b8072bb15e16446e15c1165566d4a238e4cc
commit 2fd9b8072bb15e16446e15c1165566d4a238e4cc
Author: Zach Mullen <zach.mullen at kitware.com>
Date: Wed Mar 3 10:32:03 2010 -0500
Add unit test for RESOURCE_LOCK test property
diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx
index 84df303..c1ca9ea 100644
--- a/Source/CTest/cmCTestMultiProcessHandler.cxx
+++ b/Source/CTest/cmCTestMultiProcessHandler.cxx
@@ -119,9 +119,12 @@ void cmCTestMultiProcessHandler::StartTestProcess(int test)
//---------------------------------------------------------
void cmCTestMultiProcessHandler::LockResources(int index)
{
- this->LockedResources.insert(
- this->Properties[index]->LockedResources.begin(),
- this->Properties[index]->LockedResources.end());
+ for(std::set<std::string>::iterator i =
+ this->Properties[index]->LockedResources.begin();
+ i != this->Properties[index]->LockedResources.end(); ++i)
+ {
+ this->LockedResources.insert(*i);
+ }
}
//---------------------------------------------------------
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 7004de3..7bc8b33 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -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
--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(
"${CMake_SOURCE_DIR}/Tests/CTestTestScheduler/test.cmake.in"
"${CMake_BINARY_DIR}/Tests/CTestTestScheduler/test.cmake"
diff --git a/Tests/CTestTestResourceLock/CMakeLists.txt b/Tests/CTestTestResourceLock/CMakeLists.txt
new file mode 100644
index 0000000..1041ef1
--- /dev/null
+++ b/Tests/CTestTestResourceLock/CMakeLists.txt
@@ -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")
diff --git a/Tests/CTestTestResourceLock/CTestConfig.cmake b/Tests/CTestTestResourceLock/CTestConfig.cmake
new file mode 100644
index 0000000..5fb560b
--- /dev/null
+++ b/Tests/CTestTestResourceLock/CTestConfig.cmake
@@ -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)
diff --git a/Tests/CTestTestResourceLock/lockFile.c b/Tests/CTestTestResourceLock/lockFile.c
new file mode 100644
index 0000000..f8edc3f
--- /dev/null
+++ b/Tests/CTestTestResourceLock/lockFile.c
@@ -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);
+}
diff --git a/Tests/CTestTestResourceLock/test.cmake.in b/Tests/CTestTestResourceLock/test.cmake.in
new file mode 100644
index 0000000..e58ae20
--- /dev/null
+++ b/Tests/CTestTestResourceLock/test.cmake.in
@@ -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- at 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)
-----------------------------------------------------------------------
Summary of changes:
Source/CTest/cmCTestMultiProcessHandler.cxx | 9 ++++++---
Tests/CMakeLists.txt | 11 ++++++++++-
Tests/CTestTestResourceLock/CMakeLists.txt | 13 +++++++++++++
.../CTestConfig.cmake | 2 +-
.../lockFile.c | 15 +++++++++++++--
.../test.cmake.in | 8 ++++----
6 files changed, 47 insertions(+), 11 deletions(-)
create mode 100644 Tests/CTestTestResourceLock/CMakeLists.txt
copy Tests/{CTestTestScheduler => CTestTestResourceLock}/CTestConfig.cmake (83%)
copy Tests/{CTestTestParallel => CTestTestResourceLock}/lockFile.c (58%)
copy Tests/{CTestTestParallel => CTestTestResourceLock}/test.cmake.in (85%)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list