diff options
author | Zachary Turner <zturner@google.com> | 2017-04-25 20:21:35 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2017-04-25 20:21:35 +0000 |
commit | e46b4498b8f11925986704196094eb6a89f6e3dc (patch) | |
tree | 37c5d2542da365ca1f66184ff66cb8cf223bf220 /llvm/unittests/ADT/StringExtrasTest.cpp | |
parent | 9b52d67e1729f5972cdd366c62f314de531c3f7d (diff) | |
download | bcm5719-llvm-e46b4498b8f11925986704196094eb6a89f6e3dc.tar.gz bcm5719-llvm-e46b4498b8f11925986704196094eb6a89f6e3dc.zip |
[StringExtras] Add a fromHex to complement toHex.
We already have a function toHex that will convert a string like
"\xFF\xFF" to the string "FFFF", but we do not have one that goes
the other way - i.e. to convert a textual string representing a
sequence of hexadecimal characters into the corresponding actual
bytes. This patch adds such a function.
llvm-svn: 301356
Diffstat (limited to 'llvm/unittests/ADT/StringExtrasTest.cpp')
-rw-r--r-- | llvm/unittests/ADT/StringExtrasTest.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/StringExtrasTest.cpp b/llvm/unittests/ADT/StringExtrasTest.cpp index afb984e405d..2cc9cad32b0 100644 --- a/llvm/unittests/ADT/StringExtrasTest.cpp +++ b/llvm/unittests/ADT/StringExtrasTest.cpp @@ -50,3 +50,19 @@ TEST(StringExtrasTest, JoinItems) { EXPECT_EQ("foo/bar/baz/x", join_items('/', Foo, Bar, Baz, X)); } + +TEST(StringExtrasTest, ToAndFromHex) { + std::vector<uint8_t> OddBytes = {0x5, 0xBD, 0x0D, 0x3E, 0xCD}; + std::string OddStr = "05BD0D3ECD"; + StringRef OddData(reinterpret_cast<const char *>(OddBytes.data()), + OddBytes.size()); + EXPECT_EQ(OddStr, toHex(OddData)); + EXPECT_EQ(OddData, fromHex(StringRef(OddStr).drop_front())); + + std::vector<uint8_t> EvenBytes = {0xA5, 0xBD, 0x0D, 0x3E, 0xCD}; + std::string EvenStr = "A5BD0D3ECD"; + StringRef EvenData(reinterpret_cast<const char *>(EvenBytes.data()), + EvenBytes.size()); + EXPECT_EQ(EvenStr, toHex(EvenData)); + EXPECT_EQ(EvenData, fromHex(EvenStr)); +}
\ No newline at end of file |