[Lldb-commits] [lldb] r354540 - Revert "[lldb-mi] Move TestMIPrompt away from pexpect()."

Davide Italiano via lldb-commits lldb-commits at lists.llvm.org
Wed Feb 20 17:55:31 PST 2019


Author: davide
Date: Wed Feb 20 17:55:31 2019
New Revision: 354540

URL: http://llvm.org/viewvc/llvm-project?rev=354540&view=rev
Log:
Revert "[lldb-mi] Move TestMIPrompt away from pexpect()."

I see a test failing on the macOS bots. I can't reproduce
locally, so try to get the bots green before I can investigate.

Added:
    lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiPrompt.py
Removed:
    lldb/trunk/lit/tools/lldb-mi/breakpoint/break-main.test

Removed: lldb/trunk/lit/tools/lldb-mi/breakpoint/break-main.test
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/tools/lldb-mi/breakpoint/break-main.test?rev=354539&view=auto
==============================================================================
--- lldb/trunk/lit/tools/lldb-mi/breakpoint/break-main.test (original)
+++ lldb/trunk/lit/tools/lldb-mi/breakpoint/break-main.test (removed)
@@ -1,17 +0,0 @@
-# RUN: %build %p/inputs/break-insert.c --nodefaultlib -o a.exe
-# RUN: %lldbmi < %s | FileCheck %s
-
-# Test that a breakpoint can be set on a function.
-
--file-exec-and-symbols a.exe
-# CHECK: ^done
-
--break-insert -f main
-# CHECK: ^done,bkpt={number="1"
-
--exec-run
-# CHECK: ^running
-# CHECK: *stopped,reason="breakpoint-hit"
-
--exec-continue
-# CHECK: ^running

Added: lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiPrompt.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiPrompt.py?rev=354540&view=auto
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiPrompt.py (added)
+++ lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiPrompt.py Wed Feb 20 17:55:31 2019
@@ -0,0 +1,58 @@
+"""
+Test that the lldb-mi driver prints prompt properly.
+"""
+
+from __future__ import print_function
+
+
+import lldbmi_testcase
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class MiPromptTestCase(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
+    @skipIfRemote   # We do not currently support remote debugging via the MI.
+    def test_lldbmi_prompt(self):
+        """Test that 'lldb-mi --interpreter' echos '(gdb)' after commands and events."""
+
+        self.spawnLldbMi(args=None)
+
+        # Test that lldb-mi is ready after unknown command
+        self.runCmd("-unknown-command")
+        self.expect(
+            "\^error,msg=\"Driver\. Received command '-unknown-command'\. It was not handled\. Command 'unknown-command' not in Command Factory\"")
+        self.expect(self.child_prompt, exactly=True)
+
+        # Test that lldb-mi is ready after -file-exec-and-symbols
+        self.runCmd("-file-exec-and-symbols %s" % self.myexe)
+        self.expect("\^done")
+        self.expect(self.child_prompt, exactly=True)
+
+        # Test that lldb-mi is ready after -break-insert
+        self.runCmd("-break-insert -f main")
+        self.expect("\^done,bkpt={number=\"1\"")
+        self.expect(self.child_prompt, exactly=True)
+
+        # Test that lldb-mi is ready after -exec-run
+        self.runCmd("-exec-run")
+        self.expect("\*running")
+        self.expect(self.child_prompt, exactly=True)
+
+        # Test that lldb-mi is ready after BP hit
+        self.expect("\*stopped,reason=\"breakpoint-hit\"")
+        self.expect(self.child_prompt, exactly=True)
+
+        # Test that lldb-mi is ready after -exec-continue
+        self.runCmd("-exec-continue")
+        self.expect("\^running")
+        self.expect(self.child_prompt, exactly=True)
+
+        # Test that lldb-mi is ready after program exited
+        self.expect("\*stopped,reason=\"exited-normally\"")
+        self.expect(self.child_prompt, exactly=True)




More information about the lldb-commits mailing list