llvm/lldb/test/API/functionalities/wrong_commands/TestWrongCommands.py

"""
Test how lldb reacts to wrong commands
"""

import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil


class UnknownCommandTestCase(TestBase):
    @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.assertRegex(result.GetError(), "Ambiguous command 'g'. Possible matches:")
        self.assertRegex(result.GetError(), "gui")
        self.assertRegex(result.GetError(), "gdb-remote")
        self.assertEqual(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.assertEqual(result.GetError(), "error: 'qbert' is not a valid command.\n")