summaryrefslogtreecommitdiffstats
path: root/lldb/test/command_regex/TestCommandRegex.py
blob: 0ac62aad8c51adb45e0b9e2a9826c1fe5f82a661 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"""
Test lldb 'commands regex' command which allows the user to create a regular expression command.
"""

import os
import unittest2
import lldb
import pexpect
from lldbtest import *

class CommandRegexTestCase(TestBase):

    mydir = "command_regex"

    def test_command_regex(self):
        """Test a simple scenario of 'commands regexp' invocation and subsequent use."""
        prompt = "\(lldb\) "
        regex_prompt = "Enter multiple regular expressions in the form s/find/replace/ then terminate with an empty line:\r\n"
        regex_prompt1 = "\r\n"

        child = pexpect.spawn('%s' % self.lldbExec)
        # Turn on logging for what the child sends back.
        if traceAlways:
            child.logfile_read = sys.stdout

        # Set the breakpoint, followed by the target stop-hook commands.
        child.expect(prompt)
        child.sendline('commands regex Help!')
        child.expect(regex_prompt)
        child.sendline('s/^$/help/')
        child.expect(regex_prompt1)
        child.sendline('')
        # Help!
        child.sendline('Help!')
        # If we see the familiar 'help' output, the test is done.
        child.expect('The following is a list of built-in, permanent debugger commands:')        

if __name__ == '__main__':
    import atexit
    lldb.SBDebugger.Initialize()
    atexit.register(lambda: lldb.SBDebugger.Terminate())
    unittest2.main()
OpenPOWER on IntegriCloud