[Lldb-commits] [lldb] r290819 - [unittests] Split DWARF tests out of PDB, fix standalone build
Zachary Turner via lldb-commits
lldb-commits at lists.llvm.org
Tue Jan 3 09:36:32 PST 2017
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 at 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 at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20170103/89ac726e/attachment-0001.html>
More information about the lldb-commits
mailing list