mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
gdb/testsuite: make test names unique in gdb.python/py-mi.exp
Use with_test_prefix to make the test names unique. gdb/testsuite/ChangeLog: * gdb.python/py-mi.exp: Use with_test_prefix to make test names unique.
This commit is contained in:
parent
1b2cb8e2ee
commit
e3141a4d89
@ -1,3 +1,8 @@
|
||||
2021-03-12 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* gdb.python/py-mi.exp: Use with_test_prefix to make test names
|
||||
unique.
|
||||
|
||||
2021-03-09 Tom Tromey <tromey@adacore.com>
|
||||
|
||||
* gdb.base/cast-call.exp: New file.
|
||||
|
@ -49,26 +49,30 @@ mi_gdb_test "source ${remote_python_file}" "load python file"
|
||||
mi_continue_to_line [gdb_get_line_number {MI breakpoint here} ${srcfile}] \
|
||||
"step to breakpoint"
|
||||
|
||||
mi_create_floating_varobj container c \
|
||||
"create container varobj, no pretty-printing"
|
||||
with_test_prefix "varobj container" {
|
||||
mi_create_floating_varobj container c \
|
||||
"create container varobj, no pretty-printing"
|
||||
|
||||
mi_list_varobj_children container {
|
||||
{ container.name name 1 string }
|
||||
{ container.len len 0 int }
|
||||
{ container.elements elements 1 "int ." }
|
||||
} "examine container children=0, no pretty-printing"
|
||||
mi_list_varobj_children container {
|
||||
{ container.name name 1 string }
|
||||
{ container.len len 0 int }
|
||||
{ container.elements elements 1 "int ." }
|
||||
} "examine container children=0, no pretty-printing"
|
||||
|
||||
mi_delete_varobj container "delete varobj"
|
||||
mi_delete_varobj container "delete varobj"
|
||||
}
|
||||
|
||||
mi_create_floating_varobj nscont nstype \
|
||||
"create nscont varobj, no pretty-printing"
|
||||
with_test_prefix "varobj nscont" {
|
||||
mi_create_floating_varobj nscont nstype \
|
||||
"create nscont varobj, no pretty-printing"
|
||||
|
||||
mi_list_varobj_children nscont {
|
||||
{ nscont.len len 0 int }
|
||||
{ nscont.elements elements 1 "int ." }
|
||||
} "examine nscont children=0, no pretty-printing"
|
||||
mi_list_varobj_children nscont {
|
||||
{ nscont.len len 0 int }
|
||||
{ nscont.elements elements 1 "int ." }
|
||||
} "examine nscont children=0, no pretty-printing"
|
||||
|
||||
mi_delete_varobj nscont "delete varobj"
|
||||
mi_delete_varobj nscont "delete varobj"
|
||||
}
|
||||
|
||||
mi_gdb_test "-enable-pretty-printing" ""
|
||||
|
||||
@ -87,119 +91,121 @@ mi_gdb_test "-var-update string" \
|
||||
"\\^done,changelist=\\\[{name=\"string\",in_scope=\"true\",type_changed=\"false\",dynamic=\"1\",has_more=\"0\"}\\\]" \
|
||||
"update string varobj after assignment"
|
||||
|
||||
# The "elements" field of "c" is still empty, so the attribute
|
||||
# "has_more" is expected to be zero.
|
||||
mi_create_dynamic_varobj container c 0 \
|
||||
"create container varobj"
|
||||
with_test_prefix "varobj container" {
|
||||
# The "elements" field of "c" is still empty, so the attribute
|
||||
# "has_more" is expected to be zero.
|
||||
mi_create_dynamic_varobj container c 0 \
|
||||
"create container varobj"
|
||||
|
||||
mi_list_varobj_children container {
|
||||
} "examine container children=0"
|
||||
mi_list_varobj_children container {
|
||||
} "examine container children=0"
|
||||
|
||||
mi_next "next over update 1"
|
||||
mi_next "next over update 1"
|
||||
|
||||
mi_varobj_update_dynamic container "varobj update 1" {
|
||||
type_changed false new_num_children 1 dynamic 1 has_more 0
|
||||
} {
|
||||
} {
|
||||
{ name {container.\[0\]} exp {\[0\]} numchild 0 type int }
|
||||
mi_varobj_update_dynamic container "varobj update 1" {
|
||||
type_changed false new_num_children 1 dynamic 1 has_more 0
|
||||
} {
|
||||
} {
|
||||
{ name {container.\[0\]} exp {\[0\]} numchild 0 type int }
|
||||
}
|
||||
|
||||
mi_next "next over update 2"
|
||||
|
||||
mi_varobj_update_dynamic container "varobj update 2" {
|
||||
type_changed false new_num_children 2 dynamic 1 has_more 0
|
||||
} {
|
||||
} {
|
||||
{ name {container.\[1\]} exp {\[1\]} numchild 0 type int }
|
||||
}
|
||||
|
||||
mi_gdb_test "-var-set-visualizer container None" \
|
||||
"\\^done" \
|
||||
"clear visualizer"
|
||||
|
||||
mi_gdb_test "-var-update container" \
|
||||
"\\^done,changelist=\\\[\\\]" \
|
||||
"varobj update after clearing"
|
||||
|
||||
mi_gdb_test "-var-set-visualizer container gdb.default_visualizer" \
|
||||
"\\^done" \
|
||||
"choose default visualizer"
|
||||
|
||||
mi_varobj_update_dynamic container "varobj update after choosing default" {
|
||||
type_changed false new_num_children 2 dynamic 1 has_more 0
|
||||
} {
|
||||
} {
|
||||
{ name {container.\[0\]} exp {\[0\]} numchild 0 type int }
|
||||
{ name {container.\[1\]} exp {\[1\]} numchild 0 type int }
|
||||
}
|
||||
|
||||
mi_gdb_test "-var-set-visualizer container ContainerPrinter" \
|
||||
"\\^done" \
|
||||
"choose visualizer using expression"
|
||||
|
||||
mi_varobj_update_dynamic container \
|
||||
"varobj update after choosing via expression" {
|
||||
type_changed false new_num_children 2 dynamic 1 has_more 0
|
||||
} {
|
||||
} {
|
||||
{ name {container.\[0\]} exp {\[0\]} numchild 0 type int }
|
||||
{ name {container.\[1\]} exp {\[1\]} numchild 0 type int }
|
||||
}
|
||||
|
||||
mi_list_varobj_children_range container 1 2 2 {
|
||||
{ {container.\[1\]} {\[1\]} 0 int }
|
||||
} "list varobj children after selecting child range"
|
||||
|
||||
mi_list_varobj_children_range container -1 -1 2 {
|
||||
{ {container.\[0\]} {\[0\]} 0 int }
|
||||
{ {container.\[1\]} {\[1\]} 0 int }
|
||||
} "list varobj children after resetting child range"
|
||||
|
||||
mi_next "next over update 3"
|
||||
|
||||
mi_gdb_test "-var-set-update-range container 0 1" \
|
||||
"\\^done" \
|
||||
"set update range"
|
||||
|
||||
# This should truncate the list.
|
||||
mi_list_varobj_children container {
|
||||
{ {container.\[0\]} {\[0\]} 0 int }
|
||||
} "list children after setting update range"
|
||||
|
||||
# This should return just the items in [1,2).
|
||||
mi_list_varobj_children_range container 1 2 2 {
|
||||
{ {container.\[1\]} {\[1\]} 0 int }
|
||||
} "list selected children after setting range"
|
||||
|
||||
# This should not be affected by the previous list-children request.
|
||||
mi_list_varobj_children container {
|
||||
{ {container.\[0\]} {\[0\]} 0 int }
|
||||
} "list children after listing selected range"
|
||||
|
||||
mi_next "next over update 4"
|
||||
|
||||
# This should only show the first child, because the update range has
|
||||
# been set.
|
||||
mi_varobj_update_dynamic container \
|
||||
"update after next with restricted range" {
|
||||
type_changed false new_num_children 1 dynamic 1 has_more 1
|
||||
} {
|
||||
{ name {container.\[0\]} in_scope true type_changed false has_more 0 }
|
||||
} {
|
||||
}
|
||||
|
||||
mi_gdb_test "-var-set-update-range container 3 4" \
|
||||
"\\^done" \
|
||||
"set update range with non-zero start"
|
||||
|
||||
# Elements were updated but should not be reported.
|
||||
mi_varobj_update_dynamic container \
|
||||
"update varobj with change outside selected range" {
|
||||
type_changed false new_num_children 3 dynamic 1 has_more 0
|
||||
} {
|
||||
} {
|
||||
}
|
||||
}
|
||||
|
||||
mi_next "next over update 2"
|
||||
|
||||
mi_varobj_update_dynamic container "varobj update 2" {
|
||||
type_changed false new_num_children 2 dynamic 1 has_more 0
|
||||
} {
|
||||
} {
|
||||
{ name {container.\[1\]} exp {\[1\]} numchild 0 type int }
|
||||
}
|
||||
|
||||
mi_gdb_test "-var-set-visualizer container None" \
|
||||
"\\^done" \
|
||||
"clear visualizer"
|
||||
|
||||
mi_gdb_test "-var-update container" \
|
||||
"\\^done,changelist=\\\[\\\]" \
|
||||
"varobj update after clearing"
|
||||
|
||||
mi_gdb_test "-var-set-visualizer container gdb.default_visualizer" \
|
||||
"\\^done" \
|
||||
"choose default visualizer"
|
||||
|
||||
mi_varobj_update_dynamic container "varobj update after choosing default" {
|
||||
type_changed false new_num_children 2 dynamic 1 has_more 0
|
||||
} {
|
||||
} {
|
||||
{ name {container.\[0\]} exp {\[0\]} numchild 0 type int }
|
||||
{ name {container.\[1\]} exp {\[1\]} numchild 0 type int }
|
||||
}
|
||||
|
||||
mi_gdb_test "-var-set-visualizer container ContainerPrinter" \
|
||||
"\\^done" \
|
||||
"choose visualizer using expression"
|
||||
|
||||
mi_varobj_update_dynamic container \
|
||||
"varobj update after choosing via expression" {
|
||||
type_changed false new_num_children 2 dynamic 1 has_more 0
|
||||
} {
|
||||
} {
|
||||
{ name {container.\[0\]} exp {\[0\]} numchild 0 type int }
|
||||
{ name {container.\[1\]} exp {\[1\]} numchild 0 type int }
|
||||
}
|
||||
|
||||
mi_list_varobj_children_range container 1 2 2 {
|
||||
{ {container.\[1\]} {\[1\]} 0 int }
|
||||
} "list varobj children after selecting child range"
|
||||
|
||||
mi_list_varobj_children_range container -1 -1 2 {
|
||||
{ {container.\[0\]} {\[0\]} 0 int }
|
||||
{ {container.\[1\]} {\[1\]} 0 int }
|
||||
} "list varobj children after resetting child range"
|
||||
|
||||
mi_next "next over update 3"
|
||||
|
||||
mi_gdb_test "-var-set-update-range container 0 1" \
|
||||
"\\^done" \
|
||||
"set update range"
|
||||
|
||||
# This should truncate the list.
|
||||
mi_list_varobj_children container {
|
||||
{ {container.\[0\]} {\[0\]} 0 int }
|
||||
} "list children after setting update range"
|
||||
|
||||
# This should return just the items in [1,2).
|
||||
mi_list_varobj_children_range container 1 2 2 {
|
||||
{ {container.\[1\]} {\[1\]} 0 int }
|
||||
} "list selected children after setting range"
|
||||
|
||||
# This should not be affected by the previous list-children request.
|
||||
mi_list_varobj_children container {
|
||||
{ {container.\[0\]} {\[0\]} 0 int }
|
||||
} "list children after listing selected range"
|
||||
|
||||
mi_next "next over update 4"
|
||||
|
||||
# This should only show the first child, because the update range has
|
||||
# been set.
|
||||
mi_varobj_update_dynamic container \
|
||||
"update after next with restricted range" {
|
||||
type_changed false new_num_children 1 dynamic 1 has_more 1
|
||||
} {
|
||||
{ name {container.\[0\]} in_scope true type_changed false has_more 0 }
|
||||
} {
|
||||
}
|
||||
|
||||
mi_gdb_test "-var-set-update-range container 3 4" \
|
||||
"\\^done" \
|
||||
"set update range with non-zero start"
|
||||
|
||||
# Elements were updated but should not be reported.
|
||||
mi_varobj_update_dynamic container \
|
||||
"update varobj with change outside selected range" {
|
||||
type_changed false new_num_children 3 dynamic 1 has_more 0
|
||||
} {
|
||||
} {
|
||||
}
|
||||
|
||||
mi_next "next over update 5"
|
||||
|
||||
# Regression test: examine an object that has no children, then update
|
||||
@ -255,25 +261,27 @@ mi_continue_to_line \
|
||||
[gdb_get_line_number {break to inspect struct and union} ${srcfile}] \
|
||||
"step to outer breakpoint"
|
||||
|
||||
mi_create_dynamic_varobj nscont nstype 1 \
|
||||
"create nstype varobj"
|
||||
with_test_prefix "varobj nscont" {
|
||||
mi_create_dynamic_varobj nscont nstype 1 \
|
||||
"create nstype varobj"
|
||||
|
||||
mi_list_varobj_children nscont {
|
||||
{ {nscont.\[0\]} {\[0\]} 0 int }
|
||||
{ {nscont.\[1\]} {\[1\]} 0 int }
|
||||
} "list children after setting update range"
|
||||
mi_list_varobj_children nscont {
|
||||
{ {nscont.\[0\]} {\[0\]} 0 int }
|
||||
{ {nscont.\[1\]} {\[1\]} 0 int }
|
||||
} "list children after setting update range"
|
||||
|
||||
mi_gdb_test "-var-set-visualizer nscont None" \
|
||||
"\\^done" \
|
||||
"clear visualizer"
|
||||
mi_gdb_test "-var-set-visualizer nscont None" \
|
||||
"\\^done" \
|
||||
"clear visualizer"
|
||||
|
||||
mi_gdb_test "-var-update nscont" \
|
||||
"\\^done,changelist=\\\[\\\]" \
|
||||
"varobj update after clearing"
|
||||
mi_gdb_test "-var-update nscont" \
|
||||
"\\^done,changelist=\\\[\\\]" \
|
||||
"varobj update after clearing"
|
||||
|
||||
mi_gdb_test "-var-set-visualizer nscont gdb.default_visualizer" \
|
||||
"\\^done" \
|
||||
"choose default visualizer"
|
||||
mi_gdb_test "-var-set-visualizer nscont gdb.default_visualizer" \
|
||||
"\\^done" \
|
||||
"choose default visualizer"
|
||||
}
|
||||
|
||||
mi_gdb_test "python exception_flag = True" ""
|
||||
|
||||
@ -347,22 +355,24 @@ if {[lsearch -exact [mi_get_features] python] < 0} {
|
||||
return -1
|
||||
}
|
||||
|
||||
mi_runto_main
|
||||
mi_continue_to_line \
|
||||
[gdb_get_line_number {break to inspect struct and union} ${srcfile}] \
|
||||
"step to breakpoint"
|
||||
with_test_prefix "varobj fake" {
|
||||
mi_runto_main
|
||||
mi_continue_to_line \
|
||||
[gdb_get_line_number {break to inspect struct and union} ${srcfile}] \
|
||||
"step to breakpoint"
|
||||
|
||||
# Test python/12531. Install visualizer on a cplus_fake_child.
|
||||
mi_create_varobj fake fake \
|
||||
"create fake varobj"
|
||||
# Test python/12531. Install visualizer on a cplus_fake_child.
|
||||
mi_create_varobj fake fake \
|
||||
"create fake varobj"
|
||||
|
||||
mi_list_varobj_children fake {
|
||||
{ fake.private private 1 }
|
||||
} "list children of fake"
|
||||
mi_list_varobj_children fake {
|
||||
{ fake.private private 1 }
|
||||
} "list children of fake"
|
||||
|
||||
mi_list_varobj_children fake.private {
|
||||
{ fake.private.sname sname 0 int }
|
||||
} "list children fake.private"
|
||||
mi_list_varobj_children fake.private {
|
||||
{ fake.private.sname sname 0 int }
|
||||
} "list children fake.private"
|
||||
|
||||
mi_gdb_test "-var-set-visualizer fake.private gdb.default_visualizer" \
|
||||
"\\^done" "Install visualizer on a cplus_fake_child"
|
||||
mi_gdb_test "-var-set-visualizer fake.private gdb.default_visualizer" \
|
||||
"\\^done" "Install visualizer on a cplus_fake_child"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user