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

Commit 0ed986e1 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 7223915 from 2cea93bd to sc-release

Change-Id: Iafda9e88e27cd22612dc26b03d38040415a25520
parents 77bbca89 2cea93bd
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -377,7 +377,6 @@ cc_test {
    },
    srcs: [
        "hci/address.cc",
        ":BluetoothCommonSources",
        ":BluetoothPacketSources",
        ":BluetoothPacketParserTestPacketTestSources",
    ],
@@ -389,7 +388,6 @@ cc_test {
        cfi: true,
    },
    static_libs: [
        "libbluetooth_rust_interop",
        "libchrome",
        "libbt-platform-protos-lite",
    ],
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
#include <sstream>
#include <utility>

#include "common/init_flags.h"
#include "os/log.h"

namespace bluetooth {
+14 −1
Original line number Diff line number Diff line
@@ -37,10 +37,23 @@ namespace common {
template <typename T>
std::string ToHexString(T x) {
  if (x < 0) {
    if (x == INT_MIN) return "INT_MIN";
    return "-" + ToHexString(-x);
  }
  std::stringstream tmp;
  tmp << "0x" << std::internal << std::hex << std::setfill('0') << std::setw(sizeof(T) * 2) << (unsigned int)x;
  tmp << "0x" << std::internal << std::hex << std::setfill('0') << std::setw(sizeof(T) * 2) << (unsigned long)x;
  return tmp.str();
}

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

+33 −1
Original line number Diff line number Diff line
@@ -37,12 +37,44 @@ using bluetooth::common::ToHexString;
using bluetooth::common::ToString;
using bluetooth::common::Uint64FromString;

static inline bool is_arch32() {
  return sizeof(long) == 4;
}
static inline bool is_arch64() {
  return sizeof(long) == 8;
}

TEST(StringsTest, to_hex_string_from_number) {
  ASSERT_EQ(ToHexString(0), "0x00000000");
  ASSERT_EQ(ToHexString(3), "0x00000003");
  ASSERT_EQ(ToHexString(25), "0x00000019");
  ASSERT_EQ(ToHexString(-25), "-0x00000019");
  ASSERT_EQ(ToHexString(INT_MIN + 1), "-0x7fffffff");
  ASSERT_EQ(ToHexString(INT_MAX), "0x7fffffff");
  ASSERT_EQ(ToHexString(INT_MIN), "INT_MIN");
  if (is_arch32()) {
    ASSERT_EQ(ToHexString(1 + INT_MAX), "INT_MIN");
    ASSERT_EQ(ToHexString(2 + INT_MAX), "-0x7fffffff");  // Rolled over
    ASSERT_EQ(ToHexString(-1 - INT_MIN), "0x7fffffff");  // Rolled over
    ASSERT_EQ(ToHexString(LONG_MAX), "0x7fffffff");
    ASSERT_EQ(ToHexString(LONG_MAX - 1L), "0x7ffffffe");
    ASSERT_EQ(ToHexString(LONG_MIN), "LONG_MIN");
    ASSERT_EQ(ToHexString(LONG_MIN + 1L), "-0x7fffffff");
  } else if (is_arch64()) {
    ASSERT_EQ(ToHexString((signed long)INT_MIN), "-0x0000000080000000");
    ASSERT_EQ(ToHexString(1 + INT_MAX), "INT_MIN");      // Rolled over
    ASSERT_EQ(ToHexString(2 + INT_MAX), "-0x7fffffff");  // Rolled over
    ASSERT_EQ(ToHexString(1L + INT_MAX), "0x0000000080000000");
    ASSERT_EQ(ToHexString(2L + INT_MAX), "0x0000000080000001");
    ASSERT_EQ(ToHexString(-1L + INT_MIN), "-0x0000000080000001");
    ASSERT_EQ(ToHexString(LONG_MAX), "0x7fffffffffffffff");
    ASSERT_EQ(ToHexString(LONG_MAX - 1L), "0x7ffffffffffffffe");
    ASSERT_EQ(ToHexString(LONG_MIN), "LONG_MIN");
    ASSERT_EQ(ToHexString(LONG_MIN + 1L), "-0x7fffffffffffffff");
  } else {
    LOG_ERROR("Unknown architecture");
    ASSERT_TRUE(false);
  }
  ASSERT_EQ(ToHexString('a'), "0x61");
}

+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@
#include <sstream>

#include "common/circular_buffer.h"
#include "common/init_flags.h"
#include "common/strings.h"
#include "os/files.h"
#include "os/log.h"
Loading