Remove boost::to_lower_copy
Replaced with inline std::transform lambda for lowercase conversion,
removing Boost dependency.
Tested: added UT and verified all tests passed
Change-Id: Ie875e131b2e0a7d5ab53288928983d640a9d1c12
Signed-off-by: George Liu <liuxiwei@ieisystem.com>
diff --git a/src/entity_manager/dbus_interface.cpp b/src/entity_manager/dbus_interface.cpp
index 461b27c..d7169ce 100644
--- a/src/entity_manager/dbus_interface.cpp
+++ b/src/entity_manager/dbus_interface.cpp
@@ -3,7 +3,6 @@
#include "perform_probe.hpp"
#include "utils.hpp"
-#include <boost/algorithm/string/case_conv.hpp>
#include <boost/container/flat_map.hpp>
#include <phosphor-logging/lg2.hpp>
diff --git a/src/entity_manager/entity_manager.cpp b/src/entity_manager/entity_manager.cpp
index 522c6f3..f9560f3 100644
--- a/src/entity_manager/entity_manager.cpp
+++ b/src/entity_manager/entity_manager.cpp
@@ -13,7 +13,6 @@
#include "topology.hpp"
#include "utils.hpp"
-#include <boost/algorithm/string/case_conv.hpp>
#include <boost/asio/io_context.hpp>
#include <boost/asio/post.hpp>
#include <boost/asio/steady_timer.hpp>
diff --git a/src/entity_manager/utils.cpp b/src/entity_manager/utils.cpp
index 4e46395..86024c5 100644
--- a/src/entity_manager/utils.cpp
+++ b/src/entity_manager/utils.cpp
@@ -5,7 +5,6 @@
#include "expression.hpp"
#include "phosphor-logging/lg2.hpp"
-#include <boost/algorithm/string/case_conv.hpp>
#include <phosphor-logging/lg2.hpp>
#include <sdbusplus/bus/match.hpp>
@@ -291,8 +290,7 @@
const std::string& boardType)
{
std::string path = "/xyz/openbmc_project/inventory/system/";
- std::string boardTypeLower = boost::algorithm::to_lower_copy(boardType);
-
+ std::string boardTypeLower = toLowerCopy(boardType);
std::regex_replace(boardName.begin(), boardName.begin(), boardName.end(),
illegalDbusMemberRegex, "_");
diff --git a/src/utils.cpp b/src/utils.cpp
index de433c8..d88df36 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -235,3 +235,11 @@
pos += replace.size();
}
}
+
+std::string toLowerCopy(std::string_view str)
+{
+ std::string result(str);
+ std::transform(result.begin(), result.end(), result.begin(),
+ [](unsigned char c) { return asciiToLower(c); });
+ return result;
+}
diff --git a/src/utils.hpp b/src/utils.hpp
index 5ec882c..107d97e 100644
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -103,6 +103,8 @@
void replaceAll(std::string& str, std::string_view search,
std::string_view replace);
+std::string toLowerCopy(std::string_view str);
+
template <typename T>
std::from_chars_result fromCharsWrapper(const std::string_view& str, T& out,
bool& fullMatch, int base = 10)
diff --git a/test/test_utils.cpp b/test/test_utils.cpp
index 54e2957..309eaeb 100644
--- a/test/test_utils.cpp
+++ b/test/test_utils.cpp
@@ -151,3 +151,18 @@
iReplaceAll(str, "abc", "");
EXPECT_EQ(str, " ");
}
+
+TEST(ToLowerCopyTest, BasicTests)
+{
+ EXPECT_EQ(toLowerCopy("HelloWorld"), "helloworld");
+
+ EXPECT_EQ(toLowerCopy("HELLOWORLD"), "helloworld");
+
+ EXPECT_EQ(toLowerCopy("helloworld"), "helloworld");
+
+ EXPECT_EQ(toLowerCopy("123ABC!@#"), "123abc!@#");
+
+ EXPECT_EQ(toLowerCopy("!@#$%^&*()_+"), "!@#$%^&*()_+");
+
+ EXPECT_EQ(toLowerCopy(""), "");
+}