diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:04:03 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:04:03 +0000 |
commit | f8af5cf600354830d4ccf59732403f0f073eccb9 (patch) | |
tree | 2ba0398b4c42ad4f55561327538044fd2c925a8b /unittests/DebugInfo/DWARFFormValueTest.cpp | |
parent | 59d6cff90eecf31cb3dd860c4e786674cfdd42eb (diff) |
Diffstat (limited to 'unittests/DebugInfo/DWARFFormValueTest.cpp')
-rw-r--r-- | unittests/DebugInfo/DWARFFormValueTest.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/unittests/DebugInfo/DWARFFormValueTest.cpp b/unittests/DebugInfo/DWARFFormValueTest.cpp index 04b859bdb9db8..38b932e3c9caf 100644 --- a/unittests/DebugInfo/DWARFFormValueTest.cpp +++ b/unittests/DebugInfo/DWARFFormValueTest.cpp @@ -18,14 +18,32 @@ namespace { TEST(DWARFFormValue, FixedFormSizes) { // Size of DW_FORM_addr and DW_FORM_ref_addr are equal in DWARF2, // DW_FORM_ref_addr is always 4 bytes in DWARF32 starting from DWARF3. - const uint8_t *sizes = DWARFFormValue::getFixedFormSizes(4, 2); + ArrayRef<uint8_t> sizes = DWARFFormValue::getFixedFormSizes(4, 2); EXPECT_EQ(sizes[DW_FORM_addr], sizes[DW_FORM_ref_addr]); sizes = DWARFFormValue::getFixedFormSizes(8, 2); EXPECT_EQ(sizes[DW_FORM_addr], sizes[DW_FORM_ref_addr]); sizes = DWARFFormValue::getFixedFormSizes(8, 3); EXPECT_EQ(4, sizes[DW_FORM_ref_addr]); // Check that we don't have fixed form sizes for weird address sizes. - EXPECT_EQ(0, DWARFFormValue::getFixedFormSizes(16, 2)); + EXPECT_EQ(0U, DWARFFormValue::getFixedFormSizes(16, 2).size()); +} + +bool isFormClass(uint16_t Form, DWARFFormValue::FormClass FC) { + return DWARFFormValue(Form).isFormClass(FC); +} + +TEST(DWARFFormValue, FormClass) { + EXPECT_TRUE(isFormClass(DW_FORM_addr, DWARFFormValue::FC_Address)); + EXPECT_FALSE(isFormClass(DW_FORM_data8, DWARFFormValue::FC_Address)); + EXPECT_TRUE(isFormClass(DW_FORM_data8, DWARFFormValue::FC_Constant)); + EXPECT_TRUE(isFormClass(DW_FORM_data8, DWARFFormValue::FC_SectionOffset)); + EXPECT_TRUE( + isFormClass(DW_FORM_sec_offset, DWARFFormValue::FC_SectionOffset)); + EXPECT_TRUE(isFormClass(DW_FORM_GNU_str_index, DWARFFormValue::FC_String)); + EXPECT_TRUE(isFormClass(DW_FORM_GNU_addr_index, DWARFFormValue::FC_Address)); + EXPECT_FALSE(isFormClass(DW_FORM_ref_addr, DWARFFormValue::FC_Address)); + EXPECT_TRUE(isFormClass(DW_FORM_ref_addr, DWARFFormValue::FC_Reference)); + EXPECT_TRUE(isFormClass(DW_FORM_ref_sig8, DWARFFormValue::FC_Reference)); } } // end anonymous namespace |