#5 fix stupid port conversion bug

pull/32/head
Geoffrey Merck 4 years ago
parent b103ae9e3a
commit b7ac29589d

@ -42,7 +42,7 @@ unsigned int CStringUtils::stringToPort(const std::string& s)
unsigned int port = 0U;
std::string ls = boost::trim_copy(s);
if(!ls.empty() && std::all_of(ls.begin(), ls.end(), [](char c){ return c > '0' && c < '9'; })) {
if(!ls.empty() && std::all_of(ls.begin(), ls.end(), [](char c){ return c >= '0' && c <= '9'; })) {
auto portTemp = boost::lexical_cast<unsigned int>(ls);
if(portTemp > 0U && portTemp <= 65535U)
port = portTemp;

@ -54,4 +54,33 @@ namespace StringUtilsTests
EXPECT_EQ(port, 12345U);
}
TEST_F(StringUtils_stringToPort, StringWithMixedAlphaAndNumbersreturns0)
{
unsigned int port = CStringUtils::stringToPort("123abc456");
EXPECT_EQ(port, 0U);
}
TEST_F(StringUtils_stringToPort, TooLargeValueReturns0)
{
unsigned int port = CStringUtils::stringToPort("999999");
EXPECT_EQ(port, 0U);
}
TEST_F(StringUtils_stringToPort, TestAllNumDigits)
{
EXPECT_EQ(CStringUtils::stringToPort("10"), 10U);
EXPECT_EQ(CStringUtils::stringToPort("11"), 11U);
EXPECT_EQ(CStringUtils::stringToPort("12"), 12U);
EXPECT_EQ(CStringUtils::stringToPort("13"), 13U);
EXPECT_EQ(CStringUtils::stringToPort("14"), 14U);
EXPECT_EQ(CStringUtils::stringToPort("15"), 15U);
EXPECT_EQ(CStringUtils::stringToPort("16"), 16U);
EXPECT_EQ(CStringUtils::stringToPort("17"), 17U);
EXPECT_EQ(CStringUtils::stringToPort("18"), 18U);
EXPECT_EQ(CStringUtils::stringToPort("19"), 19U);
}
}
Loading…
Cancel
Save

Powered by TurnKey Linux.