summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2022-03-27 15:14:10 +0300
committerOrgad Shaneh <orgad.shaneh@audiocodes.com>2022-04-05 10:04:20 +0300
commit79087328ec60236112a7eb5818f5114d4992638d (patch)
treec46f83adc607ab5815c3691aed7851ef48309fc5
parentef2e922f9642f943199138447b29ec53fa63ea68 (diff)
downloadccache-79087328ec60236112a7eb5818f5114d4992638d.tar.gz
test: Simplify tokenizer tests
-rw-r--r--unittest/test_util_Tokenizer.cpp140
1 files changed, 42 insertions, 98 deletions
diff --git a/unittest/test_util_Tokenizer.cpp b/unittest/test_util_Tokenizer.cpp
index 76c9e027..0ada5a2a 100644
--- a/unittest/test_util_Tokenizer.cpp
+++ b/unittest/test_util_Tokenizer.cpp
@@ -23,116 +23,60 @@
TEST_CASE("util::Tokenizer")
{
using Mode = util::Tokenizer::Mode;
-
- SUBCASE("include empty tokens")
+ struct SplitTest
{
+ SplitTest(Mode mode) : m_mode(mode)
{
- const auto s = Util::split_into_views("", "/", Mode::include_empty);
- REQUIRE(s.size() == 1);
- CHECK(s[0] == "");
- }
- {
- const auto s = Util::split_into_views("/", "/", Mode::include_empty);
- REQUIRE(s.size() == 2);
- CHECK(s[0] == "");
- CHECK(s[1] == "");
- }
- {
- const auto s = Util::split_into_views("a/", "/", Mode::include_empty);
- REQUIRE(s.size() == 2);
- CHECK(s[0] == "a");
- CHECK(s[1] == "");
- }
- {
- const auto s = Util::split_into_views("/b", "/", Mode::include_empty);
- REQUIRE(s.size() == 2);
- CHECK(s[0] == "");
- CHECK(s[1] == "b");
- }
- {
- const auto s = Util::split_into_views("a/b", "/", Mode::include_empty);
- REQUIRE(s.size() == 2);
- CHECK(s[0] == "a");
- CHECK(s[1] == "b");
}
+
+ void
+ operator()(const char* input,
+ const char* separators,
+ const std::vector<std::string>& expected)
{
- const auto s = Util::split_into_views("/a:", "/:", Mode::include_empty);
- REQUIRE(s.size() == 3);
- CHECK(s[0] == "");
- CHECK(s[1] == "a");
- CHECK(s[2] == "");
+ const auto res = Util::split_into_views(input, separators, m_mode);
+ REQUIRE(res.size() == expected.size());
+ for (int i = 0, total = expected.size(); i < total; ++i)
+ CHECK(res[i] == expected[i]);
}
+
+ Mode m_mode;
+ };
+
+ SUBCASE("include empty tokens")
+ {
+ SplitTest split(Mode::include_empty);
+ split("", "/", {""});
+ split("/", "/", {"", ""});
+ split("a/", "/", {"a", ""});
+ split("/b", "/", {"", "b"});
+ split("a/b", "/", {"a", "b"});
+ split("/a:", "/:", {"", "a", ""});
}
SUBCASE("skip empty")
{
- CHECK(Util::split_into_views("", "/", Mode::skip_empty).empty());
- CHECK(Util::split_into_views("///", "/", Mode::skip_empty).empty());
- {
- const auto s = Util::split_into_views("a/b", "/", Mode::skip_empty);
- REQUIRE(s.size() == 2);
- CHECK(s[0] == "a");
- CHECK(s[1] == "b");
- }
- {
- const auto s = Util::split_into_views("a/b", "x", Mode::skip_empty);
- REQUIRE(s.size() == 1);
- CHECK(s[0] == "a/b");
- }
- {
- const auto s = Util::split_into_views("a/b:c", "/:", Mode::skip_empty);
- REQUIRE(s.size() == 3);
- CHECK(s[0] == "a");
- CHECK(s[1] == "b");
- CHECK(s[2] == "c");
- }
- {
- const auto s =
- Util::split_into_views(":a//b..:.c/:/.", "/:.", Mode::skip_empty);
- REQUIRE(s.size() == 3);
- CHECK(s[0] == "a");
- CHECK(s[1] == "b");
- CHECK(s[2] == "c");
- }
- {
- const auto s = Util::split_into_views(
- ".0.1.2.3.4.5.6.7.8.9.", "/:.+_abcdef", Mode::skip_empty);
- REQUIRE(s.size() == 10);
- CHECK(s[0] == "0");
- CHECK(s[9] == "9");
- }
+ SplitTest split(Mode::skip_empty);
+ split("", "/", {});
+ split("///", "/", {});
+ split("a/b", "/", {"a", "b"});
+ split("a/b", "x", {"a/b"});
+ split("a/b:c", "/:", {"a", "b", "c"});
+ split("/a:", "/:", {"a"});
+ split(":a//b..:.c/:/.", "/:.", {"a", "b", "c"});
+ split(".0.1.2.3.4.5.6.7.8.9.",
+ "/:.+_abcdef",
+ {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"});
}
SUBCASE("skip last empty token")
{
- CHECK(Util::split_into_views("", "/", Mode::skip_last_empty).empty());
- {
- const auto s = Util::split_into_views("/", "/", Mode::skip_last_empty);
- REQUIRE(s.size() == 1);
- CHECK(s[0] == "");
- }
- {
- const auto s = Util::split_into_views("a/", "/", Mode::skip_last_empty);
- REQUIRE(s.size() == 1);
- CHECK(s[0] == "a");
- }
- {
- const auto s = Util::split_into_views("/b", "/", Mode::skip_last_empty);
- REQUIRE(s.size() == 2);
- CHECK(s[0] == "");
- CHECK(s[1] == "b");
- }
- {
- const auto s = Util::split_into_views("a/b", "/", Mode::skip_last_empty);
- REQUIRE(s.size() == 2);
- CHECK(s[0] == "a");
- CHECK(s[1] == "b");
- }
- {
- const auto s = Util::split_into_views("/a:", "/:", Mode::skip_last_empty);
- REQUIRE(s.size() == 2);
- CHECK(s[0] == "");
- CHECK(s[1] == "a");
- }
+ SplitTest split(Mode::skip_last_empty);
+ split("", "/", {});
+ split("/", "/", {""});
+ split("a/", "/", {"a"});
+ split("/b", "/", {"", "b"});
+ split("a/b", "/", {"a", "b"});
+ split("/a:", "/:", {"", "a"});
}
}