[Lldb-commits] [lldb] r369374 - unittests: Use yaml2obj as a library instead of an external process

Davide Italiano via lldb-commits lldb-commits at lists.llvm.org
Tue Aug 20 19:51:09 PDT 2019


Hi Pavel,
looks like this broke the lldb-standalone macOS bot.

http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-standalone/151/console

FAILED: unittests/TestingSupport/CMakeFiles/lldbUtilityHelpers.dir/TestUtilities.cpp.o

[trim]

 /Users/buildslave/jenkins/workspace/lldb-cmake-standalone/llvm-project/lldb/unittests/TestingSupport/TestUtilities.cpp:16:10:
fatal error: 'gtest/gtest.h' file not found

Can you please take a look?

On Tue, Aug 20, 2019 at 5:27 AM Pavel Labath via lldb-commits
<lldb-commits at lists.llvm.org> wrote:
>
> Author: labath
> Date: Tue Aug 20 05:28:36 2019
> New Revision: 369374
>
> URL: http://llvm.org/viewvc/llvm-project?rev=369374&view=rev
> Log:
> unittests: Use yaml2obj as a library instead of an external process
>
> Summary:
> Recently, yaml2obj has been turned into a library. This means we can use
> it from our unit tests directly, instead of shelling out to an external
> process. This patch does just that.
>
> Reviewers: JDevlieghere, aadsm, espindola, jdoerfert
>
> Subscribers: emaste, mgorny, arichardson, MaskRay, jhenderson, abrachet, lldb-commits
>
> Differential Revision: https://reviews.llvm.org/D65949
>
> Removed:
>     lldb/trunk/unittests/Core/Inputs/mangled-function-names.yaml
>     lldb/trunk/unittests/ObjectFile/ELF/Inputs/sections-resolve-consistently.yaml
>     lldb/trunk/unittests/Symbol/Inputs/basic-call-frame-info.yaml
> Modified:
>     lldb/trunk/unittests/Core/CMakeLists.txt
>     lldb/trunk/unittests/Core/MangledTest.cpp
>     lldb/trunk/unittests/ObjectFile/ELF/CMakeLists.txt
>     lldb/trunk/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
>     lldb/trunk/unittests/Symbol/CMakeLists.txt
>     lldb/trunk/unittests/Symbol/TestDWARFCallFrameInfo.cpp
>     lldb/trunk/unittests/Symbol/TestLineEntry.cpp
>     lldb/trunk/unittests/TestingSupport/CMakeLists.txt
>     lldb/trunk/unittests/TestingSupport/TestUtilities.cpp
>     lldb/trunk/unittests/TestingSupport/TestUtilities.h
>
> Modified: lldb/trunk/unittests/Core/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Core/CMakeLists.txt?rev=369374&r1=369373&r2=369374&view=diff
> ==============================================================================
> --- lldb/trunk/unittests/Core/CMakeLists.txt (original)
> +++ lldb/trunk/unittests/Core/CMakeLists.txt Tue Aug 20 05:28:36 2019
> @@ -15,8 +15,3 @@ add_lldb_unittest(LLDBCoreTests
>    LINK_COMPONENTS
>      Support
>    )
> -
> -set(test_inputs
> -  mangled-function-names.yaml
> -  )
> -add_unittest_inputs(LLDBCoreTests "${test_inputs}")
>
> Removed: lldb/trunk/unittests/Core/Inputs/mangled-function-names.yaml
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Core/Inputs/mangled-function-names.yaml?rev=369373&view=auto
> ==============================================================================
> --- lldb/trunk/unittests/Core/Inputs/mangled-function-names.yaml (original)
> +++ lldb/trunk/unittests/Core/Inputs/mangled-function-names.yaml (removed)
> @@ -1,129 +0,0 @@
> ---- !ELF
> -FileHeader:
> -  Class:           ELFCLASS64
> -  Data:            ELFDATA2LSB
> -  Type:            ET_EXEC
> -  Machine:         EM_X86_64
> -Sections:
> -  - Name:            .text
> -    Type:            SHT_PROGBITS
> -    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
> -    AddressAlign:    0x0000000000000010
> -    Content:         554889E58B0425A80000005DC30F1F00
> -  - Name:            .anothertext
> -    Type:            SHT_PROGBITS
> -    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
> -    Address:         0x0000000000000010
> -    AddressAlign:    0x0000000000000010
> -    Content:         554889E54883EC20488D0425A8000000C745FC00000000488945F0488B45F08B08894DECE8C7FFFFFF8B4DEC01C189C84883C4205D746573742073747200C3
> -  - Name:            .eh_frame
> -    Type:            SHT_PROGBITS
> -    Flags:           [ SHF_ALLOC ]
> -    Address:         0x0000000000000050
> -    AddressAlign:    0x0000000000000008
> -    Content:         1400000000000000017A5200017810011B0C0708900100001C0000001C00000090FFFFFF0D00000000410E108602430D06000000000000001C0000003C00000080FFFFFF3F00000000410E108602430D0600000000000000
> -  - Name:            .data
> -    Type:            SHT_PROGBITS
> -    Flags:           [ SHF_WRITE, SHF_ALLOC ]
> -    Address:         0x00000000000000A8
> -    AddressAlign:    0x0000000000000004
> -    Content:         '01000000'
> -  - Name:            .comment
> -    Type:            SHT_PROGBITS
> -    Flags:           [ SHF_MERGE, SHF_STRINGS ]
> -    AddressAlign:    0x0000000000000001
> -    Content:         5562756E747520636C616E672076657273696F6E20332E352D317562756E74753120287472756E6B2920286261736564206F6E204C4C564D20332E352900
> -Symbols:
> -  - Type:            STT_SECTION
> -    Section:         .text
> -  - Type:            STT_SECTION
> -    Section:         .anothertext
> -    Value:           0x0000000000000010
> -  - Type:            STT_SECTION
> -    Section:         .eh_frame
> -    Value:           0x0000000000000050
> -  - Type:            STT_SECTION
> -    Section:         .data
> -    Value:           0x00000000000000A8
> -  - Type:            STT_SECTION
> -    Section:         .comment
> -  - Name:            /tmp/a.c
> -    Type:            STT_FILE
> -  - Type:            STT_FILE
> -  - Name:            somedata
> -    Type:            STT_OBJECT
> -    Section:         .anothertext
> -    Value:           0x0000000000000045
> -    Binding:         STB_GLOBAL
> -  - Name:            main
> -    Type:            STT_FUNC
> -    Section:         .anothertext
> -    Value:           0x0000000000000010
> -    Size:            0x000000000000003F
> -    Binding:         STB_GLOBAL
> -  - Name:            _Z3foov
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            puts at GLIBC_2.5
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            puts at GLIBC_2.6
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            _Z5annotv at VERSION3
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            _ZN1AC2Ev
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            _ZN1AD2Ev
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            _ZN1A3barEv
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            _ZGVZN4llvm4dbgsEvE7thestrm
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            _ZZN4llvm4dbgsEvE7thestrm
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            _ZTVN5clang4DeclE
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            -[ObjCfoo]
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            +[B ObjCbar(WithCategory)]
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -  - Name:            _Z12undemangableEvx42
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Size:            0x000000000000000D
> -    Binding:         STB_GLOBAL
> -...
>
> Modified: lldb/trunk/unittests/Core/MangledTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Core/MangledTest.cpp?rev=369374&r1=369373&r2=369374&view=diff
> ==============================================================================
> --- lldb/trunk/unittests/Core/MangledTest.cpp (original)
> +++ lldb/trunk/unittests/Core/MangledTest.cpp Tue Aug 20 05:28:36 2019
> @@ -56,15 +56,113 @@ TEST(MangledTest, NameIndexes_FindFuncti
>    ObjectFileELF::Initialize();
>    SymbolFileSymtab::Initialize();
>
> -  llvm::SmallString<128> Obj;
> -  ASSERT_NO_ERROR(llvm::sys::fs::createTemporaryFile(
> -      "mangled-function-names-%%%%%%", "obj", Obj));
> -  llvm::FileRemover Deleter(Obj);
> -  ASSERT_THAT_ERROR(ReadYAMLObjectFile("mangled-function-names.yaml", Obj),
> -                    llvm::Succeeded());
> +  auto ExpectedFile = TestFile::fromYaml(R"(
> +--- !ELF
> +FileHeader:
> +  Class:           ELFCLASS64
> +  Data:            ELFDATA2LSB
> +  Type:            ET_EXEC
> +  Machine:         EM_X86_64
> +Sections:
> +  - Name:            .text
> +    Type:            SHT_PROGBITS
> +    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
> +    AddressAlign:    0x0000000000000010
> +    Size:            0x20
> +  - Name:            .anothertext
> +    Type:            SHT_PROGBITS
> +    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
> +    Address:         0x0000000000000010
> +    AddressAlign:    0x0000000000000010
> +    Size:            0x40
> +  - Name:            .data
> +    Type:            SHT_PROGBITS
> +    Flags:           [ SHF_WRITE, SHF_ALLOC ]
> +    Address:         0x00000000000000A8
> +    AddressAlign:    0x0000000000000004
> +    Content:         '01000000'
> +Symbols:
> +  - Name:            somedata
> +    Type:            STT_OBJECT
> +    Section:         .anothertext
> +    Value:           0x0000000000000045
> +    Binding:         STB_GLOBAL
> +  - Name:            main
> +    Type:            STT_FUNC
> +    Section:         .anothertext
> +    Value:           0x0000000000000010
> +    Size:            0x000000000000003F
> +    Binding:         STB_GLOBAL
> +  - Name:            _Z3foov
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            puts at GLIBC_2.5
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            puts at GLIBC_2.6
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            _Z5annotv at VERSION3
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            _ZN1AC2Ev
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            _ZN1AD2Ev
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            _ZN1A3barEv
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            _ZGVZN4llvm4dbgsEvE7thestrm
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            _ZZN4llvm4dbgsEvE7thestrm
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            _ZTVN5clang4DeclE
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            -[ObjCfoo]
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            +[B ObjCbar(WithCategory)]
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +  - Name:            _Z12undemangableEvx42
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Size:            0x000000000000000D
> +    Binding:         STB_GLOBAL
> +...
> +)");
> +  ASSERT_THAT_EXPECTED(ExpectedFile, llvm::Succeeded());
>
> -  ModuleSpec Spec{FileSpec(Obj)};
> -  Spec.GetSymbolFileSpec().SetFile(Obj, FileSpec::Style::native);
> +  ModuleSpec Spec{FileSpec(ExpectedFile->name())};
>    auto M = std::make_shared<Module>(Spec);
>
>    auto Count = [M](const char *Name, FunctionNameType Type) -> int {
>
> Modified: lldb/trunk/unittests/ObjectFile/ELF/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/ObjectFile/ELF/CMakeLists.txt?rev=369374&r1=369373&r2=369374&view=diff
> ==============================================================================
> --- lldb/trunk/unittests/ObjectFile/ELF/CMakeLists.txt (original)
> +++ lldb/trunk/unittests/ObjectFile/ELF/CMakeLists.txt Tue Aug 20 05:28:36 2019
> @@ -11,6 +11,5 @@ add_lldb_unittest(ObjectFileELFTests
>
>  set(test_inputs
>    early-section-headers.so
> -  sections-resolve-consistently.yaml
>    )
>  add_unittest_inputs(ObjectFileELFTests "${test_inputs}")
>
> Removed: lldb/trunk/unittests/ObjectFile/ELF/Inputs/sections-resolve-consistently.yaml
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/ObjectFile/ELF/Inputs/sections-resolve-consistently.yaml?rev=369373&view=auto
> ==============================================================================
> --- lldb/trunk/unittests/ObjectFile/ELF/Inputs/sections-resolve-consistently.yaml (original)
> +++ lldb/trunk/unittests/ObjectFile/ELF/Inputs/sections-resolve-consistently.yaml (removed)
> @@ -1,52 +0,0 @@
> ---- !ELF
> -FileHeader:
> -  Class:           ELFCLASS64
> -  Data:            ELFDATA2LSB
> -  Type:            ET_EXEC
> -  Machine:         EM_X86_64
> -  Entry:           0x0000000000400180
> -Sections:
> -  - Name:            .note.gnu.build-id
> -    Type:            SHT_NOTE
> -    Flags:           [ SHF_ALLOC ]
> -    Address:         0x0000000000400158
> -    AddressAlign:    0x0000000000000004
> -    Content:         040000001400000003000000474E55003F3EC29E3FD83E49D18C4D49CD8A730CC13117B6
> -  - Name:            .text
> -    Type:            SHT_PROGBITS
> -    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
> -    Address:         0x0000000000400180
> -    AddressAlign:    0x0000000000000010
> -    Content:         554889E58B042500106000890425041060005DC3
> -  - Name:            .data
> -    Type:            SHT_PROGBITS
> -    Flags:           [ SHF_WRITE, SHF_ALLOC ]
> -    Address:         0x0000000000601000
> -    AddressAlign:    0x0000000000000004
> -    Content:         2F000000
> -  - Name:            .bss
> -    Type:            SHT_NOBITS
> -    Flags:           [ SHF_WRITE, SHF_ALLOC ]
> -    Address:         0x0000000000601004
> -    AddressAlign:    0x0000000000000004
> -    Size:            0x0000000000000004
> -Symbols:
> -  - Name:            Y
> -    Type:            STT_OBJECT
> -    Section:         .data
> -    Value:           0x0000000000601000
> -    Size:            0x0000000000000004
> -    Binding:         STB_GLOBAL
> -  - Name:            _start
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Value:           0x0000000000400180
> -    Size:            0x0000000000000014
> -    Binding:         STB_GLOBAL
> -  - Name:            X
> -    Type:            STT_OBJECT
> -    Section:         .bss
> -    Value:           0x0000000000601004
> -    Size:            0x0000000000000004
> -    Binding:         STB_GLOBAL
> -...
>
> Modified: lldb/trunk/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/ObjectFile/ELF/TestObjectFileELF.cpp?rev=369374&r1=369373&r2=369374&view=diff
> ==============================================================================
> --- lldb/trunk/unittests/ObjectFile/ELF/TestObjectFileELF.cpp (original)
> +++ lldb/trunk/unittests/ObjectFile/ELF/TestObjectFileELF.cpp Tue Aug 20 05:28:36 2019
> @@ -48,16 +48,65 @@ protected:
>  };
>
>  TEST_F(ObjectFileELFTest, SectionsResolveConsistently) {
> -  llvm::SmallString<128> obj;
> -  ASSERT_NO_ERROR(llvm::sys::fs::createTemporaryFile(
> -      "sections-resolve-consistently-%%%%%%", "obj", obj));
> -  llvm::FileRemover remover(obj);
> -  ASSERT_THAT_ERROR(
> -      ReadYAMLObjectFile("sections-resolve-consistently.yaml", obj),
> -      llvm::Succeeded());
> +  auto ExpectedFile = TestFile::fromYaml(R"(
> +--- !ELF
> +FileHeader:
> +  Class:           ELFCLASS64
> +  Data:            ELFDATA2LSB
> +  Type:            ET_EXEC
> +  Machine:         EM_X86_64
> +  Entry:           0x0000000000400180
> +Sections:
> +  - Name:            .note.gnu.build-id
> +    Type:            SHT_NOTE
> +    Flags:           [ SHF_ALLOC ]
> +    Address:         0x0000000000400158
> +    AddressAlign:    0x0000000000000004
> +    Content:         040000001400000003000000474E55003F3EC29E3FD83E49D18C4D49CD8A730CC13117B6
> +  - Name:            .text
> +    Type:            SHT_PROGBITS
> +    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
> +    Address:         0x0000000000400180
> +    AddressAlign:    0x0000000000000010
> +    Content:         554889E58B042500106000890425041060005DC3
> +  - Name:            .data
> +    Type:            SHT_PROGBITS
> +    Flags:           [ SHF_WRITE, SHF_ALLOC ]
> +    Address:         0x0000000000601000
> +    AddressAlign:    0x0000000000000004
> +    Content:         2F000000
> +  - Name:            .bss
> +    Type:            SHT_NOBITS
> +    Flags:           [ SHF_WRITE, SHF_ALLOC ]
> +    Address:         0x0000000000601004
> +    AddressAlign:    0x0000000000000004
> +    Size:            0x0000000000000004
> +Symbols:
> +  - Name:            Y
> +    Type:            STT_OBJECT
> +    Section:         .data
> +    Value:           0x0000000000601000
> +    Size:            0x0000000000000004
> +    Binding:         STB_GLOBAL
> +  - Name:            _start
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Value:           0x0000000000400180
> +    Size:            0x0000000000000014
> +    Binding:         STB_GLOBAL
> +  - Name:            X
> +    Type:            STT_OBJECT
> +    Section:         .bss
> +    Value:           0x0000000000601004
> +    Size:            0x0000000000000004
> +    Binding:         STB_GLOBAL
> +...
> +)");
> +  ASSERT_THAT_EXPECTED(ExpectedFile, llvm::Succeeded());
>
> -  ModuleSpec spec{FileSpec(obj)};
> -  spec.GetSymbolFileSpec().SetFile(obj, FileSpec::Style::native);
> +  ModuleSpec spec{FileSpec(ExpectedFile->name())};
> +  spec.GetSymbolFileSpec().SetFile(ExpectedFile->name(),
> +                                   FileSpec::Style::native);
>    auto module_sp = std::make_shared<Module>(spec);
>    SectionList *list = module_sp->GetSectionList();
>    ASSERT_NE(nullptr, list);
>
> Modified: lldb/trunk/unittests/Symbol/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Symbol/CMakeLists.txt?rev=369374&r1=369373&r2=369374&view=diff
> ==============================================================================
> --- lldb/trunk/unittests/Symbol/CMakeLists.txt (original)
> +++ lldb/trunk/unittests/Symbol/CMakeLists.txt Tue Aug 20 05:28:36 2019
> @@ -18,7 +18,6 @@ add_lldb_unittest(SymbolTests
>    )
>
>  set(test_inputs
> -  basic-call-frame-info.yaml
>    inlined-functions.yaml
>    )
>  add_unittest_inputs(SymbolTests "${test_inputs}")
>
> Removed: lldb/trunk/unittests/Symbol/Inputs/basic-call-frame-info.yaml
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Symbol/Inputs/basic-call-frame-info.yaml?rev=369373&view=auto
> ==============================================================================
> --- lldb/trunk/unittests/Symbol/Inputs/basic-call-frame-info.yaml (original)
> +++ lldb/trunk/unittests/Symbol/Inputs/basic-call-frame-info.yaml (removed)
> @@ -1,140 +0,0 @@
> ---- !ELF
> -FileHeader:
> -  Class:           ELFCLASS64
> -  Data:            ELFDATA2LSB
> -  Type:            ET_DYN
> -  Machine:         EM_X86_64
> -  Entry:           0x0000000000000260
> -Sections:
> -  - Name:            .text
> -    Type:            SHT_PROGBITS
> -    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
> -    Address:         0x0000000000000260
> -    AddressAlign:    0x0000000000000010
> -    Content:         554889E5897DFC8B45FC5DC30F1F4000554889E5897DFC8B45FC5DC30F1F4000554889E5897DFC8B45FC5DC3
> -#0000000000000260 <eh_frame>:
> -# 260: 55                      push   %rbp
> -# 261: 48 89 e5                mov    %rsp,%rbp
> -# 264: 89 7d fc                mov    %edi,-0x4(%rbp)
> -# 267: 8b 45 fc                mov    -0x4(%rbp),%eax
> -# 26a: 5d                      pop    %rbp
> -# 26b: c3                      retq
> -# 26c: 0f 1f 40 00             nopl   0x0(%rax)
> -#
> -#0000000000000270 <debug_frame3>:
> -# 270: 55                      push   %rbp
> -# 271: 48 89 e5                mov    %rsp,%rbp
> -# 274: 89 7d fc                mov    %edi,-0x4(%rbp)
> -# 277: 8b 45 fc                mov    -0x4(%rbp),%eax
> -# 27a: 5d                      pop    %rbp
> -# 27b: c3                      retq
> -# 27c: 0f 1f 40 00             nopl   0x0(%rax)
> -#
> -#0000000000000280 <debug_frame4>:
> -# 280: 55                      push   %rbp
> -# 281: 48 89 e5                mov    %rsp,%rbp
> -# 284: 89 7d fc                mov    %edi,-0x4(%rbp)
> -# 287: 8b 45 fc                mov    -0x4(%rbp),%eax
> -# 28a: 5d                      pop    %rbp
> -# 28b: c3                      retq
> -  - Name:            .eh_frame
> -    Type:            SHT_X86_64_UNWIND
> -    Flags:           [ SHF_ALLOC ]
> -    Address:         0x0000000000000290
> -    AddressAlign:    0x0000000000000008
> -    Content:         1400000000000000017A5200017810011B0C0708900100001C0000001C000000B0FFFFFF0C00000000410E108602430D0600000000000000
> -#00000000 0000000000000014 00000000 CIE
> -#  Version:               1
> -#  Augmentation:          "zR"
> -#  Code alignment factor: 1
> -#  Data alignment factor: -8
> -#  Return address column: 16
> -#  Augmentation data:     1b
> -#
> -#  DW_CFA_def_cfa: r7 (rsp) ofs 8
> -#  DW_CFA_offset: r16 (rip) at cfa-8
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#
> -#00000018 000000000000001c 0000001c FDE cie=00000000 pc=ffffffffffffffd0..ffffffffffffffdc
> -#  DW_CFA_advance_loc: 1 to ffffffffffffffd1
> -#  DW_CFA_def_cfa_offset: 16
> -#  DW_CFA_offset: r6 (rbp) at cfa-16
> -#  DW_CFA_advance_loc: 3 to ffffffffffffffd4
> -#  DW_CFA_def_cfa_register: r6 (rbp)
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -  - Name:            .debug_frame
> -    Type:            SHT_PROGBITS
> -    AddressAlign:    0x0000000000000008
> -    Content:         14000000FFFFFFFF03000178100C070890010000000000001C0000000000000070020000000000000C00000000000000410E108602430D0614000000FFFFFFFF040008000178100C07089001000000001C0000003800000080020000000000000C00000000000000410E108602430D06
> -#00000000 0000000000000014 ffffffff CIE
> -#  Version:               3
> -#  Augmentation:          ""
> -#  Code alignment factor: 1
> -#  Data alignment factor: -8
> -#  Return address column: 16
> -#
> -#  DW_CFA_def_cfa: r7 (rsp) ofs 8
> -#  DW_CFA_offset: r16 (rip) at cfa-8
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#
> -#00000018 000000000000001c 00000000 FDE cie=00000000 pc=0000000000000270..000000000000027c
> -#  DW_CFA_advance_loc: 1 to 0000000000000271
> -#  DW_CFA_def_cfa_offset: 16
> -#  DW_CFA_offset: r6 (rbp) at cfa-16
> -#  DW_CFA_advance_loc: 3 to 0000000000000274
> -#  DW_CFA_def_cfa_register: r6 (rbp)
> -#
> -#00000038 0000000000000014 ffffffff CIE
> -#  Version:               4
> -#  Augmentation:          ""
> -#  Pointer Size:          8
> -#  Segment Size:          0
> -#  Code alignment factor: 1
> -#  Data alignment factor: -8
> -#  Return address column: 16
> -#
> -#  DW_CFA_def_cfa: r7 (rsp) ofs 8
> -#  DW_CFA_offset: r16 (rip) at cfa-8
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#  DW_CFA_nop
> -#
> -#00000050 000000000000001c 00000038 FDE cie=00000038 pc=0000000000000280..000000000000028c
> -#  DW_CFA_advance_loc: 1 to 0000000000000281
> -#  DW_CFA_def_cfa_offset: 16
> -#  DW_CFA_offset: r6 (rbp) at cfa-16
> -#  DW_CFA_advance_loc: 3 to 0000000000000284
> -#  DW_CFA_def_cfa_register: r6 (rbp)
> -Symbols:
> -  - Name:            eh_frame
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Value:           0x0000000000000260
> -    Size:            0x000000000000000C
> -    Binding:         STB_GLOBAL
> -  - Name:            debug_frame3
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Value:           0x0000000000000270
> -    Size:            0x000000000000000C
> -    Binding:         STB_GLOBAL
> -  - Name:            debug_frame4
> -    Type:            STT_FUNC
> -    Section:         .text
> -    Value:           0x0000000000000280
> -    Size:            0x000000000000000C
> -    Binding:         STB_GLOBAL
> -...
>
> Modified: lldb/trunk/unittests/Symbol/TestDWARFCallFrameInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Symbol/TestDWARFCallFrameInfo.cpp?rev=369374&r1=369373&r2=369374&view=diff
> ==============================================================================
> --- lldb/trunk/unittests/Symbol/TestDWARFCallFrameInfo.cpp (original)
> +++ lldb/trunk/unittests/Symbol/TestDWARFCallFrameInfo.cpp Tue Aug 20 05:28:36 2019
> @@ -87,14 +87,152 @@ static UnwindPlan::Row GetExpectedRow2()
>
>  void DWARFCallFrameInfoTest::TestBasic(DWARFCallFrameInfo::Type type,
>                                         llvm::StringRef symbol) {
> -  llvm::SmallString<128> obj;
> -  ASSERT_NO_ERROR(llvm::sys::fs::createTemporaryFile(
> -      "basic-call-frame-info-%%%%%%", "obj", obj));
> -  llvm::FileRemover obj_remover(obj);
> -  ASSERT_THAT_ERROR(ReadYAMLObjectFile("basic-call-frame-info.yaml", obj),
> -                    llvm::Succeeded());
> +  auto ExpectedFile = TestFile::fromYaml(R"(
> +--- !ELF
> +FileHeader:
> +  Class:           ELFCLASS64
> +  Data:            ELFDATA2LSB
> +  Type:            ET_DYN
> +  Machine:         EM_X86_64
> +  Entry:           0x0000000000000260
> +Sections:
> +  - Name:            .text
> +    Type:            SHT_PROGBITS
> +    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
> +    Address:         0x0000000000000260
> +    AddressAlign:    0x0000000000000010
> +    Content:         554889E5897DFC8B45FC5DC30F1F4000554889E5897DFC8B45FC5DC30F1F4000554889E5897DFC8B45FC5DC3
> +#0000000000000260 <eh_frame>:
> +# 260: 55                      push   %rbp
> +# 261: 48 89 e5                mov    %rsp,%rbp
> +# 264: 89 7d fc                mov    %edi,-0x4(%rbp)
> +# 267: 8b 45 fc                mov    -0x4(%rbp),%eax
> +# 26a: 5d                      pop    %rbp
> +# 26b: c3                      retq
> +# 26c: 0f 1f 40 00             nopl   0x0(%rax)
> +#
> +#0000000000000270 <debug_frame3>:
> +# 270: 55                      push   %rbp
> +# 271: 48 89 e5                mov    %rsp,%rbp
> +# 274: 89 7d fc                mov    %edi,-0x4(%rbp)
> +# 277: 8b 45 fc                mov    -0x4(%rbp),%eax
> +# 27a: 5d                      pop    %rbp
> +# 27b: c3                      retq
> +# 27c: 0f 1f 40 00             nopl   0x0(%rax)
> +#
> +#0000000000000280 <debug_frame4>:
> +# 280: 55                      push   %rbp
> +# 281: 48 89 e5                mov    %rsp,%rbp
> +# 284: 89 7d fc                mov    %edi,-0x4(%rbp)
> +# 287: 8b 45 fc                mov    -0x4(%rbp),%eax
> +# 28a: 5d                      pop    %rbp
> +# 28b: c3                      retq
> +  - Name:            .eh_frame
> +    Type:            SHT_X86_64_UNWIND
> +    Flags:           [ SHF_ALLOC ]
> +    Address:         0x0000000000000290
> +    AddressAlign:    0x0000000000000008
> +    Content:         1400000000000000017A5200017810011B0C0708900100001C0000001C000000B0FFFFFF0C00000000410E108602430D0600000000000000
> +#00000000 0000000000000014 00000000 CIE
> +#  Version:               1
> +#  Augmentation:          "zR"
> +#  Code alignment factor: 1
> +#  Data alignment factor: -8
> +#  Return address column: 16
> +#  Augmentation data:     1b
> +#
> +#  DW_CFA_def_cfa: r7 (rsp) ofs 8
> +#  DW_CFA_offset: r16 (rip) at cfa-8
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#
> +#00000018 000000000000001c 0000001c FDE cie=00000000 pc=ffffffffffffffd0..ffffffffffffffdc
> +#  DW_CFA_advance_loc: 1 to ffffffffffffffd1
> +#  DW_CFA_def_cfa_offset: 16
> +#  DW_CFA_offset: r6 (rbp) at cfa-16
> +#  DW_CFA_advance_loc: 3 to ffffffffffffffd4
> +#  DW_CFA_def_cfa_register: r6 (rbp)
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +  - Name:            .debug_frame
> +    Type:            SHT_PROGBITS
> +    AddressAlign:    0x0000000000000008
> +    Content:         14000000FFFFFFFF03000178100C070890010000000000001C0000000000000070020000000000000C00000000000000410E108602430D0614000000FFFFFFFF040008000178100C07089001000000001C0000003800000080020000000000000C00000000000000410E108602430D06
> +#00000000 0000000000000014 ffffffff CIE
> +#  Version:               3
> +#  Augmentation:          ""
> +#  Code alignment factor: 1
> +#  Data alignment factor: -8
> +#  Return address column: 16
> +#
> +#  DW_CFA_def_cfa: r7 (rsp) ofs 8
> +#  DW_CFA_offset: r16 (rip) at cfa-8
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#
> +#00000018 000000000000001c 00000000 FDE cie=00000000 pc=0000000000000270..000000000000027c
> +#  DW_CFA_advance_loc: 1 to 0000000000000271
> +#  DW_CFA_def_cfa_offset: 16
> +#  DW_CFA_offset: r6 (rbp) at cfa-16
> +#  DW_CFA_advance_loc: 3 to 0000000000000274
> +#  DW_CFA_def_cfa_register: r6 (rbp)
> +#
> +#00000038 0000000000000014 ffffffff CIE
> +#  Version:               4
> +#  Augmentation:          ""
> +#  Pointer Size:          8
> +#  Segment Size:          0
> +#  Code alignment factor: 1
> +#  Data alignment factor: -8
> +#  Return address column: 16
> +#
> +#  DW_CFA_def_cfa: r7 (rsp) ofs 8
> +#  DW_CFA_offset: r16 (rip) at cfa-8
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#  DW_CFA_nop
> +#
> +#00000050 000000000000001c 00000038 FDE cie=00000038 pc=0000000000000280..000000000000028c
> +#  DW_CFA_advance_loc: 1 to 0000000000000281
> +#  DW_CFA_def_cfa_offset: 16
> +#  DW_CFA_offset: r6 (rbp) at cfa-16
> +#  DW_CFA_advance_loc: 3 to 0000000000000284
> +#  DW_CFA_def_cfa_register: r6 (rbp)
> +Symbols:
> +  - Name:            eh_frame
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Value:           0x0000000000000260
> +    Size:            0x000000000000000C
> +    Binding:         STB_GLOBAL
> +  - Name:            debug_frame3
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Value:           0x0000000000000270
> +    Size:            0x000000000000000C
> +    Binding:         STB_GLOBAL
> +  - Name:            debug_frame4
> +    Type:            STT_FUNC
> +    Section:         .text
> +    Value:           0x0000000000000280
> +    Size:            0x000000000000000C
> +    Binding:         STB_GLOBAL
> +...
> +)");
> +  ASSERT_THAT_EXPECTED(ExpectedFile, llvm::Succeeded());
>
> -  auto module_sp = std::make_shared<Module>(ModuleSpec(FileSpec(obj)));
> +  auto module_sp =
> +      std::make_shared<Module>(ModuleSpec(FileSpec(ExpectedFile->name())));
>    SectionList *list = module_sp->GetSectionList();
>    ASSERT_NE(nullptr, list);
>
>
> Modified: lldb/trunk/unittests/Symbol/TestLineEntry.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Symbol/TestLineEntry.cpp?rev=369374&r1=369373&r2=369374&view=diff
> ==============================================================================
> --- lldb/trunk/unittests/Symbol/TestLineEntry.cpp (original)
> +++ lldb/trunk/unittests/Symbol/TestLineEntry.cpp Tue Aug 20 05:28:36 2019
> @@ -33,13 +33,7 @@ using namespace lldb;
>
>  class LineEntryTest : public testing::Test {
>  public:
> -  void SetUp() override {
> -    FileSystem::Initialize();
> -    HostInfo::Initialize();
> -    ObjectFileMachO::Initialize();
> -    SymbolFileDWARF::Initialize();
> -    ClangASTContext::Initialize();
> -  }
> +  void SetUp() override;
>
>    void TearDown() override {
>      ClangASTContext::Terminate();
> @@ -50,44 +44,32 @@ public:
>    }
>
>  protected:
> -  llvm::Expected<ModuleSP> GetModule();
>    llvm::Expected<LineEntry> GetLineEntryForLine(uint32_t line);
> +  llvm::Optional<TestFile> m_file;
>    ModuleSP m_module_sp;
>  };
>
> -llvm::Expected<ModuleSP> LineEntryTest::GetModule() {
> -  if (m_module_sp)
> -    return m_module_sp;
> -
> -  llvm::SmallString<128> obj;
> -  if (auto ec = llvm::sys::fs::createTemporaryFile("source-%%%%%%", "obj", obj))
> -    return llvm::errorCodeToError(ec);
> -  llvm::FileRemover obj_remover(obj);
> -  if (auto error = ReadYAMLObjectFile("inlined-functions.yaml", obj))
> -    return llvm::Error(std::move(error));
> -
> -  m_module_sp = std::make_shared<Module>(ModuleSpec(FileSpec(obj)));
> -  // Preload because the temporary file will be gone once we exit this function.
> -  m_module_sp->PreloadSymbols();
> -  return m_module_sp;
> +void LineEntryTest::SetUp() {
> +  FileSystem::Initialize();
> +  HostInfo::Initialize();
> +  ObjectFileMachO::Initialize();
> +  SymbolFileDWARF::Initialize();
> +  ClangASTContext::Initialize();
> +  auto ExpectedFile = TestFile::fromYamlFile("inlined-functions.yaml");
> +  ASSERT_THAT_EXPECTED(ExpectedFile, llvm::Succeeded());
> +  m_file.emplace(std::move(*ExpectedFile));
> +  m_module_sp = std::make_shared<Module>(ModuleSpec(FileSpec(m_file->name())));
>  }
>
>  llvm::Expected<LineEntry> LineEntryTest::GetLineEntryForLine(uint32_t line) {
> -  auto expected_module_so = GetModule();
> -
> -  if (!expected_module_so)
> -    return llvm::createStringError(llvm::inconvertibleErrorCode(),
> -                                   "Not able to get module for test object.");
> -
> -  auto module = expected_module_so->get();
>    bool check_inlines = true;
>    bool exact = true;
>    SymbolContextList sc_comp_units;
>    SymbolContextList sc_line_entries;
>    FileSpec file_spec("inlined-functions.cpp");
> -  module->ResolveSymbolContextsForFileSpec(file_spec, line, check_inlines,
> -                                           lldb::eSymbolContextCompUnit,
> -                                           sc_comp_units);
> +  m_module_sp->ResolveSymbolContextsForFileSpec(file_spec, line, check_inlines,
> +                                                lldb::eSymbolContextCompUnit,
> +                                                sc_comp_units);
>    if (sc_comp_units.GetSize() == 0)
>      return llvm::createStringError(llvm::inconvertibleErrorCode(),
>                                     "No comp unit found on the test object.");
>
> Modified: lldb/trunk/unittests/TestingSupport/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/TestingSupport/CMakeLists.txt?rev=369374&r1=369373&r2=369374&view=diff
> ==============================================================================
> --- lldb/trunk/unittests/TestingSupport/CMakeLists.txt (original)
> +++ lldb/trunk/unittests/TestingSupport/CMakeLists.txt Tue Aug 20 05:28:36 2019
> @@ -8,7 +8,5 @@ add_lldb_library(lldbUtilityHelpers
>
>    LINK_COMPONENTS
>      Support
> +    ObjectYAML
>    )
> -
> -add_dependencies(lldbUtilityHelpers yaml2obj)
> -add_definitions(-DYAML2OBJ="$<TARGET_FILE:yaml2obj>")
> \ No newline at end of file
>
> Modified: lldb/trunk/unittests/TestingSupport/TestUtilities.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/TestingSupport/TestUtilities.cpp?rev=369374&r1=369373&r2=369374&view=diff
> ==============================================================================
> --- lldb/trunk/unittests/TestingSupport/TestUtilities.cpp (original)
> +++ lldb/trunk/unittests/TestingSupport/TestUtilities.cpp Tue Aug 20 05:28:36 2019
> @@ -8,9 +8,14 @@
>
>  #include "TestUtilities.h"
>  #include "llvm/ADT/SmallString.h"
> +#include "llvm/ObjectYAML/yaml2obj.h"
>  #include "llvm/Support/FileSystem.h"
>  #include "llvm/Support/Path.h"
>  #include "llvm/Support/Program.h"
> +#include "llvm/Support/YAMLTraits.h"
> +#include "gtest/gtest.h"
> +
> +using namespace lldb_private;
>
>  extern const char *TestMainArgv0;
>
> @@ -21,23 +26,39 @@ std::string lldb_private::GetInputFilePa
>    return result.str();
>  }
>
> -llvm::Error
> -lldb_private::ReadYAMLObjectFile(const llvm::Twine &yaml_name,
> -                                 llvm::SmallString<128> &object_file) {
> -  std::string yaml = GetInputFilePath(yaml_name);
> -  llvm::StringRef args[] = {YAML2OBJ, yaml};
> -  llvm::StringRef obj_ref = object_file;
> -  const llvm::Optional<llvm::StringRef> redirects[] = {llvm::None, obj_ref,
> -                                                       llvm::None};
> -  if (llvm::sys::ExecuteAndWait(YAML2OBJ, args, llvm::None, redirects) != 0)
> -    return llvm::createStringError(llvm::inconvertibleErrorCode(),
> -                                   "Error running yaml2obj %s.", yaml.c_str());
> -  uint64_t size;
> -  if (auto ec = llvm::sys::fs::file_size(object_file, size))
> -    return llvm::errorCodeToError(ec);
> -  if (size == 0)
> -    return llvm::createStringError(
> -        llvm::inconvertibleErrorCode(),
> -        "Empty object file created from yaml2obj %s.", yaml.c_str());
> -  return llvm::Error::success();
> +llvm::Expected<TestFile> TestFile::fromYaml(llvm::StringRef Yaml) {
> +  const auto *Info = testing::UnitTest::GetInstance()->current_test_info();
> +  assert(Info);
> +  llvm::SmallString<128> Name;
> +  int FD;
> +  if (std::error_code EC = llvm::sys::fs::createTemporaryFile(
> +          llvm::Twine(Info->test_case_name()) + "-" + Info->name(), "test", FD,
> +          Name))
> +    return llvm::errorCodeToError(EC);
> +  llvm::FileRemover Remover(Name);
> +  {
> +    llvm::raw_fd_ostream OS(FD, /*shouldClose*/ true);
> +    llvm::yaml::Input YIn(Yaml);
> +    if (llvm::Error E = llvm::yaml::convertYAML(YIn, OS))
> +      return std::move(E);
> +  }
> +  return TestFile(Name, std::move(Remover));
> +}
> +
> +llvm::Expected<TestFile> TestFile::fromYamlFile(const llvm::Twine &Name) {
> +  auto BufferOrError =
> +      llvm::MemoryBuffer::getFile(GetInputFilePath(Name), /*FileSize*/ -1,
> +                                  /*RequiresNullTerminator*/ false);
> +  if (!BufferOrError)
> +    return llvm::errorCodeToError(BufferOrError.getError());
> +  return fromYaml(BufferOrError.get()->getBuffer());
> +}
> +
> +TestFile::~TestFile() {
> +  if (!Name)
> +    return;
> +  if (std::error_code EC =
> +          llvm::sys::fs::remove(*Name, /*IgnoreNonExisting*/ false))
> +    GTEST_LOG_(WARNING) << "Failed to delete `" << Name->c_str()
> +                        << "`: " << EC.message();
>  }
>
> Modified: lldb/trunk/unittests/TestingSupport/TestUtilities.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/TestingSupport/TestUtilities.h?rev=369374&r1=369373&r2=369374&view=diff
> ==============================================================================
> --- lldb/trunk/unittests/TestingSupport/TestUtilities.h (original)
> +++ lldb/trunk/unittests/TestingSupport/TestUtilities.h Tue Aug 20 05:28:36 2019
> @@ -12,6 +12,7 @@
>  #include "llvm/ADT/SmallString.h"
>  #include "llvm/ADT/Twine.h"
>  #include "llvm/Support/Error.h"
> +#include "llvm/Support/FileUtilities.h"
>  #include <string>
>
>  #define ASSERT_NO_ERROR(x)                                                     \
> @@ -27,8 +28,28 @@
>
>  namespace lldb_private {
>  std::string GetInputFilePath(const llvm::Twine &name);
> -llvm::Error ReadYAMLObjectFile(const llvm::Twine &yaml_name,
> -                               llvm::SmallString<128> &obj);
> +
> +class TestFile {
> +public:
> +  static llvm::Expected<TestFile> fromYaml(llvm::StringRef Yaml);
> +  static llvm::Expected<TestFile> fromYamlFile(const llvm::Twine &Name);
> +
> +  TestFile(TestFile &&RHS) : Name(std::move(RHS.Name)) {
> +    RHS.Name = llvm::None;
> +  }
> +
> +  ~TestFile();
> +
> +  llvm::StringRef name() { return *Name; }
> +
> +private:
> +  TestFile(llvm::StringRef Name, llvm::FileRemover &&Remover) : Name(Name) {
> +    Remover.releaseFile();
> +  }
> +  void operator=(const TestFile &) = delete;
> +
> +  llvm::Optional<std::string> Name;
> +};
>  }
>
>  #endif
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


More information about the lldb-commits mailing list