Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Keith Seitz <keiths@redhat.com>
To: Tom Tromey <tromey@redhat.com>
Cc: "gp >> \"gdb-patches@sourceware.org ml\"" <gdb-patches@sourceware.org>
Subject: Re: [RFA] Fix mi-var-child-f.exp failures
Date: Fri, 26 Jul 2013 15:08:00 -0000	[thread overview]
Message-ID: <51F290FA.8000104@redhat.com> (raw)
In-Reply-To: <87txjhtn6x.fsf@fleche.redhat.com>

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)"


  reply	other threads:[~2013-07-26 15:08 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-25 23:58 Keith Seitz
2013-07-26 14:23 ` Tom Tromey
2013-07-26 15:08   ` Keith Seitz [this message]
2013-07-26 16:30     ` Tom Tromey
2013-07-26 18:16       ` Keith Seitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51F290FA.8000104@redhat.com \
    --to=keiths@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=tromey@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox