summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDawn Perchik <dawn@burble.org>2015-06-22 20:41:57 +0000
committerDawn Perchik <dawn@burble.org>2015-06-22 20:41:57 +0000
commit8c6fe230d551f52efa47f0a7c64513104ab16db1 (patch)
treeea15cad084a011e49c20dd85b83ef8004aa2d1b8
parent91370c5d62726374cf9ef95a49a0a287499c3cf8 (diff)
downloadbcm5719-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.py43
-rw-r--r--lldb/test/tools/lldb-mi/interpreter/main.cpp6
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
}
OpenPOWER on IntegriCloud