Re: [PATCH] testsuite: introduce index in varobj child eval.

Keven Boell
2013-11-27T12:25:01Z

Thanks for the feedback. I've attached the updated patch, which
addresses your comments.

Keven

From 7c6728c1f92f92b54310ca1d74e113e6300e2ba4 Mon Sep 17 00:00:00 2001
From: Keven Boell <keven.boell@intel.com>
Date: Thu, 21 Nov 2013 10:54:47 +0100
Subject: [PATCH] testsuite: introduce index in varobj child eval.

In some languages, e.g. fortran, arrays start with index 1
instead 0. This patch changes the MI library to support testing
varobj children of fortran arrays.

2013-11-21 Keven Boell <keven.boell@intel.com>

testsuite/

* lib/mi-support.exp (mi_list_varobj_children_range): Add
call to mi_list_array_varobj_children_with_index.
(mi_list_array_varobj_children_with_index): New function.
Add parameter to specify array start.

Signed-off-by: Keven Boell <keven.boell@intel.com>
---
gdb/testsuite/lib/mi-support.exp | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/lib/mi-support.exp
b/gdb/testsuite/lib/mi-support.exp
index 0c3cdbe..cb7bf90 100644
--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -1487,9 +1487,18 @@ proc mi_list_varobj_children_range {varname from
to numchildren children testnam
# Verifies that variable object VARNAME has NUMBER children,
# where each one is named $VARNAME.<index-of-child> and has type TYPE.
proc mi_list_array_varobj_children { varname number type testname } {
+ mi_list_array_varobj_children_with_index $varname $number 0 $type
$testname
+}
+
+# Same as mi_list_array_varobj_children, but allowing to pass a start index
+# for an array.
+proc mi_list_array_varobj_children_with_index { varname number
start_index \
+ type testname } {
set t {}
+ set index $start_index
for {set i 0} {$i < $number} {incr i} {
- lappend t [list $varname.$i $i 0 $type]
+ lappend t [list $varname.$index $index 0 $type]
+ incr index
}
mi_list_varobj_children $varname $t $testname
}
--
1.7.9.5

On 26.11.2013 16:16, Tom Tromey wrote:
>>>>>> "Keven" == Keven Boell <keven.boell@intel.com> writes:
>
> Keven> # Verifies that variable object VARNAME has NUMBER children,
> Keven> # where each one is named $VARNAME.<index-of-child> and has type TYPE.
> Keven> proc mi_list_array_varobj_children { varname number type testname } {
> Keven> + mi_list_array_varobj_children_with_index $varname $number 0 $type $testname
> Keven> +}
> Keven> +proc mi_list_array_varobj_children_with_index { varname number start_index type testname } {
>
> The new proc should be separated from the previous one by a blank line.
> It should have an introductory comment as well.
>
> Also the first line of the new proc is too long. I think it should be
> split in the arglist somewhere.
>
> Tom
>