Merge pull request #4850

b36353e2 unit_tests: add some hex parsing test for non hex input (xiphon)
6671110c unit_tests: add a test for parse_hexstr_to_binbuff (moneromooo-monero)
f6187cd8 epee: speed up parse_hexstr_to_binbuff a little (Howard Chu)
This commit is contained in:
Riccardo Spagni 2018-12-04 17:07:19 +02:00
commit 40650b43b8
No known key found for this signature in database
GPG key ID: 55432DF31CCD4FCD
2 changed files with 64 additions and 15 deletions

View file

@ -456,6 +456,35 @@ TEST(StringTools, PodToHex)
);
}
TEST(StringTools, ParseHex)
{
static const char data[] = "a10b68c2";
for (size_t i = 0; i < sizeof(data); i += 2)
{
std::string res;
ASSERT_TRUE(epee::string_tools::parse_hexstr_to_binbuff(std::string(data, i), res));
std::string hex = epee::string_tools::buff_to_hex_nodelimer(res);
ASSERT_EQ(hex.size(), i);
ASSERT_EQ(memcmp(data, hex.data(), i), 0);
}
}
TEST(StringTools, ParseNotHex)
{
std::string res;
for (size_t i = 0; i < 256; ++i)
{
std::string inputHexString = std::string(2, static_cast<char>(i));
if ((i >= '0' && i <= '9') || (i >= 'A' && i <= 'F') || (i >= 'a' && i <= 'f')) {
ASSERT_TRUE(epee::string_tools::parse_hexstr_to_binbuff(inputHexString, res));
} else {
ASSERT_FALSE(epee::string_tools::parse_hexstr_to_binbuff(inputHexString, res));
}
}
ASSERT_FALSE(epee::string_tools::parse_hexstr_to_binbuff(std::string("a"), res));
}
TEST(StringTools, GetIpString)
{
EXPECT_EQ(