Merge "Remove CHECK in AdjustEncodedValue."

This commit is contained in:
Christopher Ferris 2019-01-08 16:47:06 +00:00 committed by Gerrit Code Review
commit d76bd4c8d0
2 changed files with 23 additions and 1 deletions

View file

@ -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) {

View file

@ -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));