diff options
| author | Dawn Perchik <dawn@burble.org> | 2015-06-22 20:41:57 +0000 |
|---|---|---|
| committer | Dawn Perchik <dawn@burble.org> | 2015-06-22 20:41:57 +0000 |
| commit | 8c6fe230d551f52efa47f0a7c64513104ab16db1 (patch) | |
| tree | ea15cad084a011e49c20dd85b83ef8004aa2d1b8 | |
| parent | 91370c5d62726374cf9ef95a49a0a287499c3cf8 (diff) | |
| download | bcm5719-llvm-8c6fe230d551f52efa47f0a7c64513104ab16db1.tar.gz bcm5719-llvm-8c6fe230d551f52efa47f0a7c64513104ab16db1.zip | |
Enhance lldb-mi arguments test (MI)
SUMMARY:
Add additional arguments to lldb-mi args tests to make sure arguments with quotes are handled correctly.
Reviewers: ki.stfu
Subscribers: lldb-commits
Test Plan:
./dotest.py --executable lldb -f MiInterpreterExecTestCase.test_lldbmi_settings_set_target_run_args_before
./dotest.py --executable lldb -f MiInterpreterExecTestCase.test_lldbmi_settings_set_target_run_args_after
Differential Revision: http://reviews.llvm.org/D10523
llvm-svn: 240325
| -rw-r--r-- | lldb/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py | 43 | ||||
| -rw-r--r-- | lldb/test/tools/lldb-mi/interpreter/main.cpp | 6 |
2 files changed, 39 insertions, 10 deletions
diff --git a/lldb/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py b/lldb/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py index 7b375e54f47..82deed07ce2 100644 --- a/lldb/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py +++ b/lldb/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py @@ -61,8 +61,8 @@ class MiInterpreterExecTestCase(lldbmi_testcase.MiTestCaseBase): self.spawnLldbMi(args = None) # Test that "settings set target.run-args" passes arguments to executable - #FIXME: "--arg1 \"2nd arg\" third_arg fourth=\"4th arg\"" causes an error - self.runCmd("-interpreter-exec console \"setting set target.run-args arg1\"") + #FIXME: --arg1 causes an error + self.runCmd("-interpreter-exec console \"setting set target.run-args arg1 \\\"2nd arg\\\" third_arg fourth=\\\"4th arg\\\"\"") self.expect("\^done") # Load executable @@ -74,7 +74,15 @@ class MiInterpreterExecTestCase(lldbmi_testcase.MiTestCaseBase): self.expect("\^running") # Test that arguments were passed properly - self.expect("@\"argc=2\\\\r\\\\n\"") + self.expect("@\"argc=5\\\\r\\\\n\"") + self.expect("@\"argv.0.=.*lldb-mi") + self.expect("@\"argv.1.=arg1\\\\r\\\\n\"") + self.expect("@\"argv.2.=2nd arg\\\\r\\\\n\"") + self.expect("@\"argv.3.=third_arg\\\\r\\\\n\"") + self.expect("@\"argv.4.=fourth=4th arg\\\\r\\\\n\"") + + # Test that program exited normally + self.expect("\*stopped,reason=\"exited-normally\"") @lldbmi_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") @@ -89,16 +97,35 @@ class MiInterpreterExecTestCase(lldbmi_testcase.MiTestCaseBase): self.expect("\^done") # Test that "settings set target.run-args" passes arguments to executable - #FIXME: "--arg1 \"2nd arg\" third_arg fourth=\"4th arg\"" causes an error - self.runCmd("-interpreter-exec console \"setting set target.run-args arg1\"") + #FIXME: --arg1 causes an error + self.runCmd("-interpreter-exec console \"setting set target.run-args arg1 \\\"2nd arg\\\" third_arg fourth=\\\"4th arg\\\"\"") self.expect("\^done") - # Run + # 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("\^running"); + self.expect("\*stopped,reason=\"breakpoint-hit\"") + + # Run to BP_return + line = line_number('main.cpp', '// BP_return') + self.runCmd("-break-insert main.cpp:%d" % line) + self.expect("\^done,bkpt={number=\"2\"") + self.runCmd("-exec-continue") + self.expect("\^running"); # Test that arguments were passed properly - self.expect("@\"argc=2\\\\r\\\\n\"") + self.expect("@\"argc=5\\\\r\\\\n\"") + self.expect("@\"argv.0.=.*lldb-mi") + self.expect("@\"argv.1.=arg1\\\\r\\\\n\"") + self.expect("@\"argv.2.=2nd arg\\\\r\\\\n\"") + self.expect("@\"argv.3.=third_arg\\\\r\\\\n\"") + self.expect("@\"argv.4.=fourth=4th arg\\\\r\\\\n\"") + + # Hit BP_return + self.expect("\*stopped,reason=\"breakpoint-hit\"") @lldbmi_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") diff --git a/lldb/test/tools/lldb-mi/interpreter/main.cpp b/lldb/test/tools/lldb-mi/interpreter/main.cpp index d4c353f006e..0c042d46698 100644 --- a/lldb/test/tools/lldb-mi/interpreter/main.cpp +++ b/lldb/test/tools/lldb-mi/interpreter/main.cpp @@ -12,6 +12,8 @@ int main(int argc, char const *argv[]) { - printf("argc=%d\n", argc); - return 0; + printf("argc=%d\n", argc); // BP_printf + for (int i = 0; i < argc; ++i) + printf("argv[%d]=%s\n", i, argv[i]); + return 0; // BP_return } |

