From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25355 invoked by alias); 16 Nov 2005 07:21:51 -0000 Received: (qmail 25342 invoked by uid 22791); 16 Nov 2005 07:21:48 -0000 Received: from ausmtp01.au.ibm.com (HELO ausmtp01.au.ibm.com) (202.81.18.186) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Wed, 16 Nov 2005 07:21:48 +0000 Received: from sd0208e0.au.ibm.com (d23rh904.au.ibm.com [202.81.18.202]) by ausmtp01.au.ibm.com (8.12.10/8.12.10) with ESMTP id jAG7Oea6231374 for ; Wed, 16 Nov 2005 18:24:40 +1100 Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.250.237]) by sd0208e0.au.ibm.com (8.12.10/NCO/VERS6.7) with ESMTP id jAG7OQln144050 for ; Wed, 16 Nov 2005 18:24:26 +1100 Received: from d23av04.au.ibm.com (loopback [127.0.0.1]) by d23av04.au.ibm.com (8.12.11/8.13.3) with ESMTP id jAG7LOaK002831 for ; Wed, 16 Nov 2005 18:21:24 +1100 Received: from [9.181.133.252] ([9.181.133.252]) by d23av04.au.ibm.com (8.12.11/8.12.11) with ESMTP id jAG7LM27002804; Wed, 16 Nov 2005 18:21:23 +1100 Date: Wed, 16 Nov 2005 13:05:00 -0000 From: Wu Zhou To: gdb-patches@sources.redhat.com cc: Thomas.Koenig@online.de Subject: [RFC]: Patch to support Fortran derived type - testcase Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2005-11/txt/msg00223.txt.bz2 Hi, This is the testcase for the patch. To run this, we need to set F77_FOR_TARGET=gfortran. Maybe we need dejagnu to support gfortran itself. I had tested it on FC4 with gfortran being 4.0.1. No failure is detected. All 11 tests passed. Index: gdb.fortran/derived-type.f90 =================================================================== RCS file: gdb.fortran/derived-type.f90 diff -N gdb.fortran/derived-type.f90 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ gdb.fortran/derived-type.f90 16 Nov 2005 06:50:22 -0000 @@ -0,0 +1,22 @@ +program main + + type bar + integer :: c + real :: d + end type + type foo + real :: a + type(bar) :: x + character*7 :: b + end type foo + type(foo) :: q + type(bar) :: p + + p = bar(1, 2.375) + q%a = 3.125 + q%b = "abcdefg" + q%x%c = 1 + q%x%d = 2.375 + print *,p,q + +end program main Index: gdb.fortran/derived-type.exp =================================================================== RCS file: gdb.fortran/derived-type.exp diff -N gdb.fortran/derived-type.exp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ gdb.fortran/derived-type.exp 16 Nov 2005 06:50:22 -0000 @@ -0,0 +1,65 @@ +# Copyright 2005 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# This file was written by Wu Zhou. (woodzltc@cn.ibm.com) + +# This file is part of the gdb testsuite. It contains tests for type-printing +# and value-printing Fortran derived types. + +if $tracelevel then { + strace $tracelevel +} + +set testfile "derived-type" +set srcfile ${testfile}.f90 +set binfile ${objdir}/${subdir}/${testfile} + +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug f77 quiet}] != "" } { + untested "Couldn't compile ${srcfile}" + return -1 +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +if ![runto MAIN__] then { + perror "couldn't run to breakpoint MAIN__" + continue +} + +gdb_test "ptype p" \ + "type = Type bar.*int4.*\:\: c.*real.*\:\: d.*End Type bar" \ + "ptype p" +gdb_test "ptype q" \ + "type = Type foo.*real.*\:\: a.*Type bar.*int4.*\:\: c.*real.*\:\: d.*End Type bar \:\: x.*character.*\\(7\\) \:\: b.*End Type foo" \ + "type-printing for derived type" + +gdb_breakpoint [gdb_get_line_number "print"] +gdb_continue_to_breakpoint "print" + +gdb_test "print p" "\\$\[0-9\]+ = \\{ 1, 2.375\\}" +gdb_test "print p%c" "\\$\[0-9\]+ = 1" +gdb_test "print p%d" "\\$\[0-9\]+ = 2.375" +gdb_test "print q%a" "\\$\[0-9\]+ = 3.125" +gdb_test "print q%b" "\\$\[0-9\]+ = \\(.*a.*b.*c.*d.*e.*f.*g.*\\)" +gdb_test "print q%x%c" "\\$\[0-9\]+ = 1" +gdb_test "print q%x%d" "\\$\[0-9\]+ = 2.375" +gdb_test "print q" \ + "\\$\[0-9\]+ = \\{ 3.125, \\{ 1, 2.375\\}, \\(.*a.*b.*c.*d.*e.*f.*g.*\\)\\}" \ + "print q" +