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" ""
"\\^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"
-
-mi_list_varobj_children container {
-} "examine container children=0"
-
-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_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 }
+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_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_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_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
[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" ""
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"
+}