Skip to content
Snippets Groups Projects
Commit 09942f51 authored by Ben Boeckel's avatar Ben Boeckel Committed by Brad King
Browse files

testSystemTools: add tests for SplitString

parent 95a97253
No related branches found
No related tags found
1 merge request!178Split string start edge
......@@ -1120,6 +1120,42 @@ static bool CheckURLParsing()
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* [])
{
bool res = true;
......@@ -1169,5 +1205,7 @@ int testSystemTools(int, char* [])
res &= CheckURLParsing();
res &= CheckSplitString();
return res ? 0 : 1;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment