[Lldb-commits] [lldb] r268971 - Added a testcase that verifies that multiline expressions work.
Sean Callanan via lldb-commits
lldb-commits at lists.llvm.org
Mon May 9 14:14:19 PDT 2016
Author: spyffe
Date: Mon May 9 16:14:18 2016
New Revision: 268971
URL: http://llvm.org/viewvc/llvm-project?rev=268971&view=rev
Log:
Added a testcase that verifies that multiline expressions work.
Added:
lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/
lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/Makefile
lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/TestMultilineExpressions.py
lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/main.c
Added: lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/Makefile
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/Makefile?rev=268971&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/Makefile (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/Makefile Mon May 9 16:14:18 2016
@@ -0,0 +1,5 @@
+LEVEL = ../../make
+
+C_SOURCES := main.c
+
+include $(LEVEL)/Makefile.rules
Added: lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/TestMultilineExpressions.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/TestMultilineExpressions.py?rev=268971&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/TestMultilineExpressions.py (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/TestMultilineExpressions.py Mon May 9 16:14:18 2016
@@ -0,0 +1,57 @@
+"""Test multiline expressions."""
+
+from __future__ import print_function
+
+import os
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+class MultilineExpressionsTestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+ # Find the line number to break on inside main.cpp.
+ self.line = line_number('main.c', 'break')
+
+ @skipIfRemote
+ @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr22274: need a pexpect replacement for windows")
+ def test_with_run_commands(self):
+ """Test that multiline expressions work correctly"""
+ self.build()
+ import pexpect
+ exe = os.path.join(os.getcwd(), "a.out")
+ prompt = "(lldb) "
+
+ # So that the child gets torn down after the test.
+ self.child = pexpect.spawn('%s %s %s' % (lldbtest_config.lldbExec, self.lldbOption, exe))
+ child = self.child
+ # Turn on logging for what the child sends back.
+ if self.TraceOn():
+ child.logfile_read = sys.stdout
+
+ # Set the breakpoint, run the inferior, when it breaks, issue print on
+ # the various convenience variables.
+ child.expect_exact(prompt)
+ child.sendline('breakpoint set -f main.c -l %d' % self.line)
+ child.expect_exact(prompt)
+ child.sendline('run')
+ child.expect_exact("stop reason = breakpoint 1.1")
+ child.expect_exact(prompt)
+ child.sendline('expr')
+ child.expect_exact('1:')
+
+ child.sendline('2+')
+ child.expect_exact('2:')
+
+ child.sendline('3')
+ child.expect_exact('3:')
+
+ child.sendline('')
+ child.expect_exact(prompt)
+ self.expect(child.before, exe=False,
+ patterns = ['= 5'])
Added: lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/main.c
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/main.c?rev=268971&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/main.c (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/expression_command/multiline/main.c Mon May 9 16:14:18 2016
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(int argc, char const *argv[]) {
+ printf("Hello world.\n"); // break here
+ return 0;
+}
More information about the lldb-commits
mailing list