1 //===-- XcodeSDKModuleTests.cpp -------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "Plugins/SymbolFile/DWARF/DWARFASTParserClang.h"
10 #include "Plugins/SymbolFile/DWARF/DWARFCompileUnit.h"
11 #include "Plugins/SymbolFile/DWARF/DWARFDIE.h"
12 #include "TestingSupport/Symbol/YAMLModuleTester.h"
13 #include "gmock/gmock.h"
14 #include "gtest/gtest.h"
15 
16 using namespace lldb;
17 using namespace lldb_private;
18 
19 #ifndef __APPLE__
20 namespace {
21 class XcodeSDKModuleTests : public testing::Test {
22   void SetUp() override { PlatformDarwin::Initialize(); }
23   void TearDown() override { PlatformDarwin::Terminate(); }
24 };
25 } // namespace
26 
27 
28 TEST_F(XcodeSDKModuleTests, TestModuleGetXcodeSDK) {
29   const char *yamldata = R"(
30 debug_str:
31   - MacOSX10.9.sdk
32 debug_abbrev:
33   - Code:            0x00000001
34     Tag:             DW_TAG_compile_unit
35     Children:        DW_CHILDREN_no
36     Attributes:
37       - Attribute:       DW_AT_language
38         Form:            DW_FORM_data2
39       - Attribute:       DW_AT_APPLE_sdk
40         Form:            DW_FORM_strp
41 debug_info:
42   - Length:
43       TotalLength:     8
44     Version:         2
45     AbbrOffset:      0
46     AddrSize:        8
47     Entries:
48       - AbbrCode:        0x00000001
49         Values:
50           - Value:           0x000000000000000C
51           - Value:           0x0000000000000000
52       - AbbrCode:        0x00000000
53         Values:          []
54 ...
55 )";
56 
57   YAMLModuleTester t(yamldata, "x86_64-apple-macosx");
58   auto dwarf_unit_sp = t.GetDwarfUnit();
59   auto *dwarf_cu = llvm::cast<DWARFCompileUnit>(dwarf_unit_sp.get());
60   ASSERT_TRUE((bool)dwarf_cu);
61   ASSERT_TRUE((bool)dwarf_cu->GetSymbolFileDWARF().GetCompUnitForDWARFCompUnit(
62       *dwarf_cu));
63   auto module = t.GetModule();
64   XcodeSDK sdk = module->GetXcodeSDK();
65   ASSERT_EQ(sdk.GetType(), XcodeSDK::Type::MacOSX);
66 }
67 #endif
68