Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9895d1eb authored by Chris Manton's avatar Chris Manton
Browse files

gd: Specialize template ToHexString<unsigned int>

Bug: 183171310
Tag: #refactor
Test: gd/cert/run
BYPASS_LONG_LINES_REASON: Bluetooth likes 120 lines

Change-Id: I73b5b986d6b38db006d11e7474a3fa1811e6efe3
parent 8c7dde2a
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@ std::string ToHexString(T x) {
}

template <>
inline std::string ToHexString<signed long>(signed long x) {
inline std::string ToHexString<>(signed long x) {
  if (x < 0) {
    if (x == LONG_MIN) return "LONG_MIN";
    return "-" + ToHexString<signed long>(-x);
@@ -60,6 +60,14 @@ inline std::string ToHexString<signed long>(signed long x) {
  return tmp.str();
}

template <>
inline std::string ToHexString<>(unsigned int x) {
  std::stringstream tmp;
  tmp << "0x" << std::internal << std::hex << std::setfill('0') << std::setw(sizeof(unsigned int) * 2)
      << (unsigned long)x;
  return tmp.str();
}

// Convert value into a hex decimal formatted string in lower case, prefixed with 0s
template <class InputIt>
std::string ToHexString(InputIt first, InputIt last) {
+10 −0
Original line number Diff line number Diff line
@@ -78,6 +78,16 @@ TEST(StringsTest, to_hex_string_from_number) {
  ASSERT_EQ(ToHexString('a'), "0x61");
}

TEST(StringsTest, to_hex_string_from_number_unsigned_int) {
  ASSERT_EQ(ToHexString(0U), "0x00000000");
  ASSERT_EQ(ToHexString(1U), "0x00000001");
  ASSERT_EQ(ToHexString(3U), "0x00000003");
  ASSERT_EQ(ToHexString(25U), "0x00000019");
  ASSERT_EQ(ToHexString(UINT_MAX), "0xffffffff");
  ASSERT_EQ(ToHexString(1U + UINT_MAX), "0x00000000");  // Rolled over
  ASSERT_EQ(ToHexString(2U + UINT_MAX), "0x00000001");  // Rolled over
}

TEST(StringsTest, trim_string_test) {
  ASSERT_EQ(StringTrim("  aa bb"), "aa bb");
  ASSERT_EQ(StringTrim("aa bb "), "aa bb");