summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPedro Navarro <pnavarro@netflix.com>2013-10-31 20:24:57 (GMT)
committerBrad King <brad.king@kitware.com>2013-11-01 12:52:26 (GMT)
commit1b54b1d5b7a48e8e804b32a56fc79b34ba1f0978 (patch)
tree46bf996cf965d140caae9885cf1bf3b728bed9bd
parent7a616e75b84d692e2df453e889c12d1afdb6c576 (diff)
downloadCMake-1b54b1d5b7a48e8e804b32a56fc79b34ba1f0978.zip
CMake-1b54b1d5b7a48e8e804b32a56fc79b34ba1f0978.tar.gz
CMake-1b54b1d5b7a48e8e804b32a56fc79b34ba1f0978.tar.bz2
ctest_update: Do not remove the p4 depot name
Instead of removing the depot name, which causes problems when looking at the file change list in CDash, make the Update test remove a given prefix from the files retrieved from Update.xml.
-rw-r--r--Source/CTest/cmCTestP4.cxx12
-rw-r--r--Tests/CTestUpdateCommon.cmake9
-rw-r--r--Tests/CTestUpdateP4.cmake.in1
3 files changed, 11 insertions, 11 deletions
diff --git a/Source/CTest/cmCTestP4.cxx b/Source/CTest/cmCTestP4.cxx
index a504157..0058721 100644
--- a/Source/CTest/cmCTestP4.cxx
+++ b/Source/CTest/cmCTestP4.cxx
@@ -144,17 +144,7 @@ private:
if(!this->Line.empty() && this->Line[0] == '='
&& this->RegexDiff.find(this->Line))
{
- std::string Path = this->RegexDiff.match(1);
- // See if we need to remove the //depot prefix
- if(Path.length() > 2 && Path[0] == '/' && Path[1] == '/')
- {
- size_t found = Path.find('/', 2);
- if(found != std::string::npos)
- {
- Path = Path.substr(found + 1);
- }
- }
- CurrentPath = Path;
+ CurrentPath = this->RegexDiff.match(1);
AlreadyNotified = false;
}
else
diff --git a/Tests/CTestUpdateCommon.cmake b/Tests/CTestUpdateCommon.cmake
index ae8fda2..db4e08d 100644
--- a/Tests/CTestUpdateCommon.cmake
+++ b/Tests/CTestUpdateCommon.cmake
@@ -37,10 +37,19 @@ function(check_updates build)
REGEX "<(${types}|FullName)>"
LIMIT_INPUT ${max_update_xml_size}
)
+
string(REGEX REPLACE
"[ \t]*<(${types})>[ \t]*;[ \t]*<FullName>([^<]*)</FullName>"
"\\1{\\2}" UPDATE_XML_ENTRIES "${UPDATE_XML_ENTRIES}")
+ # If specified, remove the given prefix from the files in Update.xml.
+ # Some VCS systems, like Perforce, return absolute locations
+ if(DEFINED REPOSITORY_FILE_PREFIX)
+ string(REPLACE
+ "${REPOSITORY_FILE_PREFIX}" ""
+ UPDATE_XML_ENTRIES "${UPDATE_XML_ENTRIES}")
+ endif()
+
# Compare expected and actual entries
set(EXTRA "${UPDATE_XML_ENTRIES}")
list(REMOVE_ITEM EXTRA ${ARGN} ${UPDATE_EXTRA} ${UPDATE_MAYBE})
diff --git a/Tests/CTestUpdateP4.cmake.in b/Tests/CTestUpdateP4.cmake.in
index f23bd11..f0420c4 100644
--- a/Tests/CTestUpdateP4.cmake.in
+++ b/Tests/CTestUpdateP4.cmake.in
@@ -8,6 +8,7 @@ set(P4_TOP "${TOP}")
set(TOP "${TOP}/@CTestUpdateP4_DIR@")
# Include code common to all update tests.
+set(REPOSITORY_FILE_PREFIX "//ctest/")
include("@CMAKE_CURRENT_SOURCE_DIR@/CTestUpdateCommon.cmake")
#-----------------------------------------------------------------------------