diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-06 20:14:12 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-06 20:14:12 +0000 | 
| commit | a4092fcbfb39b4d32a8e152a110d20132779d538 (patch) | |
| tree | 37c84fe56b8ec43e3b08de27d76f53e259ddb0c7 /packages/Python/lldbsuite/test/tools | |
| parent | cce7c2b0d24e364b1907670cf6f843531e5fe052 (diff) | |
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/tools')
5 files changed, 99 insertions, 5 deletions
| diff --git a/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiEnvironmentCd.py b/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiEnvironmentCd.py new file mode 100644 index 000000000000..786c842bb514 --- /dev/null +++ b/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiEnvironmentCd.py @@ -0,0 +1,37 @@ +""" +Test lldb-mi -environment-cd command. +""" + +from __future__ import print_function + + +import lldbmi_testcase +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + + +class MiEnvironmentCdTestCase(lldbmi_testcase.MiTestCaseBase): + +    mydir = TestBase.compute_mydir(__file__) + +    @skipIfWindows  # llvm.org/pr24452: Get lldb-mi tests working on Windows +    @skipIfFreeBSD  # llvm.org/pr22411: Failure presumably due to known thread races +    @skipIfDarwin   # Disabled while I investigate the failure on buildbot. +    def test_lldbmi_environment_cd(self): +        """Test that 'lldb-mi --interpreter' changes working directory for inferior.""" + +        self.spawnLldbMi(args=None) + +        # Load executable +        self.runCmd("-file-exec-and-symbols %s" % self.myexe) +        self.expect("\^done") + +        # cd to a different directory +        self.runCmd("-environment-cd /tmp") +        self.expect("\^done") + +        # Run to the end +        self.runCmd("-exec-run") +        self.expect("\^running") +        self.expect("@\"cwd: /tmp\\r\\n\"", exactly=True) diff --git a/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiGdbSetShow.py b/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiGdbSetShow.py index 5daf3fe0939c..9b575c49bcb0 100644 --- a/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiGdbSetShow.py +++ b/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiGdbSetShow.py @@ -208,3 +208,44 @@ class MiGdbSetShowTestCase(lldbmi_testcase.MiTestCaseBase):          self.expect("\^done")          self.runCmd("-var-evaluate-expression var_a")          self.expect("\^done,value=\"10\"") + +    @skipIfWindows  # llvm.org/pr24452: Get lldb-mi tests working on Windows +    @skipIfFreeBSD  # llvm.org/pr22411: Failure presumably due to known thread races +    @expectedFailureAll( +        bugnumber="llvm.org/pr31485: data-disassemble doesn't follow flavor settings") +    def test_lldbmi_gdb_set_disassembly_flavor(self): +        """Test that 'lldb-mi --interpreter' works for -gdb-set disassembly-flavor.""" + +        self.spawnLldbMi(args=None) + +        # Load executable +        self.runCmd("-file-exec-and-symbols %s" % self.myexe) +        self.expect("\^done") + +        # Run to BP_printf +        line = line_number('main.cpp', '// BP_printf') +        self.runCmd("-break-insert main.cpp:%d" % line) +        self.expect("\^done,bkpt={number=\"1\"") +        self.runCmd("-exec-run") +        self.expect("\^running") +        self.expect("\*stopped,reason=\"breakpoint-hit\".+addr=\"(0x[0-9a-f]+)\"") + +        # Get starting and ending address from $pc +        pc = int(self.child.match.group(1), base=16) +        s_addr, e_addr = pc, pc + 1 + +        # Test default output (att) +        self.runCmd("-data-disassemble -s %d -e %d -- 0" % (s_addr, e_addr)) +        self.expect("movl ") + +        # Test intel style +        self.runCmd("-gdb-set disassembly-flavor intel") +        self.expect("\^done") +        self.runCmd("-data-disassemble -s %d -e %d -- 0" % (s_addr, e_addr)) +        self.expect("mov ") + +        # Test AT&T style +        self.runCmd("-gdb-set disassembly-flavor intel") +        self.expect("\^done") +        self.runCmd("-data-disassemble -s %d -e %d -- 0" % (s_addr, e_addr)) +        self.expect("movl ") diff --git a/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py b/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py index 354f955b7478..2c0de4238c38 100644 --- a/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py +++ b/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py @@ -111,24 +111,25 @@ class MiExecTestCase(lldbmi_testcase.MiTestCaseBase):          self.expect("\*stopped,reason=\"breakpoint-hit\"")          # Check argc and argv to see if arg passed +        # Note that exactly=True is needed to avoid extra escaping for re          self.runCmd("-data-evaluate-expression argc")          self.expect("\^done,value=\"5\"")          #self.runCmd("-data-evaluate-expression argv[1]")          # self.expect("\^done,value=\"--arg1\"")          self.runCmd("-interpreter-exec command \"print argv[1]\"") -        self.expect("\"--arg1\"") +        self.expect("\\\"--arg1\\\"", exactly=True)          #self.runCmd("-data-evaluate-expression argv[2]")          #self.expect("\^done,value=\"2nd arg\"")          self.runCmd("-interpreter-exec command \"print argv[2]\"") -        self.expect("\"2nd arg\"") +        self.expect("\\\"2nd arg\\\"", exactly=True)          #self.runCmd("-data-evaluate-expression argv[3]")          # self.expect("\^done,value=\"third_arg\"")          self.runCmd("-interpreter-exec command \"print argv[3]\"") -        self.expect("\"third_arg\"") +        self.expect("\\\"third_arg\\\"", exactly=True)          #self.runCmd("-data-evaluate-expression argv[4]")          #self.expect("\^done,value=\"fourth=\\\\\\\"4th arg\\\\\\\"\"")          self.runCmd("-interpreter-exec command \"print argv[4]\"") -        self.expect("\"fourth=\\\\\\\"4th arg\\\\\\\"\"") +        self.expect("\\\"fourth=\\\\\\\"4th arg\\\\\\\"\\\"", exactly=True)      @skipIfWindows  # llvm.org/pr24452: Get lldb-mi tests working on Windows      @skipIfFreeBSD  # llvm.org/pr22411: Failure presumably due to known thread races diff --git a/packages/Python/lldbsuite/test/tools/lldb-mi/main.cpp b/packages/Python/lldbsuite/test/tools/lldb-mi/main.cpp index 6a2079f2ce74..0215b428925b 100644 --- a/packages/Python/lldbsuite/test/tools/lldb-mi/main.cpp +++ b/packages/Python/lldbsuite/test/tools/lldb-mi/main.cpp @@ -9,11 +9,25 @@  #include <cstdio> +#ifdef _WIN32 +    #include <direct.h> +    #define getcwd _getcwd // suppress "deprecation" warning +#else +    #include <unistd.h> +#endif +  int  main(int argc, char const *argv[])  { -    int a  = 10; +    int a = 10; + +    char buf[512]; +    char *ans = getcwd(buf, sizeof(buf)); +    if (ans) { +        printf("cwd: %s\n", ans); +    }      printf("argc=%d\n", argc); // BP_printf +      return 0;  } diff --git a/packages/Python/lldbsuite/test/tools/lldb-mi/syntax/TestMiSyntax.py b/packages/Python/lldbsuite/test/tools/lldb-mi/syntax/TestMiSyntax.py index 02059080f305..8e45c95927ba 100644 --- a/packages/Python/lldbsuite/test/tools/lldb-mi/syntax/TestMiSyntax.py +++ b/packages/Python/lldbsuite/test/tools/lldb-mi/syntax/TestMiSyntax.py @@ -97,6 +97,7 @@ class MiSyntaxTestCase(lldbmi_testcase.MiTestCaseBase):          # Run all commands simultaneously          self.runCmd("-unknown-command") +        self.runCmd("-interpreter-exec command help")          self.runCmd("-file-exec-and-symbols %s" % self.myexe)          self.runCmd("-break-insert -f main")          self.runCmd("-gdb-set target-async off") | 
