From e3141a4d894d3e512c9c79e8686835ba71f05d70 Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Wed, 3 Mar 2021 13:43:39 +0000 Subject: [PATCH] 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. --- gdb/testsuite/ChangeLog | 5 + gdb/testsuite/gdb.python/py-mi.exp | 322 +++++++++++++++-------------- 2 files changed, 171 insertions(+), 156 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 4ea506cc9df..dea3ce55505 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2021-03-12 Andrew Burgess + + * gdb.python/py-mi.exp: Use with_test_prefix to make test names + unique. + 2021-03-09 Tom Tromey * gdb.base/cast-call.exp: New file. diff --git a/gdb/testsuite/gdb.python/py-mi.exp b/gdb/testsuite/gdb.python/py-mi.exp index 608206178f8..6f0c1c65e62 100644 --- a/gdb/testsuite/gdb.python/py-mi.exp +++ b/gdb/testsuite/gdb.python/py-mi.exp @@ -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" - -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 @@ -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" +} -- 2.30.2