[Lldb-commits] [PATCH] D70137: [lldb][Editline] Support ctrl+left/right arrow word navigation.

Jordan Rupprecht via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Nov 14 10:43:23 PST 2019


rupprecht marked an inline comment as done.
rupprecht added inline comments.


================
Comment at: lldb/packages/Python/lldbsuite/test/terminal/TestEditline.py:37-38
+
+        # Run help for different commands for escape variants to make sure each
+        # one matches uniquely (the buffer isn't cleared in between matches).
+        cases = [
----------------
labath wrote:
> The buffer isn't exactly "cleared", but each "expect" command should only match from the end of the previous match, so repeating the same command should not be a problem. What the other (few) pexpect tests do is put an `self.expect_prompt()` to ensure all output from the previous command is ignored, and lldb is ready to receive a new command. You could do that too. In fact, you could probably use the helper "expect" command which does all of this for you:
> `self.expect("el ommand{L}c{L}{L}h{R}p".format(...), substrs=["Syntax: command"])`
The expect helper is nice, thanks!

> but each "expect" command should only match from the end of the previous match
I am not able to reproduce that. If I change the expect to the static string `"Syntax: print"` (not `% cmd`), then the second case (which types `"help step"`) passes. Which implies it's checking the entire buffer.

The third case (`"help exit"`) fails because the buffer does not contain the `print` help text anymore. But that means this behavior is dependent on the relation between help text length and buffer size. For now, I'll leave this as separate help commands.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70137/new/

https://reviews.llvm.org/D70137





More information about the lldb-commits mailing list