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

Commit 4c71d878 authored by Pavlin Radoslavov's avatar Pavlin Radoslavov Committed by android-build-merger
Browse files

Added RawAddress::FromOctets method to copy address from uint8_t pointer am:...

Added RawAddress::FromOctets method to copy address from uint8_t pointer am: a7192a1b am: 3c10c735
am: c882bb62

Change-Id: I3866513288fc6986af516d5530b7beeec56a73a8
parents a0146c70 c882bb62
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -62,6 +62,11 @@ bool RawAddress::FromString(const std::string& from, RawAddress& to) {
  return true;
}

size_t RawAddress::FromOctets(const uint8_t* from) {
  std::copy(from, from + kLength, address);
  return kLength;
};

bool RawAddress::IsValidAddress(const std::string& address) {
  RawAddress tmp;
  return RawAddress::FromString(address, tmp);
+4 −0
Original line number Diff line number Diff line
@@ -50,6 +50,10 @@ class RawAddress final {
  // returns false. Otherwise, it returns true.
  static bool FromString(const std::string& from, RawAddress& to);

  // Copies |from| raw Bluetooth address octets to the local object.
  // Returns the number of copied octets - should be always RawAddress::kLength
  size_t FromOctets(const uint8_t* from);

  static bool IsValidAddress(const std::string& address);

  static const RawAddress kEmpty;  // 00:00:00:00:00:00
+34 −0
Original line number Diff line number Diff line
@@ -23,6 +23,21 @@
static const char* test_addr = "12:34:56:78:9a:bc";
static const char* test_addr2 = "cb:a9:87:65:43:21";

TEST(RawAddressUnittest, test_constructor_array) {
  RawAddress bdaddr({0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc});

  ASSERT_EQ(0x12, bdaddr.address[0]);
  ASSERT_EQ(0x34, bdaddr.address[1]);
  ASSERT_EQ(0x56, bdaddr.address[2]);
  ASSERT_EQ(0x78, bdaddr.address[3]);
  ASSERT_EQ(0x9A, bdaddr.address[4]);
  ASSERT_EQ(0xBC, bdaddr.address[5]);

  std::string ret = bdaddr.ToString();

  ASSERT_STREQ(test_addr, ret.c_str());
}

TEST(RawAddressUnittest, test_is_empty) {
  RawAddress empty;
  RawAddress::FromString("00:00:00:00:00:00", empty);
@@ -49,6 +64,25 @@ TEST(RawAddressUnittest, test_to_from_str) {
  ASSERT_STREQ(test_addr, ret.c_str());
}

TEST(RawAddressUnittest, test_from_octets) {
  static const uint8_t test_addr_array[] = {0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc};

  RawAddress bdaddr;
  size_t expected_result = RawAddress::kLength;
  ASSERT_EQ(expected_result, bdaddr.FromOctets(test_addr_array));

  ASSERT_EQ(0x12, bdaddr.address[0]);
  ASSERT_EQ(0x34, bdaddr.address[1]);
  ASSERT_EQ(0x56, bdaddr.address[2]);
  ASSERT_EQ(0x78, bdaddr.address[3]);
  ASSERT_EQ(0x9A, bdaddr.address[4]);
  ASSERT_EQ(0xBC, bdaddr.address[5]);

  std::string ret = bdaddr.ToString();

  ASSERT_STREQ(test_addr, ret.c_str());
}

TEST(RawAddressTest, test_equals) {
  RawAddress bdaddr1;
  RawAddress bdaddr2;