* [RFA] Fix mi-var-child-f.exp failures
@ 2013-07-25 23:58 Keith Seitz
2013-07-26 14:23 ` Tom Tromey
0 siblings, 1 reply; 5+ messages in thread
From: Keith Seitz @ 2013-07-25 23:58 UTC (permalink / raw)
To: gp >> "gdb-patches@sourceware.org ml"
Hi,
This test file contains three "new" failures which are actually not
failures. They've been failing ever since dynamic varobjs went in:
commit 8e8a4e3d9ea92ce53f8d5373b1b8865c9c92636b
Author: Tom Tromey <tromey@redhat.com>
Date: Tue Sep 15 18:51:24 2009 +0000
As a result of this commit, MI will now output a "has_more" attribute to
-var-create, -var-update, and -var-list-children. The commit caught most
of the places in the test suite where this needed to be added, but not
many of us appear to have a fortran compiler installed, so
mi-var-child-f.exp was overlooked.
I've chosen to fix as much of these tests by using standard test
procedures (mi_create_varobj and mi_list_varobj_children) when possible.
Ok?
Keith
testsuite/ChangeLog
2013-07-25 Keith Seitz <keiths@redhat.com>
* gdb.mi/mi-var-child-f.exp: Use mi_create_varobj.
Use mi_list_varobj_children for the immediate children of `array'.
Add "has_more" attribute for grandchildren test.
diff --git a/gdb/testsuite/gdb.mi/mi-var-child-f.exp
b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
index 762a90d..c725871 100644
--- a/gdb/testsuite/gdb.mi/mi-var-child-f.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
@@ -37,14 +37,14 @@ mi_gdb_load ${binfile}
mi_runto MAIN__
-mi_gdb_test "-var-create array * array" \
- "\\^done,name=\"array\",numchild=\"3\",value=\".*\",type=\"integer
\\(2,-1:1\\)\"" \
- "create local variable array"
+mi_create_varobj "array" "array" "create local variable array"
-mi_gdb_test "-var-list-children --all-values array" \
-
"\\^done,numchild=\"3\",children=\\\[child=\{name=\"array.-1\",exp=\"-1\",numchild=\"2\",value=\"\\\[2\\\]\",type=\"integer
\\(2\\)\"\},child=\{name=\"array.0\",exp=\"0\",numchild=\"2\",value=\"\\\[2\\\]\",type=\"integer
\\(2\\)\"\},child=\{name=\"array.1\",exp=\"1\",numchild=\"2\",value=\"\\\[2\\\]\",type=\"integer
\\(2\\)\"\}\\\]" \
- "get children of array"
+mi_list_varobj_children "array" {
+ {"array.-1" "-1" 2 "integer \\(2\\)"}
+ {"array.0" "0" 2 "integer \\(2\\)"}
+ {"array.1" "1" 2 "integer \\(2\\)"}
+} "get children of array"
mi_gdb_test "-var-list-children --all-values array.-1" \
-
"\\^done,numchild=\"2\",children=\\\[child=\{name=\"array.-1.1\",exp=\"1\",numchild=\"0\",value=\"11\",type=\"integer\"\},child=\{name=\"array.-1.2\",exp=\"2\",numchild=\"0\",value=\"21\",type=\"integer\"\}\\\]"
\
+
"\\^done,numchild=\"2\",children=\\\[child=\{name=\"array.-1.1\",exp=\"1\",numchild=\"0\",value=\"11\",type=\"integer\"\},child=\{name=\"array.-1.2\",exp=\"2\",numchild=\"0\",value=\"21\",type=\"integer\"\}\\\],has_more=\"0\""
\
"get grandchildren of array (children of first element of second
index)"
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFA] Fix mi-var-child-f.exp failures
2013-07-25 23:58 [RFA] Fix mi-var-child-f.exp failures Keith Seitz
@ 2013-07-26 14:23 ` Tom Tromey
2013-07-26 15:08 ` Keith Seitz
0 siblings, 1 reply; 5+ messages in thread
From: Tom Tromey @ 2013-07-26 14:23 UTC (permalink / raw)
To: Keith Seitz; +Cc: gp >> "gdb-patches@sourceware.org ml"
>>>>> "Keith" == Keith Seitz <keiths@redhat.com> writes:
Keith> 2013-07-25 Keith Seitz <keiths@redhat.com>
Keith> * gdb.mi/mi-var-child-f.exp: Use mi_create_varobj.
Keith> Use mi_list_varobj_children for the immediate children of `array'.
Keith> Add "has_more" attribute for grandchildren test.
This is ok. Thanks.
On irc you said this happens if you don't have f77 installed.
Is there a way to make the test also work with gfortran?
I think f77 is mostly dead.
Tom
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFA] Fix mi-var-child-f.exp failures
2013-07-26 14:23 ` Tom Tromey
@ 2013-07-26 15:08 ` Keith Seitz
2013-07-26 16:30 ` Tom Tromey
0 siblings, 1 reply; 5+ messages in thread
From: Keith Seitz @ 2013-07-26 15:08 UTC (permalink / raw)
To: Tom Tromey; +Cc: gp >> "gdb-patches@sourceware.org ml"
On 07/26/2013 07:23 AM, Tom Tromey wrote:
>>>>>> "Keith" == Keith Seitz <keiths@redhat.com> writes:
>
> Keith> 2013-07-25 Keith Seitz <keiths@redhat.com>
> Keith> * gdb.mi/mi-var-child-f.exp: Use mi_create_varobj.
> Keith> Use mi_list_varobj_children for the immediate children of `array'.
> Keith> Add "has_more" attribute for grandchildren test.
>
> This is ok. Thanks.
>
> On irc you said this happens if you don't have f77 installed.
> Is there a way to make the test also work with gfortran?
> I think f77 is mostly dead.
Yes, pass F77_FOR_TARGET=gfortran in RUNTESTFLAGS. Alas, that exposes
another problem with the test. The type of "array" is reported as
"integer(kind=4)" with gfortran (simply "integer" with g77). There's a
blurb about/solution to this in gdb.fortran/multi-dim.exp which I've stolen.
I've also changed the compile settings to use F90 instead of F77. This
will make this test use gfortran instead of g77. The purpose of this
test is to test varobj not f77.
Ok?
Keith
testsuite/ChangeLog
2013-07-26 Keith Seitz <keiths@redhat.com>
* gdb.mi/mi-var-child-f.exp: Pass f90 to gdb_compile instead
of f77.
Allow for compiler variations of integer types.
Use mi_create_varobj.
Use mi_list_varobj_children for the immediate children of `array'.
Add "has_more" attribute for grandchildren test.
diff --git a/gdb/testsuite/gdb.mi/mi-var-child-f.exp
b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
index 762a90d..79d49bd 100644
--- a/gdb/testsuite/gdb.mi/mi-var-child-f.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
@@ -28,7 +28,7 @@ if [mi_gdb_start] {
standard_testfile array.f
if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
- executable {debug f77}] != ""} {
+ executable {debug f90}] != ""} {
return -1
}
@@ -37,14 +37,20 @@ mi_gdb_load ${binfile}
mi_runto MAIN__
-mi_gdb_test "-var-create array * array" \
- "\\^done,name=\"array\",numchild=\"3\",value=\".*\",type=\"integer
\\(2,-1:1\\)\"" \
- "create local variable array"
+mi_create_varobj "array" "array" "create local variable array"
-mi_gdb_test "-var-list-children --all-values array" \
-
"\\^done,numchild=\"3\",children=\\\[child=\{name=\"array.-1\",exp=\"-1\",numchild=\"2\",value=\"\\\[2\\\]\",type=\"integer
\\(2\\)\"\},child=\{name=\"array.0\",exp=\"0\",numchild=\"2\",value=\"\\\[2\\\]\",type=\"integer
\\(2\\)\"\},child=\{name=\"array.1\",exp=\"1\",numchild=\"2\",value=\"\\\[2\\\]\",type=\"integer
\\(2\\)\"\}\\\]" \
- "get children of array"
+
+# Depending on the compiler version being used, the name of the 4-byte
integer
+# and real types can be printed differently. For instance,
gfortran-4.1 uses
+# "int4" whereas gfortran-4.3 uses "integer(kind=4)".
+set int4 "(int4|integer\\(kind=4\\))"
+
+set children [list [list "array.-1" "-1" 2 "$int4 \\(2\\)"] \
+ [list "array.0" "0" 2 "$int4 \\(2\\)"] \
+ [list "array.1" "1" 2 "$int4 \\(2\\)"]]
+
+mi_list_varobj_children "array" $children "get children of array"
mi_gdb_test "-var-list-children --all-values array.-1" \
-
"\\^done,numchild=\"2\",children=\\\[child=\{name=\"array.-1.1\",exp=\"1\",numchild=\"0\",value=\"11\",type=\"integer\"\},child=\{name=\"array.-1.2\",exp=\"2\",numchild=\"0\",value=\"21\",type=\"integer\"\}\\\]"
\
+
"\\^done,numchild=\"2\",children=\\\[child=\{name=\"array.-1.1\",exp=\"1\",numchild=\"0\",value=\"11\",type=\"$int4\"\},child=\{name=\"array.-1.2\",exp=\"2\",numchild=\"0\",value=\"21\",type=\"$int4\"\}\\\],has_more=\"0\""
\
"get grandchildren of array (children of first element of second
index)"
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFA] Fix mi-var-child-f.exp failures
2013-07-26 15:08 ` Keith Seitz
@ 2013-07-26 16:30 ` Tom Tromey
2013-07-26 18:16 ` Keith Seitz
0 siblings, 1 reply; 5+ messages in thread
From: Tom Tromey @ 2013-07-26 16:30 UTC (permalink / raw)
To: Keith Seitz; +Cc: gp >> "gdb-patches@sourceware.org ml"
Keith> 2013-07-26 Keith Seitz <keiths@redhat.com>
Keith> * gdb.mi/mi-var-child-f.exp: Pass f90 to gdb_compile instead
Keith> of f77.
Keith> Allow for compiler variations of integer types.
Keith> Use mi_create_varobj.
Keith> Use mi_list_varobj_children for the immediate children of `array'.
Keith> Add "has_more" attribute for grandchildren test.
This is ok.
Keith> +# Depending on the compiler version being used, the name of the
Keith> 4-byte integer
Your patch got wrapped.
Tom
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFA] Fix mi-var-child-f.exp failures
2013-07-26 16:30 ` Tom Tromey
@ 2013-07-26 18:16 ` Keith Seitz
0 siblings, 0 replies; 5+ messages in thread
From: Keith Seitz @ 2013-07-26 18:16 UTC (permalink / raw)
To: gp >> "gdb-patches@sourceware.org ml"
On 07/26/2013 09:30 AM, Tom Tromey wrote:
> Keith> 2013-07-26 Keith Seitz <keiths@redhat.com>
>
> Keith> * gdb.mi/mi-var-child-f.exp: Pass f90 to gdb_compile instead
> Keith> of f77.
> Keith> Allow for compiler variations of integer types.
> Keith> Use mi_create_varobj.
> Keith> Use mi_list_varobj_children for the immediate children of `array'.
> Keith> Add "has_more" attribute for grandchildren test.
>
> This is ok.
Committed.
> Keith> +# Depending on the compiler version being used, the name of the
> Keith> 4-byte integer
>
> Your patch got wrapped.
Yeah. Sometimes I cut-n-paste small patches like this. That's why I
usually use attachments.
Thank you for your review.
Keith
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-07-26 18:16 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-25 23:58 [RFA] Fix mi-var-child-f.exp failures Keith Seitz
2013-07-26 14:23 ` Tom Tromey
2013-07-26 15:08 ` Keith Seitz
2013-07-26 16:30 ` Tom Tromey
2013-07-26 18:16 ` Keith Seitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox