Merge topic 'remove-EscapeSpaces'

cb9ea26 Remove cmSystemTools::EscapeSpaces method
5383657 CTest: Avoid use of old EscapeSpaces method
This commit is contained in:
Brad King 2010-08-19 13:28:50 -04:00 committed by CMake Topic Stage
commit c873a83b6c
7 changed files with 62 additions and 99 deletions

View File

@ -201,8 +201,7 @@ void cmCTestMemCheckHandler::Initialize()
this->CustomMaximumPassedTestOutputSize = 0;
this->CustomMaximumFailedTestOutputSize = 0;
this->MemoryTester = "";
this->MemoryTesterOptionsParsed.clear();
this->MemoryTesterOptions = "";
this->MemoryTesterOptions.clear();
this->MemoryTesterStyle = UNKNOWN;
this->MemoryTesterOutputFile = "";
int cc;
@ -249,12 +248,12 @@ void cmCTestMemCheckHandler::GenerateTestCommand(
std::vector<cmStdString>::size_type pp;
std::string memcheckcommand = "";
memcheckcommand = this->MemoryTester;
for ( pp = 0; pp < this->MemoryTesterOptionsParsed.size(); pp ++ )
for ( pp = 0; pp < this->MemoryTesterOptions.size(); pp ++ )
{
args.push_back(this->MemoryTesterOptionsParsed[pp]);
memcheckcommand += " ";
memcheckcommand += cmSystemTools::EscapeSpaces(
this->MemoryTesterOptionsParsed[pp].c_str());
args.push_back(this->MemoryTesterOptions[pp]);
memcheckcommand += " \"";
memcheckcommand += this->MemoryTesterOptions[pp];
memcheckcommand += "\"";
}
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Memory check command: "
<< memcheckcommand << std::endl);
@ -440,18 +439,21 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
}
// Setup the options
std::string memoryTesterOptions;
if ( this->CTest->GetCTestConfiguration(
"MemoryCheckCommandOptions").size() )
{
this->MemoryTesterOptions = this->CTest->GetCTestConfiguration(
memoryTesterOptions = this->CTest->GetCTestConfiguration(
"MemoryCheckCommandOptions");
}
else if ( this->CTest->GetCTestConfiguration(
"ValgrindCommandOptions").size() )
{
this->MemoryTesterOptions = this->CTest->GetCTestConfiguration(
memoryTesterOptions = this->CTest->GetCTestConfiguration(
"ValgrindCommandOptions");
}
this->MemoryTesterOptions
= cmSystemTools::ParseArguments(memoryTesterOptions.c_str());
this->MemoryTesterOutputFile
= this->CTest->GetBinaryDir() + "/Testing/Temporary/MemoryChecker.log";
@ -459,10 +461,14 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
if ( this->MemoryTester.find("valgrind") != std::string::npos )
{
this->MemoryTesterStyle = cmCTestMemCheckHandler::VALGRIND;
if ( !this->MemoryTesterOptions.size() )
if ( this->MemoryTesterOptions.empty() )
{
this->MemoryTesterOptions = "-q --tool=memcheck --leak-check=yes "
"--show-reachable=yes --workaround-gcc296-bugs=yes --num-callers=50";
this->MemoryTesterOptions.push_back("-q");
this->MemoryTesterOptions.push_back("--tool=memcheck");
this->MemoryTesterOptions.push_back("--leak-check=yes");
this->MemoryTesterOptions.push_back("--show-reachable=yes");
this->MemoryTesterOptions.push_back("--workaround-gcc296-bugs=yes");
this->MemoryTesterOptions.push_back("--num-callers=50");
}
if ( this->CTest->GetCTestConfiguration(
"MemoryCheckSuppressionFile").size() )
@ -476,17 +482,15 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
"MemoryCheckSuppressionFile").c_str() << std::endl);
return false;
}
this->MemoryTesterOptions += " --suppressions=" +
cmSystemTools::EscapeSpaces(this->CTest->GetCTestConfiguration(
"MemoryCheckSuppressionFile").c_str()) + "";
std::string suppressions = "--suppressions="
+ this->CTest->GetCTestConfiguration("MemoryCheckSuppressionFile");
this->MemoryTesterOptions.push_back(suppressions);
}
}
else if ( this->MemoryTester.find("purify") != std::string::npos )
{
this->MemoryTesterStyle = cmCTestMemCheckHandler::PURIFY;
std::string outputFile =
cmSystemTools::EscapeSpaces(this->MemoryTesterOutputFile.c_str());
std::string outputFile;
#ifdef _WIN32
if( this->CTest->GetCTestConfiguration(
"MemoryCheckSuppressionFile").size() )
@ -500,31 +504,29 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
"MemoryCheckSuppressionFile").c_str() << std::endl);
return false;
}
this->MemoryTesterOptions += " /FilterFiles=" +
cmSystemTools::EscapeSpaces(this->CTest->GetCTestConfiguration(
"MemoryCheckSuppressionFile").c_str());
std::string filterFiles = "/FilterFiles="
+ this->CTest->GetCTestConfiguration("MemoryCheckSuppressionFile");
this->MemoryTesterOptions.push_back(filterFiles);
}
this->MemoryTesterOptions += " /SAVETEXTDATA=" + outputFile;
outputFile = "/SAVETEXTDATA=";
#else
this->MemoryTesterOptions += " -log-file=" + outputFile;
outputFile = "-log-file=";
#endif
outputFile += this->MemoryTesterOutputFile;
this->MemoryTesterOptions.push_back(outputFile);
}
else if ( this->MemoryTester.find("BC") != std::string::npos )
{
this->BoundsCheckerXMLFile = this->MemoryTesterOutputFile;
std::string outputFile =
cmSystemTools::EscapeSpaces(this->MemoryTesterOutputFile.c_str());
std::string dpbdFile = this->CTest->GetBinaryDir()
+ "/Testing/Temporary/MemoryChecker.DPbd";
std::string errorFile = this->CTest->GetBinaryDir()
+ "/Testing/Temporary/MemoryChecker.error";
errorFile = cmSystemTools::EscapeSpaces(errorFile.c_str());
this->BoundsCheckerDPBDFile = dpbdFile;
dpbdFile = cmSystemTools::EscapeSpaces(dpbdFile.c_str());
this->MemoryTesterStyle = cmCTestMemCheckHandler::BOUNDS_CHECKER;
this->MemoryTesterOptions += " /B " + dpbdFile;
this->MemoryTesterOptions += " /X " + outputFile;
this->MemoryTesterOptions += " /M ";
this->MemoryTesterOptions.push_back("/B");
this->MemoryTesterOptions.push_back(dpbdFile);
this->MemoryTesterOptions.push_back("/X");
this->MemoryTesterOptions.push_back(this->MemoryTesterOutputFile);
this->MemoryTesterOptions.push_back("/M");
}
else
{
@ -534,8 +536,6 @@ bool cmCTestMemCheckHandler::InitializeMemoryChecking()
return false;
}
this->MemoryTesterOptionsParsed
= cmSystemTools::ParseArguments(this->MemoryTesterOptions.c_str());
std::vector<cmStdString>::size_type cc;
for ( cc = 0; cmCTestMemCheckResultStrings[cc]; cc ++ )
{

View File

@ -89,8 +89,7 @@ private:
std::string BoundsCheckerDPBDFile;
std::string BoundsCheckerXMLFile;
std::string MemoryTester;
std::vector<cmStdString> MemoryTesterOptionsParsed;
std::string MemoryTesterOptions;
std::vector<cmStdString> MemoryTesterOptions;
int MemoryTesterStyle;
std::string MemoryTesterOutputFile;
int MemoryTesterGlobalResults[NO_MEMORY_FAULT];

View File

@ -471,7 +471,7 @@ void cmCTestRunTest::ComputeArguments()
this->TestProperties->Args[1].c_str());
++j; //skip the executable (it will be actualCommand)
}
this->TestCommand
std::string testCommand
= cmSystemTools::ConvertToOutputPath(this->ActualCommand.c_str());
//Prepends memcheck args to our command string
@ -479,22 +479,24 @@ void cmCTestRunTest::ComputeArguments()
for(std::vector<std::string>::iterator i = this->Arguments.begin();
i != this->Arguments.end(); ++i)
{
this->TestCommand += " ";
this->TestCommand += cmSystemTools::EscapeSpaces(i->c_str());
testCommand += " \"";
testCommand += *i;
testCommand += "\"";
}
for(;j != this->TestProperties->Args.end(); ++j)
{
this->TestCommand += " ";
this->TestCommand += cmSystemTools::EscapeSpaces(j->c_str());
testCommand += " \"";
testCommand += *j;
testCommand += "\"";
this->Arguments.push_back(*j);
}
this->TestResult.FullCommandLine = this->TestCommand;
this->TestResult.FullCommandLine = testCommand;
cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, std::endl
<< this->Index << ": "
<< (this->TestHandler->MemCheck?"MemCheck":"Test")
<< " command: " << this->TestCommand
<< " command: " << testCommand
<< std::endl);
}

