I bet it's the Xcode build not replicating the if (LLVM_ENABLE_DIA_SDK) add_subdirectory(PDB) endif() and trying to run the PDB test even though it shouldn't.
(I don't really have a good idea on how to fix this.) pl On 3 January 2017 at 17:36, Zachary Turner via lldb-commits <lldb-commits@lists.llvm.org> wrote: > Hi Michal, > It looks like this patch may have broken this bot. > > http://lab.llvm.org:8080/green/job/lldb_build_test/23767/consoleFull#-1083450927b825e790-484f-4586-af29-73c4754ff671 > > What do you think? > > On Mon, Jan 2, 2017 at 10:31 AM Michal Gorny via lldb-commits > <lldb-commits@lists.llvm.org> wrote: >> >> Author: mgorny >> Date: Mon Jan 2 12:20:33 2017 >> New Revision: 290819 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=290819&view=rev >> Log: >> [unittests] Split DWARF tests out of PDB, fix standalone build >> >> Split the PDB tests into DWARF test and actual PDB tests, the latter >> requiring DIA SDK. Use the new LLVMConfig.cmake LLVM_ENABLE_DIA_SDK >> symbol to enable the PDB tests rather than relying on >> llvm/Config/config.h private include file that is not available when >> building standalone. >> >> Differential Revision: https://reviews.llvm.org/D26249 >> >> Added: >> lldb/trunk/unittests/SymbolFile/DWARF/ >> lldb/trunk/unittests/SymbolFile/DWARF/CMakeLists.txt >> lldb/trunk/unittests/SymbolFile/DWARF/Inputs/ >> lldb/trunk/unittests/SymbolFile/DWARF/Inputs/test-dwarf.cpp >> - copied, changed from r290688, >> lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.cpp >> lldb/trunk/unittests/SymbolFile/DWARF/Inputs/test-dwarf.exe >> - copied, changed from r290688, >> lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.exe >> lldb/trunk/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp >> Removed: >> lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.cpp >> lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.exe >> Modified: >> lldb/trunk/unittests/SymbolFile/CMakeLists.txt >> lldb/trunk/unittests/SymbolFile/PDB/CMakeLists.txt >> lldb/trunk/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp >> >> Modified: lldb/trunk/unittests/SymbolFile/CMakeLists.txt >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/SymbolFile/CMakeLists.txt?rev=290819&r1=290818&r2=290819&view=diff >> >> ============================================================================== >> --- lldb/trunk/unittests/SymbolFile/CMakeLists.txt (original) >> +++ lldb/trunk/unittests/SymbolFile/CMakeLists.txt Mon Jan 2 12:20:33 >> 2017 >> @@ -1 +1,4 @@ >> -add_subdirectory(PDB) >> +add_subdirectory(DWARF) >> +if (LLVM_ENABLE_DIA_SDK) >> + add_subdirectory(PDB) >> +endif() >> >> Added: lldb/trunk/unittests/SymbolFile/DWARF/CMakeLists.txt >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/SymbolFile/DWARF/CMakeLists.txt?rev=290819&view=auto >> >> ============================================================================== >> --- lldb/trunk/unittests/SymbolFile/DWARF/CMakeLists.txt (added) >> +++ lldb/trunk/unittests/SymbolFile/DWARF/CMakeLists.txt Mon Jan 2 >> 12:20:33 2017 >> @@ -0,0 +1,8 @@ >> +add_lldb_unittest(SymbolFileDWARFTests >> + SymbolFileDWARFTests.cpp >> + ) >> + >> +set(test_inputs >> + test-dwarf.exe) >> + >> +add_unittest_inputs(SymbolFileDWARFTests "${test_inputs}") >> >> Copied: lldb/trunk/unittests/SymbolFile/DWARF/Inputs/test-dwarf.cpp (from >> r290688, lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.cpp) >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/SymbolFile/DWARF/Inputs/test-dwarf.cpp?p2=lldb/trunk/unittests/SymbolFile/DWARF/Inputs/test-dwarf.cpp&p1=lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.cpp&r1=290688&r2=290819&rev=290819&view=diff >> >> ============================================================================== >> (empty) >> >> Copied: lldb/trunk/unittests/SymbolFile/DWARF/Inputs/test-dwarf.exe (from >> r290688, lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.exe) >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/SymbolFile/DWARF/Inputs/test-dwarf.exe?p2=lldb/trunk/unittests/SymbolFile/DWARF/Inputs/test-dwarf.exe&p1=lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.exe&r1=290688&r2=290819&rev=290819&view=diff >> >> ============================================================================== >> (empty) >> >> Added: lldb/trunk/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp?rev=290819&view=auto >> >> ============================================================================== >> --- lldb/trunk/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp (added) >> +++ lldb/trunk/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp Mon Jan >> 2 12:20:33 2017 >> @@ -0,0 +1,83 @@ >> +//===-- PythonDataObjectsTests.cpp ------------------------------*- C++ >> -*-===// >> +// >> +// The LLVM Compiler Infrastructure >> +// >> +// This file is distributed under the University of Illinois Open Source >> +// License. See LICENSE.TXT for details. >> +// >> >> +//===----------------------------------------------------------------------===// >> + >> +#include "gtest/gtest.h" >> + >> +#include "llvm/ADT/STLExtras.h" >> +#include "llvm/DebugInfo/PDB/PDBSymbolData.h" >> +#include "llvm/DebugInfo/PDB/PDBSymbolExe.h" >> +#include "llvm/Support/FileSystem.h" >> +#include "llvm/Support/Path.h" >> + >> +#include "lldb/Core/Address.h" >> +#include "lldb/Core/ArchSpec.h" >> +#include "lldb/Core/Module.h" >> +#include "lldb/Core/ModuleSpec.h" >> +#include "lldb/Host/FileSpec.h" >> +#include "lldb/Host/HostInfo.h" >> +#include "lldb/Symbol/ClangASTContext.h" >> +#include "lldb/Symbol/CompileUnit.h" >> +#include "lldb/Symbol/LineTable.h" >> +#include "lldb/Symbol/SymbolVendor.h" >> + >> +#include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h" >> +#include "Plugins/SymbolFile/DWARF/SymbolFileDWARF.h" >> +#include "Plugins/SymbolFile/PDB/SymbolFilePDB.h" >> + >> +extern const char *TestMainArgv0; >> + >> +using namespace lldb_private; >> + >> +class SymbolFileDWARFTests : public testing::Test { >> +public: >> + void SetUp() override { >> +// Initialize and TearDown the plugin every time, so we get a brand new >> +// AST every time so that modifications to the AST from each test don't >> +// leak into the next test. >> + HostInfo::Initialize(); >> + ObjectFilePECOFF::Initialize(); >> + SymbolFileDWARF::Initialize(); >> + ClangASTContext::Initialize(); >> + SymbolFilePDB::Initialize(); >> + >> + llvm::StringRef exe_folder = >> llvm::sys::path::parent_path(TestMainArgv0); >> + llvm::SmallString<128> inputs_folder = exe_folder; >> + llvm::sys::path::append(inputs_folder, "Inputs"); >> + >> + m_dwarf_test_exe = inputs_folder; >> + llvm::sys::path::append(m_dwarf_test_exe, "test-dwarf.exe"); >> + } >> + >> + void TearDown() override { >> + SymbolFilePDB::Terminate(); >> + ClangASTContext::Initialize(); >> + SymbolFileDWARF::Terminate(); >> + ObjectFilePECOFF::Terminate(); >> + HostInfo::Terminate(); >> + } >> + >> +protected: >> + llvm::SmallString<128> m_dwarf_test_exe; >> +}; >> + >> +TEST_F(SymbolFileDWARFTests, TestAbilitiesForDWARF) { >> + // Test that when we have Dwarf debug info, SymbolFileDWARF is used. >> + FileSpec fspec(m_dwarf_test_exe.c_str(), false); >> + ArchSpec aspec("i686-pc-windows"); >> + lldb::ModuleSP module = std::make_shared<Module>(fspec, aspec); >> + >> + SymbolVendor *plugin = module->GetSymbolVendor(); >> + EXPECT_NE(nullptr, plugin); >> + SymbolFile *symfile = plugin->GetSymbolFile(); >> + EXPECT_NE(nullptr, symfile); >> + EXPECT_EQ(symfile->GetPluginName(), >> SymbolFileDWARF::GetPluginNameStatic()); >> + >> + uint32_t expected_abilities = SymbolFile::kAllAbilities; >> + EXPECT_EQ(expected_abilities, symfile->CalculateAbilities()); >> +} >> >> Modified: lldb/trunk/unittests/SymbolFile/PDB/CMakeLists.txt >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/SymbolFile/PDB/CMakeLists.txt?rev=290819&r1=290818&r2=290819&view=diff >> >> ============================================================================== >> --- lldb/trunk/unittests/SymbolFile/PDB/CMakeLists.txt (original) >> +++ lldb/trunk/unittests/SymbolFile/PDB/CMakeLists.txt Mon Jan 2 12:20:33 >> 2017 >> @@ -5,8 +5,7 @@ add_lldb_unittest(SymbolFilePDBTests >> set(test_inputs >> test-pdb.exe >> test-pdb.pdb >> - test-dwarf.exe >> test-pdb-types.exe >> test-pdb-types.pdb) >> >> -add_unittest_inputs(SymbolFilePDBTests "${test_inputs}") >> +add_unittest_inputs(SymbolFilePDBTests "${test_inputs}") >> >> Removed: lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.cpp?rev=290818&view=auto >> >> ============================================================================== >> --- lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.cpp (original) >> +++ lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.cpp (removed) >> @@ -1,6 +0,0 @@ >> -// Compile with "cl /c /Zi /GR- test.cpp" >> -// Link with "link test.obj /debug /nodefaultlib /entry:main >> /out:test.exe" >> - >> -int __cdecl _purecall(void) { return 0; } >> - >> -int main(int argc, char **argv) { return 0; } >> >> Removed: lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.exe >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.exe?rev=290818&view=auto >> >> ============================================================================== >> Binary files lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.exe >> (original) and lldb/trunk/unittests/SymbolFile/PDB/Inputs/test-dwarf.exe >> (removed) differ >> >> Modified: lldb/trunk/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp?rev=290819&r1=290818&r2=290819&view=diff >> >> ============================================================================== >> --- lldb/trunk/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp (original) >> +++ lldb/trunk/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp Mon Jan 2 >> 12:20:33 2017 >> @@ -10,7 +10,6 @@ >> #include "gtest/gtest.h" >> >> #include "llvm/ADT/STLExtras.h" >> -#include "llvm/Config/config.h" >> #include "llvm/DebugInfo/PDB/PDBSymbolData.h" >> #include "llvm/DebugInfo/PDB/PDBSymbolExe.h" >> #include "llvm/Support/FileSystem.h" >> @@ -63,10 +62,8 @@ public: >> llvm::sys::path::append(inputs_folder, "Inputs"); >> >> m_pdb_test_exe = inputs_folder; >> - m_dwarf_test_exe = inputs_folder; >> m_types_test_exe = inputs_folder; >> llvm::sys::path::append(m_pdb_test_exe, "test-pdb.exe"); >> - llvm::sys::path::append(m_dwarf_test_exe, "test-dwarf.exe"); >> llvm::sys::path::append(m_types_test_exe, "test-pdb-types.exe"); >> } >> >> @@ -84,7 +81,6 @@ public: >> >> protected: >> llvm::SmallString<128> m_pdb_test_exe; >> - llvm::SmallString<128> m_dwarf_test_exe; >> llvm::SmallString<128> m_types_test_exe; >> >> bool FileSpecMatchesAsBaseOrFull(const FileSpec &left, >> @@ -154,29 +150,7 @@ protected: >> } >> }; >> >> -#if HAVE_DIA_SDK >> -#define REQUIRES_DIA_SDK(TestName) TestName >> -#else >> -#define REQUIRES_DIA_SDK(TestName) DISABLED_##TestName >> -#endif >> - >> -TEST_F(SymbolFilePDBTests, TestAbilitiesForDWARF) { >> - // Test that when we have Dwarf debug info, SymbolFileDWARF is used. >> - FileSpec fspec(m_dwarf_test_exe.c_str(), false); >> - ArchSpec aspec("i686-pc-windows"); >> - lldb::ModuleSP module = std::make_shared<Module>(fspec, aspec); >> - >> - SymbolVendor *plugin = module->GetSymbolVendor(); >> - EXPECT_NE(nullptr, plugin); >> - SymbolFile *symfile = plugin->GetSymbolFile(); >> - EXPECT_NE(nullptr, symfile); >> - EXPECT_EQ(symfile->GetPluginName(), >> SymbolFileDWARF::GetPluginNameStatic()); >> - >> - uint32_t expected_abilities = SymbolFile::kAllAbilities; >> - EXPECT_EQ(expected_abilities, symfile->CalculateAbilities()); >> -} >> - >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestAbilitiesForPDB)) { >> +TEST_F(SymbolFilePDBTests, TestAbilitiesForPDB) { >> // Test that when we have PDB debug info, SymbolFilePDB is used. >> FileSpec fspec(m_pdb_test_exe.c_str(), false); >> ArchSpec aspec("i686-pc-windows"); >> @@ -193,7 +167,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> EXPECT_EQ(expected_abilities, symfile->CalculateAbilities()); >> } >> >> -TEST_F(SymbolFilePDBTests, >> REQUIRES_DIA_SDK(TestResolveSymbolContextBasename)) { >> +TEST_F(SymbolFilePDBTests, TestResolveSymbolContextBasename) { >> // Test that attempting to call ResolveSymbolContext with only a >> basename >> // finds all full paths >> // with the same basename >> @@ -213,7 +187,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> EXPECT_TRUE(ContainsCompileUnit(sc_list, header_spec)); >> } >> >> -TEST_F(SymbolFilePDBTests, >> REQUIRES_DIA_SDK(TestResolveSymbolContextFullPath)) { >> +TEST_F(SymbolFilePDBTests, TestResolveSymbolContextFullPath) { >> // Test that attempting to call ResolveSymbolContext with a full path >> only >> // finds the one source >> // file that matches the full path. >> @@ -236,7 +210,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> } >> >> TEST_F(SymbolFilePDBTests, >> - REQUIRES_DIA_SDK(TestLookupOfHeaderFileWithInlines)) { >> + TestLookupOfHeaderFileWithInlines) { >> // Test that when looking up a header file via ResolveSymbolContext >> (i.e. a >> // file that was not by itself >> // compiled, but only contributes to the combined code of other source >> files), >> @@ -264,8 +238,7 @@ TEST_F(SymbolFilePDBTests, >> } >> } >> >> -TEST_F(SymbolFilePDBTests, >> - REQUIRES_DIA_SDK(TestLookupOfHeaderFileWithNoInlines)) { >> +TEST_F(SymbolFilePDBTests, TestLookupOfHeaderFileWithNoInlines) { >> // Test that when looking up a header file via ResolveSymbolContext >> (i.e. a >> // file that was not by itself >> // compiled, but only contributes to the combined code of other source >> files), >> @@ -289,7 +262,7 @@ TEST_F(SymbolFilePDBTests, >> } >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestLineTablesMatchAll)) { >> +TEST_F(SymbolFilePDBTests, TestLineTablesMatchAll) { >> // Test that when calling ResolveSymbolContext with a line number of 0, >> all >> // line entries from >> // the specified files are returned. >> @@ -338,7 +311,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> VerifyLineEntry(module, sc, header2, *lt, 7, 0x401089); >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestLineTablesMatchSpecific)) >> { >> +TEST_F(SymbolFilePDBTests, TestLineTablesMatchSpecific) { >> // Test that when calling ResolveSymbolContext with a specific line >> number, >> // only line entries >> // which match the requested line are returned. >> @@ -390,7 +363,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> VerifyLineEntry(module, sc, header1, *lt, 9, 0x401090); >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestSimpleClassTypes)) { >> +TEST_F(SymbolFilePDBTests, TestSimpleClassTypes) { >> FileSpec fspec(m_types_test_exe.c_str(), false); >> ArchSpec aspec("i686-pc-windows"); >> lldb::ModuleSP module = std::make_shared<Module>(fspec, aspec); >> @@ -413,7 +386,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> udt_type->GetByteSize()); >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestNestedClassTypes)) { >> +TEST_F(SymbolFilePDBTests, TestNestedClassTypes) { >> FileSpec fspec(m_types_test_exe.c_str(), false); >> ArchSpec aspec("i686-pc-windows"); >> lldb::ModuleSP module = std::make_shared<Module>(fspec, aspec); >> @@ -436,7 +409,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> udt_type->GetByteSize()); >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestClassInNamespace)) { >> +TEST_F(SymbolFilePDBTests, TestClassInNamespace) { >> FileSpec fspec(m_types_test_exe.c_str(), false); >> ArchSpec aspec("i686-pc-windows"); >> lldb::ModuleSP module = std::make_shared<Module>(fspec, aspec); >> @@ -459,7 +432,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> udt_type->GetByteSize()); >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestEnumTypes)) { >> +TEST_F(SymbolFilePDBTests, TestEnumTypes) { >> FileSpec fspec(m_types_test_exe.c_str(), false); >> ArchSpec aspec("i686-pc-windows"); >> lldb::ModuleSP module = std::make_shared<Module>(fspec, aspec); >> @@ -492,21 +465,21 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> } >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestArrayTypes)) { >> +TEST_F(SymbolFilePDBTests, TestArrayTypes) { >> // In order to get this test working, we need to support lookup by >> symbol >> // name. Because array >> // types themselves do not have names, only the symbols have names >> (i.e. the >> // name of the array). >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestFunctionTypes)) { >> +TEST_F(SymbolFilePDBTests, TestFunctionTypes) { >> // In order to get this test working, we need to support lookup by >> symbol >> // name. Because array >> // types themselves do not have names, only the symbols have names >> (i.e. the >> // name of the array). >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestTypedefs)) { >> +TEST_F(SymbolFilePDBTests, TestTypedefs) { >> FileSpec fspec(m_types_test_exe.c_str(), false); >> ArchSpec aspec("i686-pc-windows"); >> lldb::ModuleSP module = std::make_shared<Module>(fspec, aspec); >> @@ -540,7 +513,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> } >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestRegexNameMatch)) { >> +TEST_F(SymbolFilePDBTests, TestRegexNameMatch) { >> FileSpec fspec(m_types_test_exe.c_str(), false); >> ArchSpec aspec("i686-pc-windows"); >> lldb::ModuleSP module = std::make_shared<Module>(fspec, aspec); >> @@ -557,7 +530,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> EXPECT_EQ(num_results, results.GetSize()); >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestMaxMatches)) { >> +TEST_F(SymbolFilePDBTests, TestMaxMatches) { >> FileSpec fspec(m_types_test_exe.c_str(), false); >> ArchSpec aspec("i686-pc-windows"); >> lldb::ModuleSP module = std::make_shared<Module>(fspec, aspec); >> @@ -584,7 +557,7 @@ TEST_F(SymbolFilePDBTests, REQUIRES_DIA_ >> } >> } >> >> -TEST_F(SymbolFilePDBTests, REQUIRES_DIA_SDK(TestNullName)) { >> +TEST_F(SymbolFilePDBTests, TestNullName) { >> FileSpec fspec(m_types_test_exe.c_str(), false); >> ArchSpec aspec("i686-pc-windows"); >> lldb::ModuleSP module = std::make_shared<Module>(fspec, aspec); >> >> >> _______________________________________________ >> lldb-commits mailing list >> lldb-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits > > > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits > _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits