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

Commit 4eed2886 authored by Jakub Tyszkowski's avatar Jakub Tyszkowski Committed by Gerrit Code Review
Browse files

Merge "LeAudio: Fix LTV vector creation macros" into main

parents fc628ca4 b9b70971
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -39,9 +39,9 @@ namespace le_audio {
#define UINT8_TO_VEC_UINT8(u8) \
  std::vector<uint8_t> { u8 }
#define UINT16_TO_VEC_UINT8(u16) \
  std::vector<uint8_t>((uint8_t*)&u16, (uint8_t*)&u16 + sizeof(u16))
  std::vector<uint8_t>((uint8_t*)&u16, (uint8_t*)&u16 + sizeof(uint16_t))
#define UINT32_TO_VEC_UINT8(u32) \
  std::vector<uint8_t>((uint8_t*)&u32, (uint8_t*)&u32 + sizeof(u32))
  std::vector<uint8_t>((uint8_t*)&u32, (uint8_t*)&u32 + sizeof(uint32_t))

#define VEC_UINT8_TO_UINT8(vec) vec.data()[0]
#define VEC_UINT8_TO_UINT16(vec) ((vec.data()[1] << 8) + vec.data()[0])
+16 −0
Original line number Diff line number Diff line
@@ -88,6 +88,22 @@ TEST(LeAudioLtvMapTest, test_serialization) {
  ASSERT_THAT(ltv_map2.RawPacket(), ElementsAreArray(ltv_test_vec2));
}

TEST(LeAudioLtvMapTest, test_serialization_macros) {
  uint64_t value = 0x08090A0B0C0D0E0F;

  auto u16vec = UINT16_TO_VEC_UINT8(value);
  ASSERT_EQ(sizeof(uint16_t), u16vec.size());
  ASSERT_EQ(0x0F, u16vec[0]);
  ASSERT_EQ(0x0E, u16vec[1]);

  auto u32vec = UINT32_TO_VEC_UINT8(value);
  ASSERT_EQ(sizeof(uint32_t), u32vec.size());
  ASSERT_EQ(0x0F, u32vec[0]);
  ASSERT_EQ(0x0E, u32vec[1]);
  ASSERT_EQ(0x0D, u32vec[2]);
  ASSERT_EQ(0x0C, u32vec[3]);
}

TEST(LeAudioLtvMapTest, test_serialization_ltv_len_is_zero) {
  // clang-format off
  const std::vector<uint8_t> ltv_test_vec{