summaryrefslogtreecommitdiffstats
path: root/Tests/CMakeLib
diff options
context:
space:
mode:
authorSebastian Holtermann <sebholt@xwmw.org>2019-08-02 12:46:13 (GMT)
committerSebastian Holtermann <sebholt@xwmw.org>2019-08-05 09:25:30 (GMT)
commit959b97a27f8816fb1db5c3a1d51cd994086a886b (patch)
treea81bd52c4c0a37256cb6e36f0dd93778a1ad63a0 /Tests/CMakeLib
parent7fbcc16dcd92a80eb30baab93388a0b8e294969b (diff)
downloadCMake-959b97a27f8816fb1db5c3a1d51cd994086a886b.zip
CMake-959b97a27f8816fb1db5c3a1d51cd994086a886b.tar.gz
CMake-959b97a27f8816fb1db5c3a1d51cd994086a886b.tar.bz2
Tests: testStringAlgorithms: Add cmTrimWhitespace, cmEscapeQuotes, cmTokenize
Extend the testStringAlgorithms test with tests for `cmTrimWhitespace`, `cmEscapeQuotes` and `cmTokenize`.
Diffstat (limited to 'Tests/CMakeLib')
-rw-r--r--Tests/CMakeLib/testStringAlgorithms.cxx37
1 files changed, 37 insertions, 0 deletions
diff --git a/Tests/CMakeLib/testStringAlgorithms.cxx b/Tests/CMakeLib/testStringAlgorithms.cxx
index 95616ff..55d2a8f 100644
--- a/Tests/CMakeLib/testStringAlgorithms.cxx
+++ b/Tests/CMakeLib/testStringAlgorithms.cxx
@@ -38,6 +38,28 @@ int testStringAlgorithms(int /*unused*/, char* /*unused*/ [])
};
// ----------------------------------------------------------------------
+ // Test cmTrimWhitespace
+ {
+ std::string base = "base";
+ std::string spaces = " \f\f\n\n\r\r\t\t\v\v";
+ assert_string(cmTrimWhitespace(spaces + base), base,
+ "cmTrimWhitespace front");
+ assert_string(cmTrimWhitespace(base + spaces), base,
+ "cmTrimWhitespace back");
+ assert_string(cmTrimWhitespace(spaces + base + spaces), base,
+ "cmTrimWhitespace front and back");
+ }
+
+ // ----------------------------------------------------------------------
+ // Test cmEscapeQuotes
+ {
+ assert_string(cmEscapeQuotes("plain"), "plain", "cmEscapeQuotes plain");
+ std::string base = "\"base\"\"";
+ std::string result = "\\\"base\\\"\\\"";
+ assert_string(cmEscapeQuotes(base), result, "cmEscapeQuotes escaped");
+ }
+
+ // ----------------------------------------------------------------------
// Test cmJoin
{
typedef std::string ST;
@@ -52,6 +74,21 @@ int testStringAlgorithms(int /*unused*/, char* /*unused*/ [])
}
// ----------------------------------------------------------------------
+ // Test cmTokenize
+ {
+ typedef std::vector<std::string> VT;
+ assert_ok(cmTokenize("", ";") == VT{ "" }, "cmTokenize empty");
+ assert_ok(cmTokenize(";", ";") == VT{ "" }, "cmTokenize sep");
+ assert_ok(cmTokenize("abc", ";") == VT{ "abc" }, "cmTokenize item");
+ assert_ok(cmTokenize("abc;", ";") == VT{ "abc" }, "cmTokenize item sep");
+ assert_ok(cmTokenize(";abc", ";") == VT{ "abc" }, "cmTokenize sep item");
+ assert_ok(cmTokenize("abc;;efg", ";") == VT{ "abc", "efg" },
+ "cmTokenize item sep sep item");
+ assert_ok(cmTokenize("a1;a2;a3;a4", ";") == VT{ "a1", "a2", "a3", "a4" },
+ "cmTokenize multiple items");
+ }
+
+ // ----------------------------------------------------------------------
// Test cmStrCat
{
int ni = -1100;