[Lldb-commits] Fix for double command completion text
Matthew Sorrels
sorrels.m at gmail.com
Fri Jun 14 13:33:38 PDT 2013
I get a failure in TestAliases.py without my change as well. But the error
I get is different than what you list (occurs sooner at line 99). It
appears to be a bug in the test script itself, it's missing a space. on
line 99 between the = and 'main.cpp' Or am I running these tests wrong
somehow? If I add the space the test runs (without my diff).
I can see why my patch is causing the regression your reporting. I think
I'm going to have make the matches list remove dups (rather than just raw
append).
matthews at matthews-linux:~/work/llvm/llvm/tools/lldb/test$ python dotest.py
--executable ~/work/llvm/llvm/build/bin/lldb -q -p TestAliases.py
UNSUPPORTED: LLDB (clang-x86_64) :: test_with_dsym
(TestAliases.AliasTestCase) (requires Darwin)
FAIL: LLDB (clang-x86_64) :: test_with_dwarf (TestAliases.AliasTestCase)
======================================================================
FAIL: test_with_dwarf (TestAliases.AliasTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/data/work/llvm/llvm/tools/lldb.svn/test/lldbtest.py", line 368, in
wrapper
return func(self, *args, **kwargs)
File
"/data/work/llvm/llvm/tools/lldb.svn/test/functionalities/alias/TestAliases.py",
line 24, in test_with_dwarf
self.alias_tests ()
File
"/data/work/llvm/llvm/tools/lldb.svn/test/functionalities/alias/TestAliases.py",
line 99, in alias_tests
"3: file ='main.cpp', line = 32, locations = 1" ])
File "/data/work/llvm/llvm/tools/lldb.svn/test/lldbtest.py", line 1720,
in expect
msg if msg else EXP_MSG(str, exe))
AssertionError: False is not True : '3: file ='main.cpp', line = 32,
locations = 1' returns expected result
Config=x86_64-clang
----------------------------------------------------------------------
Ran 2 tests in 0.443s
FAILED (failures=1, skipped=1)
On Fri, Jun 14, 2013 at 12:15 PM, Kopec, Matt <matt.kopec at intel.com> wrote:
> Hi Matthew,
>
> I ran this patch against the lldb test suite and a regression came up.
> Here is how to quickly run the failing test and the corresponding output:
>
> mkopec1 at mkopec1-linux:~/dev/llvm/tools/lldb/test$ python dotest.py
> --executable /home/mkopec1/dev/llvm/build/Debug+Asserts/bin/lldb -q -p
> TestAliases.py
> UNSUPPORTED: LLDB (clang-x86_64) :: test_with_dsym
> (TestAliases.AliasTestCase) (requires Darwin)
> FAIL: LLDB (clang-x86_64) :: test_with_dwarf (TestAliases.AliasTestCase)
> ======================================================================
> FAIL: test_with_dwarf (TestAliases.AliasTestCase)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/home/mkopec1/dev/llvm/tools/lldb/test/lldbtest.py", line 368, in
> wrapper
> return func(self, *args, **kwargs)
> File
> "/home/mkopec1/dev/llvm/tools/lldb/test/functionalities/alias/TestAliases.py",
> line 24, in test_with_dwarf
> self.alias_tests ()
> File
> "/home/mkopec1/dev/llvm/tools/lldb/test/functionalities/alias/TestAliases.py",
> line 139, in alias_tests
> self.runCmd ("alias exprf2 expr --raw -f %1 --")
> File "/home/mkopec1/dev/llvm/tools/lldb/test/lldbtest.py", line 1582, in
> runCmd
> msg if msg else CMD_MSG(cmd))
> AssertionError: False is not True : Command 'alias exprf2 expr --raw -f %1
> --' returns successfully
> Config=x86_64-clang
> ----------------------------------------------------------------------
> Ran 2 tests in 0.633s
>
> FAILED (failures=1, skipped=1)
>
> Matt
>
> On 2013-06-07, at 5:24 PM, Matthew Sorrels <sorrels.m at gmail.com> wrote:
>
> > When doing command completion with multiple command matches you will see
> the commands twice. The best example of this bug is typing pl<tab>
> >
> > (lldb) pl
> > Available completions:
> > platform
> > plugin
> > platform
> > plugin
> >
> >
> > with this patch you get the expected result:
> >
> > (lldb) pl
> > Available completions:
> > platform
> > plugin
> >
> >
> > The fix works because once an exact match for a command and a
> command+aliases fails it just asks for any inexact matches from both
> commands and aliases rather than asking for any inexact commands (which
> returns a list of matches) and then any inexact commands and aliases (which
> adds the commands to the list again plus any aliases).
> >
> > If this seems reasonable, please commit it for me. Thanks.
> >
> >
> > Index: source/Interpreter/CommandInterpreter.cpp
> > ===================================================================
> > --- source/Interpreter/CommandInterpreter.cpp (revision 183564)
> > +++ source/Interpreter/CommandInterpreter.cpp (working copy)
> > @@ -848,13 +848,7 @@
> > command_obj = GetCommandSP (cmd_cstr, true, true,
> matches).get();
> > }
> >
> > - // If there wasn't an exact match among the aliases, look for an
> inexact match
> > - // in just the commands.
> > -
> > - if (command_obj == NULL)
> > - command_obj = GetCommandSP(cmd_cstr, false, false,
> matches).get();
> > -
> > - // Finally, if there wasn't an inexact match among the commands,
> look for an inexact
> > + // If there wasn't an exact match among the commands and aliases,
> look for an inexact
> > // match in both the commands and aliases.
> > if (command_obj == NULL)
> > command_obj = GetCommandSP(cmd_cstr, true, false,
> matches).get();
> >
> > _______________________________________________
> > lldb-commits mailing list
> > lldb-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20130614/2e1cb960/attachment.html>
More information about the lldb-commits
mailing list