Summary:
So far lldb is printing this when it finds an ambiguous command:
```
(lldb) g
Ambiguous command 'g'. Possible matches:
gdb-remote
gui
gdb-remote
gui
```
The duplicates come from the fact that we call the same query twice with the same parameters
and add it to the same list. This patch just removes the second query call to `GetCommandObject`.
As `GetCommandObject` is const and the name parameter is also not modified, this shouldn't break
anything else. I didn't merge the remaining if statement into the else as I think otherwise the
`if obj==nullptr do X else Y` pattern in there becomes hard to recognize.
Reviewers: davide
Reviewed By: davide
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D49866
llvm-svn: 338043
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
"""
|
|
Test how lldb reacts to wrong commands
|
|
"""
|
|
|
|
from __future__ import print_function
|
|
|
|
import os
|
|
import time
|
|
import lldb
|
|
from lldbsuite.test.decorators import *
|
|
from lldbsuite.test.lldbtest import *
|
|
from lldbsuite.test import lldbutil
|
|
|
|
class UnknownCommandTestCase(TestBase):
|
|
|
|
mydir = TestBase.compute_mydir(__file__)
|
|
|
|
@no_debug_info_test
|
|
def test_ambiguous_command(self):
|
|
command_interpreter = self.dbg.GetCommandInterpreter()
|
|
self.assertTrue(command_interpreter, VALID_COMMAND_INTERPRETER)
|
|
result = lldb.SBCommandReturnObject()
|
|
|
|
command_interpreter.HandleCommand("g", result)
|
|
self.assertFalse(result.Succeeded())
|
|
self.assertRegexpMatches(result.GetError(), "Ambiguous command 'g'. Possible matches:")
|
|
self.assertRegexpMatches(result.GetError(), "gui")
|
|
self.assertRegexpMatches(result.GetError(), "gdb-remote")
|
|
self.assertEquals(1, result.GetError().count("gdb-remote"))
|
|
|
|
@no_debug_info_test
|
|
def test_unknown_command(self):
|
|
command_interpreter = self.dbg.GetCommandInterpreter()
|
|
self.assertTrue(command_interpreter, VALID_COMMAND_INTERPRETER)
|
|
result = lldb.SBCommandReturnObject()
|
|
|
|
command_interpreter.HandleCommand("qbert", result)
|
|
self.assertFalse(result.Succeeded())
|
|
self.assertEquals(result.GetError(), "error: 'qbert' is not a valid command.\n")
|