[Cmake-commits] CMake branch, next, updated. v3.1.0-2174-gd4c1925
Brad King
brad.king at kitware.com
Mon Jan 19 11:36:10 EST 2015
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, next has been updated
via d4c1925db5fb501cae4df7dcd2e3fb30df0b26a3 (commit)
via 6016a5c7e1b69b9f3160dadce91ee405b9480d1e (commit)
from 85f6c64358e1a1077d01b77b93c09d8d964375c9 (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=d4c1925db5fb501cae4df7dcd2e3fb30df0b26a3
commit d4c1925db5fb501cae4df7dcd2e3fb30df0b26a3
Merge: 85f6c64 6016a5c
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon Jan 19 11:36:07 2015 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Jan 19 11:36:07 2015 -0500
Merge topic 'cdash_upload_file_mode' into next
6016a5c7 Revise topic 'cdash_upload_file_mode'
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6016a5c7e1b69b9f3160dadce91ee405b9480d1e
commit 6016a5c7e1b69b9f3160dadce91ee405b9480d1e
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon Jan 19 11:34:35 2015 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Mon Jan 19 11:35:33 2015 -0500
Revise topic 'cdash_upload_file_mode'
Update the head of the topic to look like a revised version with
more granular commits.
diff --git a/Help/command/ctest_submit.rst b/Help/command/ctest_submit.rst
index 316a43d..2b83ed9 100644
--- a/Help/command/ctest_submit.rst
+++ b/Help/command/ctest_submit.rst
@@ -38,13 +38,15 @@ timed-out submission before attempting to re-submit.
The RETRY_COUNT option specifies how many times to retry a timed-out
submission.
+Submit to CDash Upload API
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
::
- ctest_submit([CDASH_UPLOAD file]
- [CDASH_UPLOAD_TYPE type_string])
+ ctest_submit(CDASH_UPLOAD <file> [CDASH_UPLOAD_TYPE <type>])
This second signature is used to upload files to CDash via the CDash
file upload API. The api first sends a request to upload to CDash along
-with the md5 sum of the file. If CDash does not already have the file,
+with a content hash of the file. If CDash does not already have the file,
then it is uploaded. Along with the file, a CDash type string is specified
to tell CDash which handler to use to process the data.
diff --git a/Help/release/dev/cmake-E-tar-mtime.rst b/Help/release/dev/cmake-E-tar-mtime.rst
new file mode 100644
index 0000000..6496577
--- /dev/null
+++ b/Help/release/dev/cmake-E-tar-mtime.rst
@@ -0,0 +1,6 @@
+cmake-E-tar-mtime
+-----------------
+
+* The :manual:`cmake(1)` ``-E tar`` command learned a new
+ ``--mtime=<date>`` option to specify the modification time
+ recorded in tarball entries.
diff --git a/Modules/CTestCoverageCollectGCOV.cmake b/Modules/CTestCoverageCollectGCOV.cmake
index 29fd504..34e5f9a 100644
--- a/Modules/CTestCoverageCollectGCOV.cmake
+++ b/Modules/CTestCoverageCollectGCOV.cmake
@@ -12,18 +12,29 @@
#
# ::
#
-# ctest_coverage_collect_gcov(
-# TARBALL <tarfile> # required
-# SOURCE <source_dir> # optional, else CTEST_SOURCE_DIRECTORY
-# BUILD <build_dir> # optional, else CTEST_BINARY_DIRECTORY
-# GCOV_COMMAND <gcov_command> # optional, else CTEST_COVERAGE_COMMAND
-# )
+# ctest_coverage_collect_gcov(TARBALL <tarfile>
+# [SOURCE <source_dir>][BUILD <build_dir>]
+# [GCOV_COMMAND <gcov_command>]
+# )
#
-# Run gcov and package a tar file for cdash. ``<tarfile>`` is the name
-# of the tarfile that is created and it will be placed in ``<binary_dir>``.
-# ``<source_dir>`` is the source directory for the build and ``<binary_dir>``
-# is the binary directory for the build. The ``<gcov_command>`` is a full
-# path to ``gcov`` for the machine.
+# Run gcov and package a tar file for CDash. The options are:
+#
+# ``TARBALL <tarfile>``
+# Specify the location of the ``.tar`` file to be created for later
+# upload to CDash. Relative paths will be interpreted with respect
+# to the top-level build directory.
+#
+# ``SOURCE <source_dir>``
+# Specify the top-level source directory for the build.
+# Default is the value of :variable:`CTEST_SOURCE_DIRECTORY`.
+#
+# ``BUILD <build_dir>``
+# Specify the top-level build directory for the build.
+# Default is the value of :variable:`CTEST_BINARY_DIRECTORY`.
+#
+# ``GCOV_COMMAND <gcov_command>``
+# Specify the full path to the ``gcov`` command on the machine.
+# Default is the value of :variable:`CTEST_COVERAGE_COMMAND`.
#=============================================================================
# Copyright 2014-2015 Kitware, Inc.
@@ -117,7 +128,7 @@ function(ctest_coverage_collect_gcov)
# stamps
execute_process(COMMAND
${CMAKE_COMMAND} -E tar cvfj ${GCOV_TARBALL}
- --mtime=1970-01-01\ 0:0:0\ UTC ${gcov_files}
+ "--mtime=1970-01-01 0:0:0 UTC" ${gcov_files}
${coverage_dir}/data.json ${label_files}
WORKING_DIRECTORY ${binary_dir})
endfunction()
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index 4ce601d..c54b943 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -335,6 +335,8 @@ set(SRCS
cmake.cxx
cmake.h
+ cm_get_date.h
+ cm_get_date.c
cm_sha2.h
cm_sha2.c
cm_utf8.h
diff --git a/Source/CTest/cmCTestCurl.cxx b/Source/CTest/cmCTestCurl.cxx
index b354592..b0d26cc 100644
--- a/Source/CTest/cmCTestCurl.cxx
+++ b/Source/CTest/cmCTestCurl.cxx
@@ -1,4 +1,16 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2000-2015 Kitware, Inc.
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
#include "cmCTestCurl.h"
+
#include "cmSystemTools.h"
#include "cmCTest.h"
@@ -42,6 +54,7 @@ curlDebugCallback(CURL *, curl_infotype, char *chPtr,
}
}
+
void cmCTestCurl::SetCurlOptions(std::vector<std::string> const& args)
{
for( std::vector<std::string>::const_iterator i = args.begin();
diff --git a/Source/CTest/cmCTestCurl.h b/Source/CTest/cmCTestCurl.h
index bb5c74a..5bb8b41 100644
--- a/Source/CTest/cmCTestCurl.h
+++ b/Source/CTest/cmCTestCurl.h
@@ -1,6 +1,6 @@
/*============================================================================
CMake - Cross Platform Makefile Generator
- Copyright 2000-2009 Kitware, Inc.
+ Copyright 2000-2015 Kitware, Inc.
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
@@ -11,8 +11,11 @@
============================================================================*/
#ifndef cmCTestCurl_h
#define cmCTestCurl_h
-#include "cm_curl.h"
+
#include "cmStandardIncludes.h"
+
+#include "cm_curl.h"
+
class cmCTest;
class cmCTestCurl
@@ -46,5 +49,4 @@ private:
int TimeOutSeconds;
};
-
#endif
diff --git a/Source/CTest/cmCTestSubmitCommand.cxx b/Source/CTest/cmCTestSubmitCommand.cxx
index dcd7982..cc3514f 100644
--- a/Source/CTest/cmCTestSubmitCommand.cxx
+++ b/Source/CTest/cmCTestSubmitCommand.cxx
@@ -145,7 +145,7 @@ cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
static_cast<cmCTestSubmitHandler*>(handler)->SetOption("InternalTest",
this->InternalTest ? "ON" : "OFF");
- if(this->CDashUploadFile.size())
+ if (this->CDashUpload)
{
static_cast<cmCTestSubmitHandler*>(handler)->
SetOption("CDashUploadFile", this->CDashUploadFile.c_str());
@@ -155,51 +155,65 @@ cmCTestGenericHandler* cmCTestSubmitCommand::InitializeHandler()
return handler;
}
+//----------------------------------------------------------------------------
+bool cmCTestSubmitCommand::InitialPass(std::vector<std::string> const& args,
+ cmExecutionStatus& status)
+{
+ this->CDashUpload = !args.empty() && args[0] == "CDASH_UPLOAD";
+ return this->cmCTestHandlerCommand::InitialPass(args, status);
+}
//----------------------------------------------------------------------------
bool cmCTestSubmitCommand::CheckArgumentKeyword(std::string const& arg)
{
- // Look for arguments specific to this command.
- if(arg == "PARTS")
+ if (this->CDashUpload)
{
- this->ArgumentDoing = ArgumentDoingParts;
- this->PartsMentioned = true;
- return true;
- }
+ if(arg == "CDASH_UPLOAD")
+ {
+ this->ArgumentDoing = ArgumentDoingCDashUpload;
+ return true;
+ }
- if(arg == "FILES")
- {
- this->ArgumentDoing = ArgumentDoingFiles;
- this->FilesMentioned = true;
- return true;
+ if(arg == "CDASH_UPLOAD_TYPE")
+ {
+ this->ArgumentDoing = ArgumentDoingCDashUploadType;
+ return true;
+ }
}
-
- if(arg == "RETRY_COUNT")
+ else
{
- this->ArgumentDoing = ArgumentDoingRetryCount;
- return true;
- }
+ // Look for arguments specific to this command.
+ if(arg == "PARTS")
+ {
+ this->ArgumentDoing = ArgumentDoingParts;
+ this->PartsMentioned = true;
+ return true;
+ }
- if(arg == "RETRY_DELAY")
- {
- this->ArgumentDoing = ArgumentDoingRetryDelay;
- return true;
- }
+ if(arg == "FILES")
+ {
+ this->ArgumentDoing = ArgumentDoingFiles;
+ this->FilesMentioned = true;
+ return true;
+ }
- if(arg == "CDASH_UPLOAD")
- {
- this->ArgumentDoing = ArgumentDoingCDashUpload;
- return true;
- }
- if(arg == "CDASH_UPLOAD_TYPE")
- {
- this->ArgumentDoing = ArgumentDoingCDashUploadType;
- return true;
- }
- if(arg == "INTERNAL_TEST_CHECKSUM")
- {
- this->InternalTest = true;
- return true;
+ if(arg == "RETRY_COUNT")
+ {
+ this->ArgumentDoing = ArgumentDoingRetryCount;
+ return true;
+ }
+
+ if(arg == "RETRY_DELAY")
+ {
+ this->ArgumentDoing = ArgumentDoingRetryDelay;
+ return true;
+ }
+
+ if(arg == "INTERNAL_TEST_CHECKSUM")
+ {
+ this->InternalTest = true;
+ return true;
+ }
}
// Look for other arguments.
@@ -260,11 +274,14 @@ bool cmCTestSubmitCommand::CheckArgumentValue(std::string const& arg)
if(this->ArgumentDoing == ArgumentDoingCDashUpload)
{
+ this->ArgumentDoing = ArgumentDoingNone;
this->CDashUploadFile = arg;
return true;
}
+
if(this->ArgumentDoing == ArgumentDoingCDashUploadType)
{
+ this->ArgumentDoing = ArgumentDoingNone;
this->CDashUploadType = arg;
return true;
}
diff --git a/Source/CTest/cmCTestSubmitCommand.h b/Source/CTest/cmCTestSubmitCommand.h
index cb0ac61..19e8eaf 100644
--- a/Source/CTest/cmCTestSubmitCommand.h
+++ b/Source/CTest/cmCTestSubmitCommand.h
@@ -32,6 +32,7 @@ public:
this->InternalTest = false;
this->RetryCount = "";
this->RetryDelay = "";
+ this->CDashUpload = false;
}
/**
@@ -45,6 +46,9 @@ public:
return ni;
}
+ virtual bool InitialPass(std::vector<std::string> const& args,
+ cmExecutionStatus &status);
+
/**
* The name of the command as specified in CMakeList.txt.
*/
@@ -76,6 +80,7 @@ protected:
cmCTest::SetOfStrings Files;
std::string RetryCount;
std::string RetryDelay;
+ bool CDashUpload;
std::string CDashUploadFile;
std::string CDashUploadType;
};
diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx
index 0e19259..11e3343 100644
--- a/Source/CTest/cmCTestSubmitHandler.cxx
+++ b/Source/CTest/cmCTestSubmitHandler.cxx
@@ -1084,10 +1084,16 @@ void cmCTestSubmitHandler::ConstructCDashURL(std::string& dropMethod,
int cmCTestSubmitHandler::HandleCDashUploadFile(std::string const& file,
std::string const& typeString)
{
- if(!cmSystemTools::FileExists(file))
+ if (file.empty())
{
cmCTestLog(this->CTest, ERROR_MESSAGE,
- "Upload file not found: " << file << "\n");
+ "Upload file not specified\n");
+ return -1;
+ }
+ if (!cmSystemTools::FileExists(file))
+ {
+ cmCTestLog(this->CTest, ERROR_MESSAGE,
+ "Upload file not found: '" << file << "'\n");
return -1;
}
cmCTestCurl curl(this->CTest);
@@ -1118,6 +1124,7 @@ int cmCTestSubmitHandler::HandleCDashUploadFile(std::string const& file,
static_cast<cmCTestScriptHandler*>(this->CTest->GetHandler("script"));
cmake* cm = ch->GetCMake();
const char* subproject = cm->GetProperty("SubProject", cmProperty::GLOBAL);
+ // TODO: Encode values for a URL instead of trusting caller.
std::ostringstream str;
str << "project="
<< this->CTest->GetCTestConfiguration("ProjectName") << "&";
@@ -1214,8 +1221,7 @@ int cmCTestSubmitHandler::ProcessHandler()
const char* cdashUploadType = this->GetOption("CDashUploadType");
if(cdashUploadFile && cdashUploadType)
{
- return this->HandleCDashUploadFile(std::string(cdashUploadFile),
- std::string(cdashUploadType));
+ return this->HandleCDashUploadFile(cdashUploadFile, cdashUploadType);
}
std::string iscdash = this->CTest->GetCTestConfiguration("IsCDash");
// cdash does not need to trigger so just return true
diff --git a/Source/cmArchiveWrite.cxx b/Source/cmArchiveWrite.cxx
index fc4c40d..47ec736 100644
--- a/Source/cmArchiveWrite.cxx
+++ b/Source/cmArchiveWrite.cxx
@@ -16,6 +16,7 @@
#include <cmsys/Directory.hxx>
#include <cmsys/FStream.hxx>
#include <cm_libarchive.h>
+#include "cm_get_date.h"
//----------------------------------------------------------------------------
static std::string cm_archive_error_string(struct archive* a)
@@ -247,11 +248,6 @@ bool cmArchiveWrite::AddPath(const char* path,
return true;
}
-// function from libarchive
-extern "C"
-{
- time_t __archive_get_date(time_t, const char*);
-}
//----------------------------------------------------------------------------
bool cmArchiveWrite::AddFile(const char* file,
size_t skip, const char* prefix)
@@ -280,13 +276,16 @@ bool cmArchiveWrite::AddFile(const char* file,
this->Error += cm_archive_error_string(this->Disk);
return false;
}
- if(this->MTime.size())
+ if (!this->MTime.empty())
{
- time_t t = __archive_get_date(0, this->MTime.c_str());
+ time_t now;
+ time(&now);
+ time_t t = cm_get_date(now, this->MTime.c_str());
if (t == -1)
{
- this->Error = "__archive_get_date: Unable to parse mtime: ";
- this->Error += "[" + this->MTime + "]";
+ this->Error = "unable to parse mtime '";
+ this->Error += this->MTime;
+ this->Error += "'";
return false;
}
archive_entry_set_mtime(e, t, 0);
diff --git a/Source/cmArchiveWrite.h b/Source/cmArchiveWrite.h
index 987e95c..17357b4 100644
--- a/Source/cmArchiveWrite.h
+++ b/Source/cmArchiveWrite.h
@@ -74,7 +74,7 @@ public:
// std::cout.
void SetVerbose(bool v) { this->Verbose = v; }
- void SetMTime(const char* t) { if(t) {this->MTime = t;}}
+ void SetMTime(std::string const& t) { this->MTime = t; }
private:
bool Okay() const { return this->Error.empty(); }
bool AddPath(const char* path, size_t skip, const char* prefix);
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index d8a5631..e9735ed 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -1469,7 +1469,7 @@ bool cmSystemTools::IsPathToFramework(const char* path)
bool cmSystemTools::CreateTar(const char* outFileName,
const std::vector<std::string>& files,
cmTarCompression compressType,
- bool verbose, const char* mtime)
+ bool verbose, std::string const& mtime)
{
#if defined(CMAKE_BUILD_WITH_CMAKE)
std::string cwd = cmSystemTools::GetCurrentWorkingDirectory();
@@ -1501,10 +1501,7 @@ bool cmSystemTools::CreateTar(const char* outFileName,
}
cmArchiveWrite a(fout, compress,
cmArchiveWrite::TypeTAR);
- if(mtime)
- {
- a.SetMTime(mtime);
- }
+ a.SetMTime(mtime);
a.SetVerbose(verbose);
for(std::vector<std::string>::const_iterator i = files.begin();
i != files.end(); ++i)
diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h
index 1c7208f..361f42e 100644
--- a/Source/cmSystemTools.h
+++ b/Source/cmSystemTools.h
@@ -395,7 +395,7 @@ public:
static bool CreateTar(const char* outFileName,
const std::vector<std::string>& files,
cmTarCompression compressType, bool verbose,
- const char* mtime=0);
+ std::string const& mtime = std::string());
static bool ExtractTar(const char* inFileName, bool verbose);
// This should be called first thing in main
// it will keep child processes from inheriting the
diff --git a/Source/cm_get_date.c b/Source/cm_get_date.c
new file mode 100644
index 0000000..2e0d4bd
--- /dev/null
+++ b/Source/cm_get_date.c
@@ -0,0 +1,16 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2000-2015 Kitware, Inc.
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+#include "cm_get_date.h"
+
+#define __archive_get_date cm_get_date
+
+#include "../Utilities/cmlibarchive/libarchive/archive_getdate.c"
diff --git a/Source/cm_get_date.h b/Source/cm_get_date.h
new file mode 100644
index 0000000..d5f6d3e
--- /dev/null
+++ b/Source/cm_get_date.h
@@ -0,0 +1,28 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2000-2015 Kitware, Inc.
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+#ifndef cm_get_date_h
+#define cm_get_date_h
+
+#include <time.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Parse a date/time string. Treat relative times with respect to 'now'. */
+time_t cm_get_date(time_t now, const char *str);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index f6c13bb..7ca3eb3 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -730,19 +730,29 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
std::string outFile = args[3];
std::vector<std::string> files;
std::string mtime;
+ bool doing_options = true;
for (std::string::size_type cc = 4; cc < args.size(); cc ++)
{
- // if the first 8 chars of an arg are --mtime= and that arg
- // is not a file on disk, treat it is the --mtime= flag and
- // not a file
- if( (args[cc].substr(0, 8) == "--mtime=") &&
- !cmSystemTools::FileExists(args[cc]))
+ std::string const& arg = args[cc];
+ if (doing_options && cmHasLiteralPrefix(arg, "--"))
{
- mtime = args[cc].substr(8);
+ if (arg == "--")
+ {
+ doing_options = false;
+ }
+ else if (cmHasLiteralPrefix(arg, "--mtime="))
+ {
+ mtime = arg.substr(8);
+ }
+ else
+ {
+ cmSystemTools::Error("Unknown option to -E tar: ", arg.c_str());
+ return 1;
+ }
}
else
{
- files.push_back(args[cc]);
+ files.push_back(arg);
}
}
cmSystemTools::cmTarCompression compress =
@@ -785,13 +795,8 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
}
else if ( flags.find_first_of('c') != flags.npos )
{
- const char* mtimestr = 0;
- if(mtime.size())
- {
- mtimestr = mtime.c_str();
- }
if ( !cmSystemTools::CreateTar(
- outFile.c_str(), files, compress, verbose, mtimestr) )
+ outFile.c_str(), files, compress, verbose, mtime) )
{
cmSystemTools::Error("Problem creating tar: ", outFile.c_str());
return 1;
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadFILES-result.txt b/Tests/RunCMake/CTestSubmit/CDashUploadFILES-result.txt
new file mode 100644
index 0000000..b57e2de
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadFILES-result.txt
@@ -0,0 +1 @@
+(-1|255)
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadFILES-stderr.txt b/Tests/RunCMake/CTestSubmit/CDashUploadFILES-stderr.txt
new file mode 100644
index 0000000..48177e2
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadFILES-stderr.txt
@@ -0,0 +1,2 @@
+CMake Error at .*/Tests/RunCMake/CTestSubmit/CDashUploadFILES/test.cmake:[0-9]+ \(ctest_submit\):
+ ctest_submit called with unknown argument "FILES".
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadFTP-result.txt b/Tests/RunCMake/CTestSubmit/CDashUploadFTP-result.txt
new file mode 100644
index 0000000..b57e2de
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadFTP-result.txt
@@ -0,0 +1 @@
+(-1|255)
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadFTP-stderr.txt b/Tests/RunCMake/CTestSubmit/CDashUploadFTP-stderr.txt
new file mode 100644
index 0000000..77df44f
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadFTP-stderr.txt
@@ -0,0 +1 @@
+Only http and https are supported for CDASH_UPLOAD
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadNone-result.txt b/Tests/RunCMake/CTestSubmit/CDashUploadNone-result.txt
new file mode 100644
index 0000000..b57e2de
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadNone-result.txt
@@ -0,0 +1 @@
+(-1|255)
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadNone-stderr.txt b/Tests/RunCMake/CTestSubmit/CDashUploadNone-stderr.txt
new file mode 100644
index 0000000..af95b5c
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadNone-stderr.txt
@@ -0,0 +1 @@
+Upload file not specified
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadPARTS-result.txt b/Tests/RunCMake/CTestSubmit/CDashUploadPARTS-result.txt
new file mode 100644
index 0000000..b57e2de
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadPARTS-result.txt
@@ -0,0 +1 @@
+(-1|255)
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadPARTS-stderr.txt b/Tests/RunCMake/CTestSubmit/CDashUploadPARTS-stderr.txt
new file mode 100644
index 0000000..497ead2
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadPARTS-stderr.txt
@@ -0,0 +1,2 @@
+CMake Error at .*/Tests/RunCMake/CTestSubmit/CDashUploadPARTS/test.cmake:[0-9]+ \(ctest_submit\):
+ ctest_submit called with unknown argument "PARTS".
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_COUNT-result.txt b/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_COUNT-result.txt
new file mode 100644
index 0000000..b57e2de
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_COUNT-result.txt
@@ -0,0 +1 @@
+(-1|255)
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_COUNT-stderr.txt b/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_COUNT-stderr.txt
new file mode 100644
index 0000000..8c4e6b1
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_COUNT-stderr.txt
@@ -0,0 +1,2 @@
+CMake Error at .*/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_COUNT/test.cmake:[0-9]+ \(ctest_submit\):
+ ctest_submit called with unknown argument "RETRY_COUNT".
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_DELAY-result.txt b/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_DELAY-result.txt
new file mode 100644
index 0000000..b57e2de
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_DELAY-result.txt
@@ -0,0 +1 @@
+(-1|255)
diff --git a/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_DELAY-stderr.txt b/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_DELAY-stderr.txt
new file mode 100644
index 0000000..6c56399
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_DELAY-stderr.txt
@@ -0,0 +1,2 @@
+CMake Error at .*/Tests/RunCMake/CTestSubmit/CDashUploadRETRY_DELAY/test.cmake:[0-9]+ \(ctest_submit\):
+ ctest_submit called with unknown argument "RETRY_DELAY".
diff --git a/Tests/RunCMake/CTestSubmit/PARTSCDashUpload-result.txt b/Tests/RunCMake/CTestSubmit/PARTSCDashUpload-result.txt
new file mode 100644
index 0000000..b57e2de
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/PARTSCDashUpload-result.txt
@@ -0,0 +1 @@
+(-1|255)
diff --git a/Tests/RunCMake/CTestSubmit/PARTSCDashUpload-stderr.txt b/Tests/RunCMake/CTestSubmit/PARTSCDashUpload-stderr.txt
new file mode 100644
index 0000000..dfa7e33
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/PARTSCDashUpload-stderr.txt
@@ -0,0 +1,2 @@
+CMake Error at .*/Tests/RunCMake/CTestSubmit/PARTSCDashUpload/test.cmake:[0-9]+ \(ctest_submit\):
+ Part name "CDASH_UPLOAD" is invalid.
diff --git a/Tests/RunCMake/CTestSubmit/PARTSCDashUploadType-result.txt b/Tests/RunCMake/CTestSubmit/PARTSCDashUploadType-result.txt
new file mode 100644
index 0000000..b57e2de
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/PARTSCDashUploadType-result.txt
@@ -0,0 +1 @@
+(-1|255)
diff --git a/Tests/RunCMake/CTestSubmit/PARTSCDashUploadType-stderr.txt b/Tests/RunCMake/CTestSubmit/PARTSCDashUploadType-stderr.txt
new file mode 100644
index 0000000..42becaf
--- /dev/null
+++ b/Tests/RunCMake/CTestSubmit/PARTSCDashUploadType-stderr.txt
@@ -0,0 +1,2 @@
+CMake Error at .*/Tests/RunCMake/CTestSubmit/PARTSCDashUploadType/test.cmake:[0-9]+ \(ctest_submit\):
+ Part name "CDASH_UPLOAD_TYPE" is invalid.
diff --git a/Tests/RunCMake/CTestSubmit/RunCMakeTest.cmake b/Tests/RunCMake/CTestSubmit/RunCMakeTest.cmake
index 6f18563..bfb3b96 100644
--- a/Tests/RunCMake/CTestSubmit/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CTestSubmit/RunCMakeTest.cmake
@@ -32,6 +32,19 @@ run_ctest_submit(BadArg bad-arg)
run_ctest_submit(BadPARTS PARTS bad-part)
run_ctest_submit(BadFILES FILES bad-file)
run_ctest_submit(RepeatRETURN_VALUE RETURN_VALUE res RETURN_VALUE res)
+run_ctest_submit(PARTSCDashUpload PARTS Configure CDASH_UPLOAD)
+run_ctest_submit(PARTSCDashUploadType PARTS Configure CDASH_UPLOAD_TYPE)
+run_ctest_submit(CDashUploadPARTS CDASH_UPLOAD bad-upload PARTS)
+run_ctest_submit(CDashUploadFILES CDASH_UPLOAD bad-upload FILES)
+run_ctest_submit(CDashUploadRETRY_COUNT CDASH_UPLOAD bad-upload RETRY_COUNT)
+run_ctest_submit(CDashUploadRETRY_DELAY CDASH_UPLOAD bad-upload RETRY_DELAY)
+run_ctest_submit(CDashUploadNone CDASH_UPLOAD)
+
+function(run_ctest_CDashUploadFTP)
+ set(CASE_DROP_METHOD ftp)
+ run_ctest_submit(CDashUploadFTP CDASH_UPLOAD ${CMAKE_CURRENT_LIST_FILE})
+endfunction()
+run_ctest_CDashUploadFTP()
#-----------------------------------------------------------------------------
# Test failed drops by various protocols
diff --git a/Tests/RunCMake/CommandLine/E_tar-bad-mtime1-result.txt b/Tests/RunCMake/CommandLine/E_tar-bad-mtime1-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/E_tar-bad-mtime1-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/CommandLine/E_tar-bad-mtime1-stderr.txt b/Tests/RunCMake/CommandLine/E_tar-bad-mtime1-stderr.txt
new file mode 100644
index 0000000..ca925f1
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/E_tar-bad-mtime1-stderr.txt
@@ -0,0 +1,2 @@
+^CMake Error: unable to parse mtime 'bad'
+CMake Error: Problem creating tar: bad.tar$
diff --git a/Tests/RunCMake/CommandLine/E_tar-bad-opt1-result.txt b/Tests/RunCMake/CommandLine/E_tar-bad-opt1-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/E_tar-bad-opt1-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/CommandLine/E_tar-bad-opt1-stderr.txt b/Tests/RunCMake/CommandLine/E_tar-bad-opt1-stderr.txt
new file mode 100644
index 0000000..35133c8
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/E_tar-bad-opt1-stderr.txt
@@ -0,0 +1 @@
+^CMake Error: Unknown option to -E tar: --bad$
diff --git a/Tests/RunCMake/CommandLine/E_tar-end-opt1-result.txt b/Tests/RunCMake/CommandLine/E_tar-end-opt1-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/E_tar-end-opt1-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/CommandLine/E_tar-end-opt1-stderr.txt b/Tests/RunCMake/CommandLine/E_tar-end-opt1-stderr.txt
new file mode 100644
index 0000000..f9339cc
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/E_tar-end-opt1-stderr.txt
@@ -0,0 +1,2 @@
+^CMake Error: archive_read_disk_entry_from_file:.*--bad
+CMake Error: Problem creating tar: bad.tar$
diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
index 0c43c20..2994f16 100644
--- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
@@ -1,5 +1,11 @@
include(RunCMake)
+run_cmake_command(E_tar-bad-opt1 ${CMAKE_COMMAND} -E tar cvf bad.tar --bad)
+run_cmake_command(E_tar-bad-mtime1 ${CMAKE_COMMAND} -E tar cvf bad.tar --mtime=bad .)
+run_cmake_command(E_tar-end-opt1 ${CMAKE_COMMAND} -E tar cvf bad.tar -- --bad)
+run_cmake_command(E_tar-end-opt2 ${CMAKE_COMMAND} -E tar cvf bad.tar --)
+run_cmake_command(E_tar-mtime ${CMAKE_COMMAND} -E tar cvf bad.tar "--mtime=1970-01-01 00:00:00 UTC")
+
run_cmake_command(build-no-cache
${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR})
run_cmake_command(build-no-generator
-----------------------------------------------------------------------
Summary of changes:
Help/command/ctest_submit.rst | 8 +-
Help/release/dev/cmake-E-tar-mtime.rst | 6 ++
Modules/CTestCoverageCollectGCOV.cmake | 35 +++++---
Source/CMakeLists.txt | 2 +
Source/CTest/cmCTestCurl.cxx | 13 +++
Source/CTest/cmCTestCurl.h | 8 +-
Source/CTest/cmCTestSubmitCommand.cxx | 89 ++++++++++++--------
Source/CTest/cmCTestSubmitCommand.h | 5 ++
Source/CTest/cmCTestSubmitHandler.cxx | 14 ++-
Source/cmArchiveWrite.cxx | 17 ++--
Source/cmArchiveWrite.h | 2 +-
Source/cmSystemTools.cxx | 7 +-
Source/cmSystemTools.h | 2 +-
.../{cmCommandsForBootstrap.cxx => cm_get_date.c} | 10 +--
Tests/QtAutogen/foo.h => Source/cm_get_date.h | 27 +++---
Source/cmcmd.cxx | 31 ++++---
.../CDashUploadFILES-result.txt} | 0
.../CTestSubmit/CDashUploadFILES-stderr.txt | 2 +
.../CDashUploadFTP-result.txt} | 0
.../RunCMake/CTestSubmit/CDashUploadFTP-stderr.txt | 1 +
.../CDashUploadNone-result.txt} | 0
.../CTestSubmit/CDashUploadNone-stderr.txt | 1 +
.../CDashUploadPARTS-result.txt} | 0
.../CTestSubmit/CDashUploadPARTS-stderr.txt | 2 +
.../CDashUploadRETRY_COUNT-result.txt} | 0
.../CTestSubmit/CDashUploadRETRY_COUNT-stderr.txt | 2 +
.../CDashUploadRETRY_DELAY-result.txt} | 0
.../CTestSubmit/CDashUploadRETRY_DELAY-stderr.txt | 2 +
.../PARTSCDashUpload-result.txt} | 0
.../CTestSubmit/PARTSCDashUpload-stderr.txt | 2 +
.../PARTSCDashUploadType-result.txt} | 0
.../CTestSubmit/PARTSCDashUploadType-stderr.txt | 2 +
Tests/RunCMake/CTestSubmit/RunCMakeTest.cmake | 13 +++
.../E_tar-bad-mtime1-result.txt} | 0
.../CommandLine/E_tar-bad-mtime1-stderr.txt | 2 +
.../E_tar-bad-opt1-result.txt} | 0
.../RunCMake/CommandLine/E_tar-bad-opt1-stderr.txt | 1 +
.../E_tar-end-opt1-result.txt} | 0
.../RunCMake/CommandLine/E_tar-end-opt1-stderr.txt | 2 +
Tests/RunCMake/CommandLine/RunCMakeTest.cmake | 6 ++
40 files changed, 207 insertions(+), 107 deletions(-)
create mode 100644 Help/release/dev/cmake-E-tar-mtime.rst
copy Source/{cmCommandsForBootstrap.cxx => cm_get_date.c} (75%)
copy Tests/QtAutogen/foo.h => Source/cm_get_date.h (63%)
copy Tests/RunCMake/{CTestMemcheck/DummyAddressSanitizer-result.txt => CTestSubmit/CDashUploadFILES-result.txt} (100%)
create mode 100644 Tests/RunCMake/CTestSubmit/CDashUploadFILES-stderr.txt
copy Tests/RunCMake/{CTestMemcheck/DummyAddressSanitizer-result.txt => CTestSubmit/CDashUploadFTP-result.txt} (100%)
create mode 100644 Tests/RunCMake/CTestSubmit/CDashUploadFTP-stderr.txt
copy Tests/RunCMake/{CTestMemcheck/DummyAddressSanitizer-result.txt => CTestSubmit/CDashUploadNone-result.txt} (100%)
create mode 100644 Tests/RunCMake/CTestSubmit/CDashUploadNone-stderr.txt
copy Tests/RunCMake/{CTestMemcheck/DummyAddressSanitizer-result.txt => CTestSubmit/CDashUploadPARTS-result.txt} (100%)
create mode 100644 Tests/RunCMake/CTestSubmit/CDashUploadPARTS-stderr.txt
copy Tests/RunCMake/{CTestMemcheck/DummyAddressSanitizer-result.txt => CTestSubmit/CDashUploadRETRY_COUNT-result.txt} (100%)
create mode 100644 Tests/RunCMake/CTestSubmit/CDashUploadRETRY_COUNT-stderr.txt
copy Tests/RunCMake/{CTestMemcheck/DummyAddressSanitizer-result.txt => CTestSubmit/CDashUploadRETRY_DELAY-result.txt} (100%)
create mode 100644 Tests/RunCMake/CTestSubmit/CDashUploadRETRY_DELAY-stderr.txt
copy Tests/RunCMake/{CTestMemcheck/DummyAddressSanitizer-result.txt => CTestSubmit/PARTSCDashUpload-result.txt} (100%)
create mode 100644 Tests/RunCMake/CTestSubmit/PARTSCDashUpload-stderr.txt
copy Tests/RunCMake/{CTestMemcheck/DummyAddressSanitizer-result.txt => CTestSubmit/PARTSCDashUploadType-result.txt} (100%)
create mode 100644 Tests/RunCMake/CTestSubmit/PARTSCDashUploadType-stderr.txt
copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => CommandLine/E_tar-bad-mtime1-result.txt} (100%)
create mode 100644 Tests/RunCMake/CommandLine/E_tar-bad-mtime1-stderr.txt
copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => CommandLine/E_tar-bad-opt1-result.txt} (100%)
create mode 100644 Tests/RunCMake/CommandLine/E_tar-bad-opt1-stderr.txt
copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => CommandLine/E_tar-end-opt1-result.txt} (100%)
create mode 100644 Tests/RunCMake/CommandLine/E_tar-end-opt1-stderr.txt
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list