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 | |
parent | cce7c2b0d24e364b1907670cf6f843531e5fe052 (diff) |
Vendor import of lldb trunk r291274:vendor/lldb/lldb-trunk-r291274
Notes
Notes:
svn path=/vendor/lldb/dist/; revision=311542
svn path=/vendor/lldb/lldb-trunk-r291274/; revision=311543; tag=vendor/lldb/lldb-trunk-r291274
Diffstat (limited to 'packages/Python/lldbsuite')
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") |