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

Commit d76bd4c8 authored by Christopher Ferris's avatar Christopher Ferris Committed by Gerrit Code Review
Browse files

Merge "Remove CHECK in AdjustEncodedValue."

parents 6cc741ec a39aaf91
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -104,7 +104,6 @@ size_t DwarfMemory::GetEncodedSize(uint8_t encoding) {

bool DwarfMemory::AdjustEncodedValue(uint8_t encoding, uint64_t* value) {
  CHECK((encoding & 0x0f) == 0);
  CHECK(encoding != DW_EH_PE_aligned);

  // Handle the encoding.
  switch (encoding) {
+23 −0
Original line number Diff line number Diff line
@@ -54,6 +54,8 @@ class DwarfMemoryTest : public ::testing::Test {
  void ReadEncodedValue_overflow();
  template <typename AddressType>
  void ReadEncodedValue_high_bit_set();
  template <typename AddressType>
  void ReadEncodedValue_all();

  MemoryFake memory_;
  std::unique_ptr<DwarfMemory> dwarf_mem_;
@@ -457,6 +459,27 @@ TEST_F(DwarfMemoryTest, ReadEncodedValue_high_bit_set_uint64_t) {
  ReadEncodedValue_high_bit_set<uint64_t>();
}

template <typename AddressType>
void DwarfMemoryTest::ReadEncodedValue_all() {
  MemoryFakeAlwaysReadZero memory;
  DwarfMemory dwarf_mem(&memory);

  for (size_t i = 0; i <= 0xff; i++) {
    uint64_t value;
    if (dwarf_mem.ReadEncodedValue<AddressType>(static_cast<uint8_t>(i), &value)) {
      ASSERT_EQ(0U, value);
    }
  }
}

TEST_F(DwarfMemoryTest, ReadEncodedValue_all_uint32_t) {
  ReadEncodedValue_all<uint32_t>();
}

TEST_F(DwarfMemoryTest, ReadEncodedValue_all_uint64_t) {
  ReadEncodedValue_all<uint64_t>();
}

TEST_F(DwarfMemoryTest, AdjustEncodedValue_absptr) {
  uint64_t value = 0x1234;
  ASSERT_TRUE(dwarf_mem_->AdjustEncodedValue(0x00, &value));