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