From 36819d99c141758468308f3a5926e51cb6496901 Mon Sep 17 00:00:00 2001 From: KWSys Upstream <kwrobot@kitware.com> Date: Fri, 24 Jul 2020 07:04:25 -0400 Subject: KWSys 2020-07-24 (c3054d90) Code extracted from: https://gitlab.kitware.com/utils/kwsys.git at commit c3054d90612cc4a396d6e2087b696fc0923de1e9 (master). Upstream Shortlog ----------------- Jack Guo (1): 22216d56 SystemTools: Fix Touch() on broken symlink when create==false Robert Maynard (1): 29096513 Process: Prefer normative terms to express subprocess failures Sean McBride (1): eb6820b6 Glob: Explicitly delete copy construction and assignment --- Glob.hxx.in | 4 ++-- ProcessUNIX.c | 6 +++--- SystemTools.cxx | 2 +- testProcess.c | 11 ++++++----- testSystemTools.cxx | 22 ++++++++++++++++++++++ 5 files changed, 34 insertions(+), 11 deletions(-) diff --git a/Glob.hxx.in b/Glob.hxx.in index b5a34d5..e8474e2 100644 --- a/Glob.hxx.in +++ b/Glob.hxx.in @@ -126,8 +126,8 @@ protected: bool RecurseListDirs; private: - Glob(const Glob&); // Not implemented. - void operator=(const Glob&); // Not implemented. + Glob(const Glob&) = delete; + void operator=(const Glob&) = delete; }; } // namespace @KWSYS_NAMESPACE@ diff --git a/ProcessUNIX.c b/ProcessUNIX.c index cc45529..e1e7721 100644 --- a/ProcessUNIX.c +++ b/ProcessUNIX.c @@ -2128,17 +2128,17 @@ static void kwsysProcessSetExitExceptionByIndex(kwsysProcess* cp, int sig, #endif #ifdef SIGABRT case SIGABRT: - KWSYSPE_CASE(Other, "Child aborted"); + KWSYSPE_CASE(Other, "Subprocess aborted"); break; #endif #ifdef SIGKILL case SIGKILL: - KWSYSPE_CASE(Other, "Child killed"); + KWSYSPE_CASE(Other, "Subprocess killed"); break; #endif #ifdef SIGTERM case SIGTERM: - KWSYSPE_CASE(Other, "Child terminated"); + KWSYSPE_CASE(Other, "Subprocess terminated"); break; #endif #ifdef SIGHUP diff --git a/SystemTools.cxx b/SystemTools.cxx index 25705ea..2c39b91 100644 --- a/SystemTools.cxx +++ b/SystemTools.cxx @@ -1453,7 +1453,7 @@ bool SystemTools::PathCygwinToWin32(const char* path, char* win32_path) bool SystemTools::Touch(const std::string& filename, bool create) { - if (!SystemTools::PathExists(filename)) { + if (!SystemTools::FileExists(filename)) { if (create) { FILE* file = Fopen(filename, "a+b"); if (file) { diff --git a/testProcess.c b/testProcess.c index 0c658f5..eed770c 100644 --- a/testProcess.c +++ b/testProcess.c @@ -450,24 +450,25 @@ static int runChild2(kwsysProcess* kp, const char* cmd[], int state, printf("The process is still executing.\n"); break; case kwsysProcess_State_Expired: - printf("Child was killed when timeout expired.\n"); + printf("Subprocess was killed when timeout expired.\n"); break; case kwsysProcess_State_Exited: - printf("Child exited with value = %d\n", kwsysProcess_GetExitValue(kp)); + printf("Subprocess exited with value = %d\n", + kwsysProcess_GetExitValue(kp)); result = ((exception != kwsysProcess_GetExitException(kp)) || (value != kwsysProcess_GetExitValue(kp))); break; case kwsysProcess_State_Killed: - printf("Child was killed by parent.\n"); + printf("Subprocess was killed by parent.\n"); break; case kwsysProcess_State_Exception: - printf("Child terminated abnormally: %s\n", + printf("Subprocess terminated abnormally: %s\n", kwsysProcess_GetExceptionString(kp)); result = ((exception != kwsysProcess_GetExitException(kp)) || (value != kwsysProcess_GetExitValue(kp))); break; case kwsysProcess_State_Disowned: - printf("Child was disowned.\n"); + printf("Subprocess was disowned.\n"); break; case kwsysProcess_State_Error: printf("Error in administrating child process: [%s]\n", diff --git a/testSystemTools.cxx b/testSystemTools.cxx index 1d34614..cfa420d 100644 --- a/testSystemTools.cxx +++ b/testSystemTools.cxx @@ -422,6 +422,28 @@ static bool CheckFileOperations() res = false; } +#if !defined(_WIN32) + std::string const testBadSymlink(testNewDir + "/badSymlink.txt"); + std::string const testBadSymlinkTgt(testNewDir + "/missing/symlinkTgt.txt"); + if (!kwsys::SystemTools::CreateSymlink(testBadSymlinkTgt, testBadSymlink)) { + std::cerr << "Problem with CreateSymlink for: " << testBadSymlink << " -> " + << testBadSymlinkTgt << std::endl; + res = false; + } + + if (!kwsys::SystemTools::Touch(testBadSymlink, false)) { + std::cerr << "Problem with Touch (no create) for: " << testBadSymlink + << std::endl; + res = false; + } +#endif + + if (!kwsys::SystemTools::Touch(testNewDir, false)) { + std::cerr << "Problem with Touch (no create) for: " << testNewDir + << std::endl; + res = false; + } + kwsys::SystemTools::Touch(testNewFile, true); if (!kwsys::SystemTools::RemoveADirectory(testNewDir)) { std::cerr << "Problem with RemoveADirectory for: " << testNewDir -- cgit v0.12