Remove boost::split
Replaced boost::split with a simple std::string_view-based split to
reduce Boost dependency and template instantiation during compilation
Tested: added UT and verified all tests passed
Change-Id: Icc84794a3d5a98088bdbce032dc76055a035f0dc
Signed-off-by: George Liu <liuxiwei@ieisystem.com>
diff --git a/test/test_utils.cpp b/test/test_utils.cpp
index 7c67e9b..af224a8 100644
--- a/test/test_utils.cpp
+++ b/test/test_utils.cpp
@@ -53,3 +53,45 @@
auto match = iFindFirst("", "Hello");
EXPECT_FALSE(match);
}
+
+TEST(SplitTest, NormalSplit)
+{
+ auto result = split("a,b,c", ',');
+ std::vector<std::string> expected = {"a", "b", "c"};
+ EXPECT_EQ(result, expected);
+}
+
+TEST(SplitTest, ConsecutiveDelimiters)
+{
+ auto result = split("a,,b", ',');
+ std::vector<std::string> expected = {"a", "", "b"};
+ EXPECT_EQ(result, expected);
+}
+
+TEST(SplitTest, LeadingDelimiter)
+{
+ auto result = split(",a,b", ',');
+ std::vector<std::string> expected = {"", "a", "b"};
+ EXPECT_EQ(result, expected);
+}
+
+TEST(SplitTest, TrailingDelimiter)
+{
+ auto result = split("a,b,", ',');
+ std::vector<std::string> expected = {"a", "b", ""};
+ EXPECT_EQ(result, expected);
+}
+
+TEST(SplitTest, NoDelimiter)
+{
+ auto result = split("abc", ',');
+ std::vector<std::string> expected = {"abc"};
+ EXPECT_EQ(result, expected);
+}
+
+TEST(SplitTest, EmptyString)
+{
+ auto result = split("", ',');
+ std::vector<std::string> expected = {""};
+ EXPECT_EQ(result, expected);
+}