View File

@ -89,7 +89,6 @@ private:
cmCTestTestHandler::cmCTestTestResult TestResult;
int Index;
std::string StartTime;
std::string TestCommand;
std::string ActualCommand;
std::vector<std::string> Arguments;
bool StopTimePassed;

View File

@ -2810,17 +2810,29 @@ cmLocalGenerator
std::string cmLocalGenerator::EscapeForShellOldStyle(const char* str)
{
std::string result;
bool forceOn = cmSystemTools::GetForceUnixPaths();
if(forceOn && this->WindowsShell)
#if defined(_WIN32) && !defined(__CYGWIN__)
// if there are spaces
std::string temp = str;
if (temp.find(" ") != std::string::npos &&
temp.find("\"")==std::string::npos)
{
cmSystemTools::SetForceUnixPaths(false);
result = "\"";
result += str;
result += "\"";
return result;
}
result = cmSystemTools::EscapeSpaces(str);
if(forceOn && this->WindowsShell)
return str;
#else
for(const char* ch = str; *ch != '\0'; ++ch)
{
cmSystemTools::SetForceUnixPaths(true);
if(*ch == ' ')
{
result += '\\';
}
result += *ch;
}
return result;
#endif
}
//----------------------------------------------------------------------------

View File

@ -191,49 +191,6 @@ std::string cmSystemTools::EscapeQuotes(const char* str)
return result;
}
std::string cmSystemTools::EscapeSpaces(const char* str)
{
#if defined(_WIN32) && !defined(__CYGWIN__)
bool useDoubleQ = true;
#else
bool useDoubleQ = false;
#endif
if(cmSystemTools::s_ForceUnixPaths)
{
useDoubleQ = false;
}
if(useDoubleQ)
{
std::string result;
// if there are spaces
std::string temp = str;
if (temp.find(" ") != std::string::npos &&
temp.find("\"")==std::string::npos)
{
result = "\"";
result += str;
result += "\"";
return result;
}
return str;
}
else
{
std::string result = "";
for(const char* ch = str; *ch != '\0'; ++ch)
{
if(*ch == ' ')
{
result += '\\';
}
result += *ch;
}
return result;
}
}
void cmSystemTools::Error(const char* m1, const char* m2,
const char* m3, const char* m4)
{

View File

@ -46,12 +46,6 @@ public:
static void ExpandRegistryValues(std::string& source,
KeyWOW64 view = KeyWOW64_Default);
/**
* Platform independent escape spaces, unix uses backslash,
* windows double quotes the string.
*/
static std::string EscapeSpaces(const char* str);
///! Escape quotes in a string.
static std::string EscapeQuotes(const char* str);