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

Commit 576be31d authored by Pavlin Radoslavov's avatar Pavlin Radoslavov
Browse files

Add missing comparison operators for RawAddress

Test: Unit tests added
Bug: 64975965
Change-Id: Id27f1ef7ec99f0761d6e2fb40bf38212ab8312a1
parent 0e907a58
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -33,8 +33,12 @@ RawAddress::RawAddress(const uint8_t (&addr)[6]) {
  std::copy(addr, addr + kLength, address);
};

bool RawAddress::operator==(const RawAddress& rhl) const {
  return std::memcmp(address, rhl.address, sizeof(address)) == 0;
bool RawAddress::operator<(const RawAddress& rhs) const {
  return std::memcmp(address, rhs.address, sizeof(address)) < 0;
}

bool RawAddress::operator==(const RawAddress& rhs) const {
  return std::memcmp(address, rhs.address, sizeof(address)) == 0;
}

std::string RawAddress::ToString() const {
+5 −1
Original line number Diff line number Diff line
@@ -30,7 +30,11 @@ class RawAddress final {
  RawAddress() = default;
  RawAddress(const uint8_t (&addr)[6]);

  bool operator==(const RawAddress& rhl) const;
  bool operator<(const RawAddress& rhs) const;
  bool operator>(const RawAddress& rhs) const { return (rhs < *this); }
  bool operator<=(const RawAddress& rhs) const { return !(*this > rhs); }
  bool operator>=(const RawAddress& rhs) const { return !(*this < rhs); }
  bool operator==(const RawAddress& rhs) const;
  bool operator!=(const RawAddress& rhs) const { return !(*this == rhs); }

  bool IsEmpty() const { return *this == kEmpty; }
+60 −0
Original line number Diff line number Diff line
@@ -56,9 +56,69 @@ TEST(RawAddressTest, test_equals) {
  RawAddress::FromString(test_addr, bdaddr1);
  RawAddress::FromString(test_addr, bdaddr2);
  EXPECT_TRUE(bdaddr1 == bdaddr2);
  EXPECT_FALSE(bdaddr1 != bdaddr2);
  EXPECT_TRUE(bdaddr1 == bdaddr1);
  EXPECT_FALSE(bdaddr1 != bdaddr1);

  RawAddress::FromString(test_addr2, bdaddr3);
  EXPECT_FALSE(bdaddr2 == bdaddr3);
  EXPECT_TRUE(bdaddr2 != bdaddr3);
}

TEST(RawAddressTest, test_less_than) {
  RawAddress bdaddr1;
  RawAddress bdaddr2;
  RawAddress bdaddr3;
  RawAddress::FromString(test_addr, bdaddr1);
  RawAddress::FromString(test_addr, bdaddr2);
  EXPECT_FALSE(bdaddr1 < bdaddr2);
  EXPECT_FALSE(bdaddr1 < bdaddr1);

  RawAddress::FromString(test_addr2, bdaddr3);
  EXPECT_TRUE(bdaddr2 < bdaddr3);
  EXPECT_FALSE(bdaddr3 < bdaddr2);
}

TEST(RawAddressTest, test_more_than) {
  RawAddress bdaddr1;
  RawAddress bdaddr2;
  RawAddress bdaddr3;
  RawAddress::FromString(test_addr, bdaddr1);
  RawAddress::FromString(test_addr, bdaddr2);
  EXPECT_FALSE(bdaddr1 > bdaddr2);
  EXPECT_FALSE(bdaddr1 > bdaddr1);

  RawAddress::FromString(test_addr2, bdaddr3);
  EXPECT_FALSE(bdaddr2 > bdaddr3);
  EXPECT_TRUE(bdaddr3 > bdaddr2);
}

TEST(RawAddressTest, test_less_than_or_equal) {
  RawAddress bdaddr1;
  RawAddress bdaddr2;
  RawAddress bdaddr3;
  RawAddress::FromString(test_addr, bdaddr1);
  RawAddress::FromString(test_addr, bdaddr2);
  EXPECT_TRUE(bdaddr1 <= bdaddr2);
  EXPECT_TRUE(bdaddr1 <= bdaddr1);

  RawAddress::FromString(test_addr2, bdaddr3);
  EXPECT_TRUE(bdaddr2 <= bdaddr3);
  EXPECT_FALSE(bdaddr3 <= bdaddr2);
}

TEST(RawAddressTest, test_more_than_or_equal) {
  RawAddress bdaddr1;
  RawAddress bdaddr2;
  RawAddress bdaddr3;
  RawAddress::FromString(test_addr, bdaddr1);
  RawAddress::FromString(test_addr, bdaddr2);
  EXPECT_TRUE(bdaddr1 >= bdaddr2);
  EXPECT_TRUE(bdaddr1 >= bdaddr1);

  RawAddress::FromString(test_addr2, bdaddr3);
  EXPECT_FALSE(bdaddr2 >= bdaddr3);
  EXPECT_TRUE(bdaddr3 >= bdaddr2);
}

TEST(RawAddressTest, test_copy) {