summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.mi
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.mi')
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-cp.cc31
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-cp.exp49
2 files changed, 34 insertions, 46 deletions
diff --git a/gdb/testsuite/gdb.mi/mi-var-cp.cc b/gdb/testsuite/gdb.mi/mi-var-cp.cc
index 6027051edcb..8489b551d21 100644
--- a/gdb/testsuite/gdb.mi/mi-var-cp.cc
+++ b/gdb/testsuite/gdb.mi/mi-var-cp.cc
@@ -17,10 +17,22 @@
void reference_update_tests ()
{
+ /*: BEGIN: reference_update :*/
int x = 167;
+ /*: mi_create_varobj "RX" "rx" "create varobj for rx" :*/
int& rx = x;
+ /*: mi_varobj_update RX {RX} "update RX (1)"
+ mi_check_varobj_value RX 167 "check RX: expect 167"
+ :*/
x = 567;
+ /*: mi_varobj_update RX {RX} "update RX (2)"
+ mi_check_varobj_value RX 567 "check RX: expect 567"
+ :*/
x = 567;
+ /*: mi_varobj_update RX {} "update RX (3)"
+ :*/
+
+ /*: END: reference_update :*/
}
struct S { int i; int j; };
@@ -28,7 +40,26 @@ struct S2 : S {};
int base_in_reference_test (S2& s2)
{
+ /*: BEGIN: base_in_reference :*/
return s2.i;
+ /*:
+ mi_create_varobj "S2" "s2" "create varobj for s2"
+ mi_list_varobj_children "S2" {
+ {"S2.S" "S" "1" "S"}
+ } "list children of s2"
+ mi_list_varobj_children "S2.S" {
+ {"S2.S.public" "public" "2"}
+ } "list children of s2.s"
+ mi_list_varobj_children "S2.S.public" {
+ {"S2.S.public.i" "i" "0" "int"}
+ {"S2.S.public.j" "j" "0" "int"}
+ } "list children of s2.s.public"
+
+ mi_check_varobj_value "S2.S.public.i" "67" "check S2.S.public.i"
+ mi_check_varobj_value "S2.S.public.j" "89" "check S2.S.public.j"
+
+ :*/
+ /*: END: base_in_reference :*/
}
void base_in_reference_test_main ()
diff --git a/gdb/testsuite/gdb.mi/mi-var-cp.exp b/gdb/testsuite/gdb.mi/mi-var-cp.exp
index fea145fbbfa..758230114b9 100644
--- a/gdb/testsuite/gdb.mi/mi-var-cp.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-cp.exp
@@ -39,53 +39,10 @@ if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable {debug c++}] != ""
mi_gdb_load ${binfile}
-# Test that children of classes are properly reported
-
-mi_runto reference_update_tests
-
-mi_create_varobj "RX" "rx" "create varobj for rx"
-
-set x_assignment [gdb_get_line_number "x = 567;"]
-mi_next_to "reference_update_tests" {} ".*${srcfile}" [expr $x_assignment-1] \
- "step to x assignment"
-mi_next_to "reference_update_tests" {} ".*${srcfile}" [expr $x_assignment] \
- "step to x assignment"
-
-mi_varobj_update RX {RX} "update RX (1)"
-
-mi_check_varobj_value RX 167 "check RX: expect 167"
-
-# Execute the first 'x = 567' line.
-mi_next_to "reference_update_tests" {} ".*${srcfile}" [expr $x_assignment+1] \
- "step to x assignment"
-
-mi_varobj_update RX {RX} "update RX (2)"
-mi_check_varobj_value RX 567 "check RX: expect 567"
-
-# Execute the second 'x = 567' line.
-mi_next_to "reference_update_tests" {} ".*${srcfile}" [expr $x_assignment+2] \
- "step to x assignment"
-
-mi_varobj_update RX {} "update RX (3)"
-
-mi_runto base_in_reference_test
-
-mi_create_varobj "S2" "s2" "create varobj for s2"
-
-mi_list_varobj_children "S2" {{"S2.S" "S" "1" "S"}} "list children of s2"
-
-mi_list_varobj_children "S2.S" {{"S2.S.public" "public" "2"}} \
- "list children of s2.s"
-
-mi_list_varobj_children "S2.S.public"\
-{
- {"S2.S.public.i" "i" "0" "int"}
- {"S2.S.public.j" "j" "0" "int"}
-} "list children of s2.s.public"
-
-mi_check_varobj_value "S2.S.public.i" "67" "check S2.S.public.i"
-mi_check_varobj_value "S2.S.public.j" "89" "check S2.S.public.j"
+mi_prepare_inline_tests $srcfile
+mi_run_inline_test reference_update
+mi_run_inline_test base_in_reference
mi_gdb_exit
return 0