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