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