d016aacedce8b103768f2b15d9bab921c65b6a95
[oota-llvm.git] / unittests / Support / DwarfTest.cpp
1 //===- unittest/Support/DwarfTest.cpp - Dwarf support tests ---------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #include "llvm/Support/Dwarf.h"
11 #include "gtest/gtest.h"
12
13 using namespace llvm;
14 using namespace llvm::dwarf;
15
16 namespace {
17
18 TEST(DwarfTest, TagStringOnInvalid) {
19   // This is invalid, so it shouldn't be stringified.
20   EXPECT_EQ(nullptr, TagString(DW_TAG_invalid));
21
22   // These aren't really tags: they describe ranges within tags.  They
23   // shouldn't be stringified either.
24   EXPECT_EQ(nullptr, TagString(DW_TAG_lo_user));
25   EXPECT_EQ(nullptr, TagString(DW_TAG_hi_user));
26   EXPECT_EQ(nullptr, TagString(DW_TAG_user_base));
27 }
28
29 TEST(DwarfTest, getTag) {
30   // A couple of valid tags.
31   EXPECT_EQ(DW_TAG_array_type, getTag("DW_TAG_array_type"));
32   EXPECT_EQ(DW_TAG_module, getTag("DW_TAG_module"));
33
34   // Invalid tags.
35   EXPECT_EQ(DW_TAG_invalid, getTag("DW_TAG_invalid"));
36   EXPECT_EQ(DW_TAG_invalid, getTag("DW_TAG_madeuptag"));
37   EXPECT_EQ(DW_TAG_invalid, getTag("something else"));
38
39   // Tag range markers should not be recognized.
40   EXPECT_EQ(DW_TAG_invalid, getTag("DW_TAG_lo_user"));
41   EXPECT_EQ(DW_TAG_invalid, getTag("DW_TAG_hi_user"));
42   EXPECT_EQ(DW_TAG_invalid, getTag("DW_TAG_user_base"));
43 }
44
45 } // end namespace