An update will be applied December 9th, between 12PM and 1:00PM EST (UTC -5:00). The site may be slow during that time.

Commit 09942f51 authored by Ben Boeckel's avatar Ben Boeckel Committed by Brad King
Browse files

testSystemTools: add tests for SplitString

parent 95a97253
...@@ -1120,6 +1120,42 @@ static bool CheckURLParsing() ...@@ -1120,6 +1120,42 @@ static bool CheckURLParsing()
return ret; return ret;
} }
static bool CheckSplitString()
{
bool ret = true;
auto check_split = [](std::string const& input,
std::initializer_list<const char*> expected) -> bool {
auto const components = kwsys::SystemTools::SplitString(input, '/');
if (components.size() != expected.size()) {
std::cerr << "Incorrect split count for " << input << ": "
<< components.size() << std::endl;
return false;
}
size_t i = 0;
for (auto& part : expected) {
if (components[i] != part) {
std::cerr << "Incorrect split component " << i << " for " << input
<< ": " << components[i] << std::endl;
return false;
}
++i;
}
return true;
};
// No separators
ret &= check_split("nosep", { "nosep" });
// Simple
ret &= check_split("first/second", { "first", "second" });
// Separator at beginning
ret &= check_split("/starts/sep", { "", "starts", "sep" });
// Separator at end
ret &= check_split("ends/sep/", { "ends", "sep", "" });
return ret;
}
int testSystemTools(int, char* []) int testSystemTools(int, char* [])
{ {
bool res = true; bool res = true;
...@@ -1169,5 +1205,7 @@ int testSystemTools(int, char* []) ...@@ -1169,5 +1205,7 @@ int testSystemTools(int, char* [])
res &= CheckURLParsing(); res &= CheckURLParsing();
res &= CheckSplitString();
return res ? 0 : 1; return res ? 0 : 1;
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment