[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