From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3932 invoked by alias); 13 Aug 2002 20:13:14 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 3925 invoked from network); 13 Aug 2002 20:13:14 -0000 Received: from unknown (HELO localhost.redhat.com) (66.30.197.194) by sources.redhat.com with SMTP; 13 Aug 2002 20:13:14 -0000 Received: by localhost.redhat.com (Postfix, from userid 469) id 3B4D910D4D; Tue, 13 Aug 2002 16:11:26 -0400 (EDT) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15705.26605.876458.521420@localhost.redhat.com> Date: Tue, 13 Aug 2002 13:13:00 -0000 To: Fernando Nasser Cc: tromey@redhat.com, gdb-patches@sources.redhat.com, Elena Zannoni Subject: Re: [RFA/TESTSUITE]: readline tests In-Reply-To: <3D59661F.C4E69AA7@redhat.com> References: <87y9c1rodk.fsf@fleche.redhat.com> <3D59661F.C4E69AA7@redhat.com> X-SW-Source: 2002-08/txt/msg00307.txt.bz2 Fernando Nasser writes: > Sorry for the delay Tom. > > New tests are always welcome. > > Elena, is it OK with you? Can we check it in? > > Regards to all. > > Fernando > yes yes. Elena > > > Tom Tromey wrote: > > > > This adds a new file of readline tests. Currently it only checks > > operate-and-get-next; Elena wanted some tests for a recent patch in > > that area. > > > > Ok? > > > > Tom > > > > Index: testsuite/ChangeLog > > from Tom Tromey > > > > * gdb.base/readline.exp: New file. > > > > Index: testsuite/gdb.base/readline.exp > > =================================================================== > > RCS file: testsuite/gdb.base/readline.exp > > diff -N testsuite/gdb.base/readline.exp > > --- /dev/null 1 Jan 1970 00:00:00 -0000 > > +++ testsuite/gdb.base/readline.exp 24 Jul 2002 17:59:10 -0000 > > @@ -0,0 +1,190 @@ > > +# Copyright 2002 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. > > + > > +# Please email any bugs, comments, and/or additions to this file to: > > +# bug-gdb@prep.ai.mit.edu > > + > > +# This file was written by Tom Tromey > > + > > +# This file is part of the gdb testsuite. > > + > > +# > > +# Tests for readline operations. > > +# > > + > > +# This function is used to test operate-and-get-next. > > +# NAME is the name of the test. > > +# ARGS is a list of alternating commands and expected results. > > +proc operate_and_get_next {name args} { > > + global gdb_prompt > > + > > + set my_gdb_prompt "($gdb_prompt| >)" > > + > > + set reverse {} > > + foreach {item result} $args { > > + verbose "sending $item" > > + sleep 1 > > + > > + # We can't use gdb_test here because we might see a " >" prompt. > > + set status 0 > > + send_gdb "$item\n" > > + gdb_expect { > > + -re "$item" { > > + # Ok > > + } > > + timeout { > > + set status 1 > > + } > > + } > > + > > + if {! $status} { > > + gdb_expect { > > + -re "$result" { > > + # Ok. > > + } > > + timeout { > > + set status 1 > > + } > > + } > > + } > > + > > + if {$status} { > > + fail "$name - send $item" > > + return 0 > > + } > > + pass "$name - send $item" > > + > > + set reverse [linsert $reverse 0 $item $result] > > + } > > + > > + # Now use C-p to go back to the start. > > + foreach {item result} $reverse { > > + # Actually send C-p followed by C-l. This lets us recognize the > > + # command when gdb prints it again. > > + send_gdb "\x10\x0c" > > + set status 0 > > + gdb_expect { > > + -re "$item" { > > + # Ok > > + } > > + timeout { > > + set status 1 > > + } > > + } > > + if {$status} { > > + fail "$name - C-p to $item" > > + return 0 > > + } > > + pass "$name - C-p to $item" > > + } > > + > > + # Now C-o through the list. Don't send the command, since it is > > + # already there. Strip off the first command from the list so we > > + # can see the next command inside the loop. > > + set count 0 > > + foreach {item result} $args { > > + set status 0 > > + > > + # If this isn't the first item, make sure we see the command at > > + # the prompt. > > + if {$count > 0} { > > + gdb_expect { > > + -re ".*$item" { > > + # Ok > > + } > > + timeout { > > + set status 1 > > + } > > + } > > + } > > + > > + if {! $status} { > > + # For the last item, send a simple \n instead of C-o. > > + if {$count == [llength $args] - 2} { > > + send_gdb "\n" > > + } else { > > + # 15 is C-o. > > + send_gdb [format %c 15] > > + } > > + set status 0 > > + gdb_expect { > > + -re "$result" { > > + # Ok > > + } > > + timeout { > > + set status 1 > > + } > > + } > > + } > > + > > + if {$status} { > > + fail "$name - C-o for $item" > > + return 0 > > + } > > + pass "$name - C-o for $item" > > + > > + set count [expr {$count + 2}] > > + } > > + > > + return 1 > > +} > > + > > + > > +if $tracelevel { > > + strace $tracelevel > > +} > > + > > +# Don't let a .inputrc file or an existing setting of INPUTRC mess up > > +# the test results. Even if /dev/null doesn't exist on the particular > > +# platform, the readline library will use the default setting just by > > +# failing to open the file. OTOH, opening /dev/null successfully will > > +# also result in the default settings being used since nothing will be > > +# read from this file. > > +global env > > +if [info exists env(INPUTRC)] { > > + set old_inputrc $env(INPUTRC) > > +} > > +set env(INPUTRC) "/dev/null" > > + > > +gdb_start > > +gdb_reinitialize_dir $srcdir/$subdir > > + > > +set oldtimeout1 $timeout > > +set timeout 30 > > + > > + > > +# A simple test of operate-and-get-next. > > +operate_and_get_next "Simple operate-and-get-next" \ > > + "p 1" ".* = 1" \ > > + "p 2" ".* = 2"\ > > + "p 3" ".* = 3" > > + > > +# Test operate-and-get-next with a secondary prompt. > > +operate_and_get_next "operate-and-get-next with secondary prompt" \ > > + "if 1 > 0" "" \ > > + "p 5" "" \ > > + "end" ".* = 5" > > + > > + > > +# Restore globals modified in this test... > > +if [info exists old_inputrc] { > > + set env(INPUTRC) $old_inputrc > > +} else { > > + unset env(INPUTRC) > > +} > > +set timeout $oldtimeout1 > > + > > +return 0 > > -- > Fernando Nasser > Red Hat Canada Ltd. E-Mail: fnasser@redhat.com > 2323 Yonge Street, Suite #300 > Toronto, Ontario M4P 2C9