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

Commit f946aa98 authored by Myles Watson's avatar Myles Watson Committed by Gerrit Code Review
Browse files

Merge "PDL: Add another array test" into main

parents d1476dd4 03b19375
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -2004,6 +2004,38 @@ TEST(GeneratedPacketTest, testStructWithShadowedNames) {
  ASSERT_EQ(ebs.struct_type_, struct_type);
}

TEST(GeneratedPacketTest, testArrays) {
  std::vector<uint8_t> bytes({1, 2, 3});
  std::vector<uint16_t> sixteens({0x0111, 0x0212, 0x0313});
  std::vector<uint32_t> thirtytwos({0x01112131, 0x02122232, 0x03132333});
  auto packet = ArraysBuilder::Create(bytes, sixteens, thirtytwos);

  std::shared_ptr<std::vector<uint8_t>> packet_bytes = std::make_shared<std::vector<uint8_t>>();
  BitInserter it(*packet_bytes);
  packet->Serialize(it);

  PacketView<kLittleEndian> packet_bytes_view(packet_bytes);
  auto view = ArraysView::Create(packet_bytes_view);
  ASSERT_TRUE(view.IsValid());

  auto bytes_from_packet = view.GetBytes();
  ASSERT_EQ(bytes.size(), bytes_from_packet.size());
  for (size_t i = 0; i < bytes.size(); i++) {
    ASSERT_EQ(bytes[i], bytes_from_packet[i]);
  }

  auto sixteens_from_packet = view.GetSixteens();
  ASSERT_EQ(sixteens.size(), sixteens_from_packet.size());
  for (size_t i = 0; i < sixteens.size(); i++) {
    ASSERT_EQ(sixteens[i], sixteens_from_packet[i]);
  }

  auto thirtytwos_from_packet = view.GetThirtytwos();
  ASSERT_EQ(thirtytwos.size(), thirtytwos_from_packet.size());
  for (size_t i = 0; i < thirtytwos.size(); i++) {
    ASSERT_EQ(thirtytwos[i], thirtytwos_from_packet[i]);
  }
}
}  // namespace parser
}  // namespace packet
}  // namespace bluetooth