summaryrefslogtreecommitdiffstats
path: root/Source/kwsys/testSystemTools.cxx
diff options
context:
space:
mode:
authorSebastien Barre <sebastien.barre@kitware.com>2005-06-20 17:49:04 (GMT)
committerSebastien Barre <sebastien.barre@kitware.com>2005-06-20 17:49:04 (GMT)
commit490119d2aa31eaaeb99a145ab3e7b2aee2c957db (patch)
treebb11518cee3504b5f399df447eaad3d631821ab5 /Source/kwsys/testSystemTools.cxx
parentff3ad9683159de867f76ee51afeb197a161a5f23 (diff)
downloadCMake-490119d2aa31eaaeb99a145ab3e7b2aee2c957db.zip
CMake-490119d2aa31eaaeb99a145ab3e7b2aee2c957db.tar.gz
CMake-490119d2aa31eaaeb99a145ab3e7b2aee2c957db.tar.bz2
ENH: fix test, it has to return a true/false value otherwise it just passes the test, and add test for EscapeChars
Diffstat (limited to 'Source/kwsys/testSystemTools.cxx')
-rw-r--r--Source/kwsys/testSystemTools.cxx51
1 files changed, 46 insertions, 5 deletions
diff --git a/Source/kwsys/testSystemTools.cxx b/Source/kwsys/testSystemTools.cxx
index ad0f9b5..484fdf4 100644
--- a/Source/kwsys/testSystemTools.cxx
+++ b/Source/kwsys/testSystemTools.cxx
@@ -27,6 +27,7 @@
# include "kwsys_ios_iostream.h.in"
#endif
+//----------------------------------------------------------------------------
const char* toUnixPaths[][2] =
{
{ "/usr/local/bin/passwd", "/usr/local/bin/passwd" },
@@ -47,24 +48,57 @@ const char* toUnixPaths[][2] =
{0, 0}
};
-bool CheckConvertToUnixSlashes(kwsys_stl::string input, kwsys_stl::string output)
+bool CheckConvertToUnixSlashes(kwsys_stl::string input,
+ kwsys_stl::string output)
{
kwsys_stl::string result = input;
kwsys::SystemTools::ConvertToUnixSlashes(result);
if ( result != output )
{
- kwsys_ios::cerr << "Problem with ConvertToUnixSlashes - input: " << input.c_str() << " output: " << result.c_str() << " expected: " << output.c_str() << kwsys_ios::endl;
+ kwsys_ios::cerr
+ << "Problem with ConvertToUnixSlashes - input: " << input.c_str()
+ << " output: " << result.c_str() << " expected: " << output.c_str()
+ << kwsys_ios::endl;
return false;
}
return true;
}
+//----------------------------------------------------------------------------
+const char* checkEscapeChars[][4] =
+{
+ { "1 foo 2 bar 2", "12", "\\", "\\1 foo \\2 bar \\2"},
+ { " {} ", "{}", "#", " #{#} "},
+ {0, 0, 0, 0}
+};
+
+bool CheckEscapeChars(kwsys_stl::string input,
+ const char *chars_to_escape,
+ char escape_char,
+ kwsys_stl::string output)
+{
+ kwsys_stl::string result = kwsys::SystemTools::EscapeChars(
+ input.c_str(), chars_to_escape, escape_char);
+ if (result != output)
+ {
+ kwsys_ios::cerr
+ << "Problem with CheckEscapeChars - input: " << input.c_str()
+ << " output: " << result.c_str() << " expected: " << output.c_str()
+ << kwsys_ios::endl;
+ return false;
+ }
+ return true;
+}
+
+//----------------------------------------------------------------------------
int main(/*int argc, char* argv*/)
{
+ bool res = true;
+
int cc;
for ( cc = 0; toUnixPaths[cc][0]; cc ++ )
{
- CheckConvertToUnixSlashes(toUnixPaths[cc][0], toUnixPaths[cc][1]);
+ res &= CheckConvertToUnixSlashes(toUnixPaths[cc][0], toUnixPaths[cc][1]);
}
// Special check for ~
@@ -72,7 +106,14 @@ int main(/*int argc, char* argv*/)
if(kwsys::SystemTools::GetEnv("HOME", output))
{
output += "/foo bar/lala";
- CheckConvertToUnixSlashes("~/foo bar/lala", output);
+ res &= CheckConvertToUnixSlashes("~/foo bar/lala", output);
}
- return 0;
+
+ for (cc = 0; checkEscapeChars[cc][0]; cc ++ )
+ {
+ res &= CheckEscapeChars(checkEscapeChars[cc][0], checkEscapeChars[cc][1],
+ *checkEscapeChars[cc][2], checkEscapeChars[cc][3]);
+ }
+
+ return res ? 0 : 1;
}