Fixed escapeForFileName(). [#CLICKHOUSE-2]

This commit is contained in:
Vitaliy Lyudvichenko 2017-08-12 23:46:22 +03:00
parent f36caa9c99
commit 1c8a280d63
2 changed files with 16 additions and 2 deletions

View File

@ -39,15 +39,16 @@ std::string unescapeForFileName(const std::string & s)
while (pos != end)
{
if (!(*pos == '%' && pos + 2 < end))
{
res += *pos;
++pos;
}
else
{
++pos;
res += unhex2(pos);
pos += 2;
}
++pos;
}
return res;
}

View File

@ -0,0 +1,13 @@
#include <Common/escapeForFileName.h>
#include <gtest/gtest.h>
using namespace DB;
TEST(Common, unescapeForFileName)
{
EXPECT_EQ(unescapeForFileName(escapeForFileName("172.19.0.6")), "172.19.0.6");
EXPECT_EQ(unescapeForFileName(escapeForFileName("abcd.")), "abcd.");
EXPECT_EQ(unescapeForFileName(escapeForFileName("abcd")), "abcd");
EXPECT_EQ(unescapeForFileName(escapeForFileName("..::")), "..::");
}