From cd61455798777446f35723fdb77f54a17e602009 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Wed, 17 Apr 2013 08:29:02 +0000 Subject: [PATCH] Create a stub for DWARF parser unittests Moves one DWARF-specific header to include/llvm/DebugInfo from lib/. Add a short unittest for r179095. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179678 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../llvm}/DebugInfo/DWARFFormValue.h | 0 lib/DebugInfo/DWARFCompileUnit.cpp | 2 +- lib/DebugInfo/DWARFDebugInfoEntry.cpp | 2 +- lib/DebugInfo/DWARFFormValue.cpp | 2 +- unittests/CMakeLists.txt | 1 + unittests/DebugInfo/CMakeLists.txt | 13 ++++++++ unittests/DebugInfo/DWARFFormValueTest.cpp | 31 +++++++++++++++++++ unittests/DebugInfo/Makefile | 16 ++++++++++ unittests/Makefile | 3 +- 9 files changed, 66 insertions(+), 4 deletions(-) rename {lib => include/llvm}/DebugInfo/DWARFFormValue.h (100%) create mode 100644 unittests/DebugInfo/CMakeLists.txt create mode 100644 unittests/DebugInfo/DWARFFormValueTest.cpp create mode 100644 unittests/DebugInfo/Makefile diff --git a/lib/DebugInfo/DWARFFormValue.h b/include/llvm/DebugInfo/DWARFFormValue.h similarity index 100% rename from lib/DebugInfo/DWARFFormValue.h rename to include/llvm/DebugInfo/DWARFFormValue.h diff --git a/lib/DebugInfo/DWARFCompileUnit.cpp b/lib/DebugInfo/DWARFCompileUnit.cpp index 1f2b40fbbe0..4f0eed4940b 100644 --- a/lib/DebugInfo/DWARFCompileUnit.cpp +++ b/lib/DebugInfo/DWARFCompileUnit.cpp @@ -9,7 +9,7 @@ #include "DWARFCompileUnit.h" #include "DWARFContext.h" -#include "DWARFFormValue.h" +#include "llvm/DebugInfo/DWARFFormValue.h" #include "llvm/Support/Dwarf.h" #include "llvm/Support/Format.h" #include "llvm/Support/raw_ostream.h" diff --git a/lib/DebugInfo/DWARFDebugInfoEntry.cpp b/lib/DebugInfo/DWARFDebugInfoEntry.cpp index 0fd5d488ae0..10be7b4cbb8 100644 --- a/lib/DebugInfo/DWARFDebugInfoEntry.cpp +++ b/lib/DebugInfo/DWARFDebugInfoEntry.cpp @@ -11,7 +11,7 @@ #include "DWARFCompileUnit.h" #include "DWARFContext.h" #include "DWARFDebugAbbrev.h" -#include "DWARFFormValue.h" +#include "llvm/DebugInfo/DWARFFormValue.h" #include "llvm/Support/Debug.h" #include "llvm/Support/Dwarf.h" #include "llvm/Support/Format.h" diff --git a/lib/DebugInfo/DWARFFormValue.cpp b/lib/DebugInfo/DWARFFormValue.cpp index 2876fca07c0..02498733d55 100644 --- a/lib/DebugInfo/DWARFFormValue.cpp +++ b/lib/DebugInfo/DWARFFormValue.cpp @@ -7,7 +7,7 @@ // //===----------------------------------------------------------------------===// -#include "DWARFFormValue.h" +#include "llvm/DebugInfo/DWARFFormValue.h" #include "DWARFCompileUnit.h" #include "DWARFContext.h" #include "llvm/Support/Debug.h" diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index a3f8bf34e73..4b7e418cd18 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -13,3 +13,4 @@ add_subdirectory(Option) add_subdirectory(Support) add_subdirectory(Transforms) add_subdirectory(IR) +add_subdirectory(DebugInfo) diff --git a/unittests/DebugInfo/CMakeLists.txt b/unittests/DebugInfo/CMakeLists.txt new file mode 100644 index 00000000000..ec580b7f69a --- /dev/null +++ b/unittests/DebugInfo/CMakeLists.txt @@ -0,0 +1,13 @@ +set(LLVM_LINK_COMPONENTS + debuginfo + object + support + ) + +set(DebugInfoSources + DWARFFormValueTest.cpp + ) + +add_llvm_unittest(DebugInfoTests + ${DebugInfoSources} + ) diff --git a/unittests/DebugInfo/DWARFFormValueTest.cpp b/unittests/DebugInfo/DWARFFormValueTest.cpp new file mode 100644 index 00000000000..04b859bdb9d --- /dev/null +++ b/unittests/DebugInfo/DWARFFormValueTest.cpp @@ -0,0 +1,31 @@ +//===- llvm/unittest/DebugInfo/DWARFFormValueTest.cpp ---------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/DebugInfo/DWARFFormValue.h" +#include "llvm/Support/Dwarf.h" +#include "gtest/gtest.h" +using namespace llvm; +using namespace dwarf; + +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); + 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)); +} + +} // end anonymous namespace diff --git a/unittests/DebugInfo/Makefile b/unittests/DebugInfo/Makefile new file mode 100644 index 00000000000..999ded90b0f --- /dev/null +++ b/unittests/DebugInfo/Makefile @@ -0,0 +1,16 @@ +##===- unittests/DebugInfo/Makefile ------------------------*- Makefile -*-===## +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +##===----------------------------------------------------------------------===## + +LEVEL = ../.. +TESTNAME = DebugInfo +LINK_COMPONENTS := debuginfo object support + +include $(LEVEL)/Makefile.config + +include $(LLVM_SRC_ROOT)/unittests/Makefile.unittest diff --git a/unittests/Makefile b/unittests/Makefile index 926459ac08f..61d60611be9 100644 --- a/unittests/Makefile +++ b/unittests/Makefile @@ -9,7 +9,8 @@ LEVEL = .. -PARALLEL_DIRS = ADT ExecutionEngine Support Transforms IR Analysis Bitcode +PARALLEL_DIRS = ADT ExecutionEngine Support Transforms IR Analysis Bitcode \ + DebugInfo include $(LEVEL)/Makefile.common -- 2.34.1