mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 18:44:20 +08:00
* gdb.cp/cpcompletion.exp (test_class_complete): New procedure.
Add two new C++ completer tests which limit the output to a given class.
This commit is contained in:
parent
95699ff037
commit
676accff0e
@ -1,3 +1,9 @@
|
||||
2009-08-24 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* gdb.cp/cpcompletion.exp (test_class_complete): New procedure.
|
||||
Add two new C++ completer tests which limit the output to a
|
||||
given class.
|
||||
|
||||
2009-08-24 Michael Snyder <msnyder@vmware.com>
|
||||
|
||||
* gdb.base/del.exp: Fix typo in comment.
|
||||
|
@ -15,6 +15,40 @@
|
||||
|
||||
# This file is part of the gdb testsuite.
|
||||
|
||||
# A helper procedure to test location completions restricted by
|
||||
# class.
|
||||
proc test_class_complete {class expr name matches} {
|
||||
global gdb_prompt
|
||||
|
||||
set matches [lsort $matches]
|
||||
set cmd "complete break ${class}::$expr"
|
||||
set seen {}
|
||||
gdb_test_multiple $cmd $name {
|
||||
"break ${class}::main" { fail "$name (saw global symbol)" }
|
||||
$cmd { exp_continue }
|
||||
-re "break ${class}::\[A-Za-z0-9_~\]+" {
|
||||
set str $expect_out(0,string)
|
||||
scan $str "break ${class}::%\[^(\]" method
|
||||
lappend seen $method
|
||||
exp_continue
|
||||
}
|
||||
-re "$gdb_prompt $" {
|
||||
set failed ""
|
||||
foreach got [lsort $seen] have $matches {
|
||||
if {![string equal $got $have]} {
|
||||
set failed $have
|
||||
break
|
||||
}
|
||||
}
|
||||
if {[string length $failed] != 0} {
|
||||
fail "$name ($failed not found)"
|
||||
} else {
|
||||
pass $name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if $tracelevel then {
|
||||
strace $tracelevel
|
||||
}
|
||||
@ -58,3 +92,11 @@ gdb_test "complete p foo1.Fo" "p foo1\\.Foofoo"
|
||||
|
||||
# Test completion with an anonymous struct.
|
||||
gdb_test "complete p a.g" "p a\\.get"
|
||||
|
||||
# Test that completion is restricted by class name (all methods)
|
||||
test_class_complete Foo "" "complete class methods" \
|
||||
[list Foo Foofoo get_foo set_foo ~Foo]
|
||||
|
||||
test_class_complete Foo F "complete class methods beginning with F" \
|
||||
[list Foo Foofoo]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user