diff options
| author | Pedro Alves <palves@redhat.com> | 2017-11-24 23:41:12 +0000 | 
|---|---|---|
| committer | Pedro Alves <palves@redhat.com> | 2017-11-24 23:41:12 +0000 | 
| commit | 8955eb2da31d78690c762748fab3a16832ef1f81 (patch) | |
| tree | e03fa77940af9eba7e83e8111eb960c599a8d017 /gdb/python/python.c | |
| parent | 0662b6a7c1b3b04a4ca31a09af703c91c7aa9646 (diff) | |
| download | binutils-8955eb2da31d78690c762748fab3a16832ef1f81.zip binutils-8955eb2da31d78690c762748fab3a16832ef1f81.tar.gz binutils-8955eb2da31d78690c762748fab3a16832ef1f81.tar.bz2 | |
Comprehensive C++ linespec/completer tests
Exercises all sorts of aspects fixed by previous patches, going back a
few months.
 - Exercises label completion, linespecs and explicit locations.
 - Exercises both quoting vs non-quoting, source filenames, function
   names, labels, with both linespecs and explicit locations.
 - Tests corner cases around not-quoting function names, and
   whitespace and/and completing inside a parameter or template
   argument list, anonymous namespace awareness, etc.
   E.g.,
     "break foo<[TAB]"          -> "break foo<int>()"
     "break bar ( int[TAB]"     -> "break bar ( int)
     "break ( anon"             -> "break ( anonymous namespace)::func()"
     "b cfunc() [tab]"          -> "b cfunc() const"
     "b rettype templfunc[tab]" -> "b rettype templfunc<bar>()"
   ... and others.
 - Tests the "b source.c[TAB] -> b source.cc:" feature.  I.e., colon
   auto-appending.
 - Exercises corner cases around C++ "operator<" / "operator<<".
   (Much more extensive C++ operator completion/linespec handling in a
   separate patch.)
 - Exercises both tab completion and "complete" command completion,
   using routines that handle it automatically, to ensure no test
   forgets either mode.
 - Many of the completion tests test completion at at prefix of a
   given tricky name, to make sure all corner cases are covered.
   E.g., completing before, at and after ":", "(", "<".
 - Exercises "keyword" completion.  I.e., "b function() [TAB]"
   displaying "if task thread" as completion match list.  Likewise for
   display explicit location options matches at the appropriate
   points.
 - Ensures that the completer finds the same breakpoint locations that
   setting a breakpoint finds.
 - Tests that linespec/location completion doesn't find data symbols.
 - Tests that expression completion still kicks in after a
   linespec/location keyword.  I.e., this:
     "b function () if global1 + global[TAB]"
   knows that after "if", you're completing on an expression, and thus
   breaks words after "if" as an expression and matches on "global" as
   a data symbol.
 - Adds common routines to help with all the above, to be used by
   multiple completion and linespec/location test cases.
 - More...
Grows the gdb.linespec/ tests like this:
  -# of expected passes           573
  +# of expected passes           3464
gdb/testsuite/ChangeLog:
2017-11-24  Pedro Alves  <palves@redhat.com>
	* gdb.linespec/cpcompletion.exp: New file.
	* gdb.linespec/cpls-hyphen.cc: New file.
	* gdb.linespec/cpls.cc: New file.
	* gdb.linespec/cpls2.cc: New file.
	* gdb.linespec/explicit.exp: Load completion-support.exp.  Adjust
	test to use test_gdb_complete_unique.  Add label completion,
	keyword completion and explicit location completion tests.
	* lib/completion-support.exp: New file.
Diffstat (limited to 'gdb/python/python.c')
0 files changed, 0 insertions, 0 deletions
