[lldb][NFC] Add 'breakpoint command list' test

The command has zero test coverage and I'll have to touch the
code formatting the output commands, so let's start by adding a
test for it.
This commit is contained in:
Raphael Isemann 2019-12-02 11:08:10 +01:00 committed by Raphael Isemann
parent e9e1daf2b9
commit 160a5045c6
2 changed files with 62 additions and 0 deletions

View File

@ -0,0 +1,44 @@
"""
Test 'breakpoint command list'.
"""
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class TestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@no_debug_info_test
def test_list_commands(self):
src_dir = self.getSourceDir()
yaml_path = os.path.join(src_dir, "a.yaml")
yaml_base, ext = os.path.splitext(yaml_path)
obj_path = self.getBuildArtifact("main.o")
self.yaml2obj(yaml_path, obj_path)
# Create a target with the object file we just created from YAML
target = self.dbg.CreateTarget(obj_path)
self.assertTrue(target, VALID_TARGET)
# Test without any breakpoints.
self.expect("breakpoint command list 1", error=True, substrs=["error: No breakpoints exist for which to list commands"])
# Set a breakpoint
self.runCmd("b foo")
# Check list breakpoint commands for breakpoints that have no commands.
self.expect("breakpoint command list 1", startstr="Breakpoint 1 does not have an associated command.")
# Add a breakpoint command.
self.runCmd("breakpoint command add -o 'source list' 1")
# List breakpoint command that we just created.
self.expect("breakpoint command list 1", startstr="""Breakpoint 1:
Breakpoint commands:
source list
""")
# List breakpoint command with invalid breakpoint ID.
self.expect("breakpoint command list 2", error=True, startstr="error: '2' is not a currently valid breakpoint ID.")

View File

@ -0,0 +1,18 @@
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
AddressAlign: 0x0000000000000010
Content: 554889E5897DFC5DC3
Symbols:
- Name: foo
Type: STT_FUNC
Section: .text
Size: 0x0000000000000009
...