1 //===-- SymbolsTest.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 "gtest/gtest.h"
10 
11 #include "TestingSupport/SubsystemRAII.h"
12 #include "lldb/Core/ModuleSpec.h"
13 #include "lldb/Host/FileSystem.h"
14 #include "lldb/Host/HostInfo.h"
15 #include "lldb/Symbol/LocateSymbolFile.h"
16 #include "lldb/Target/Target.h"
17 #include "lldb/Utility/Reproducer.h"
18 
19 using namespace lldb_private;
20 
21 namespace {
22 class SymbolsTest : public ::testing::Test {
23 public:
24   SubsystemRAII<repro::Reproducer, FileSystem, HostInfo> subsystems;
25 };
26 } // namespace
27 
TEST_F(SymbolsTest,TerminateLocateExecutableSymbolFileForUnknownExecutableAndUnknownSymbolFile)28 TEST_F(
29     SymbolsTest,
30     TerminateLocateExecutableSymbolFileForUnknownExecutableAndUnknownSymbolFile) {
31   ModuleSpec module_spec;
32   FileSpecList search_paths = Target::GetDefaultDebugFileSearchPaths();
33   FileSpec symbol_file_spec =
34       Symbols::LocateExecutableSymbolFile(module_spec, search_paths);
35   EXPECT_TRUE(symbol_file_spec.GetFilename().IsEmpty());
36 }
37 
TEST_F(SymbolsTest,LocateExecutableSymbolFileForUnknownExecutableAndMissingSymbolFile)38 TEST_F(SymbolsTest,
39        LocateExecutableSymbolFileForUnknownExecutableAndMissingSymbolFile) {
40   ModuleSpec module_spec;
41   // using a GUID here because the symbol file shouldn't actually exist on disk
42   module_spec.GetSymbolFileSpec().SetFile(
43       "4A524676-B24B-4F4E-968A-551D465EBAF1.so", FileSpec::Style::native);
44   FileSpecList search_paths = Target::GetDefaultDebugFileSearchPaths();
45   FileSpec symbol_file_spec =
46       Symbols::LocateExecutableSymbolFile(module_spec, search_paths);
47   EXPECT_TRUE(symbol_file_spec.GetFilename().IsEmpty());
48 }
49