This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA/testsuite] New test for --args


Fine with me, but please change the messgaes for the second and third test so they don't use parenthesis. We use the parenthesis to qualify failure messages, like in (timeout).

Suggestion:

correct args printed (one empty) --> correct args printed, one empty

correct args printed (two empty) --> correct args printed, two empty

Thanks for the new test.

Regards,
Fernando


Elena Zannoni wrote:> This is from the thread at:
http://sources.redhat.com/ml/gdb-patches/2002-12/msg00048.html

From: Elena Zannoni <ezannoni@redhat.com>
Sender: gdb-patches-owner@sources.redhat.com
To: Daniel Jacobowitz <drow@mvista.com>
Cc: Andrew Cagney <ac131313@redhat.com>, Andreas Schwab <schwab@suse.de>,
gdb-patches@sources.redhat.com
Subject: Re: gdb --args mishandles empty arguments
Date: Fri, 3 Jan 2003 17:50:46 -0500

Daniel Jacobowitz writes:
> On Mon, Dec 02, 2002 at 09:45:57PM -0500, Andrew Cagney wrote:
> > >On Mon, Dec 02, 2002 at 03:42:18PM +0100, Andreas Schwab wrote:
> > >
> > >>With the intruduction of --args it is possible to construct empty
> > >>arguments that need to be transformed to ''.
> > >>
> > >>Andreas.
> > >>
> > >>2002-12-02 Andreas Schwab <schwab@suse.de>
> > >>
> > >> * infcmd.c (construct_inferior_arguments): Handle empty arguments.
> > >
> > >
> > >This patch is OK.
> > > > > > btw, is there a test case? actually, is this tested at all?
> > No, I don't think --args is... a test case if someone feels like
> putting one together:
> > gdb --args /bin/echo '' a
> (gdb) run
> > should produce '^ a$'


Since I have a bug open against the current RH rawhide for this, I
might as well create a test. How's this? (I'll send a formal RFA)


* gdb.base/args.c: New file.
* gdb.base/args.exp: New file.


------args.c--------
#include <stdio.h>

int
main (int argc, char **argv)
{
int i = 0;
printf ("%d\n", argc);
while (i < argc)
printf ("%s\n", argv[i++]);

return 0;
}

------args.exp--------
# Copyright 2003 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 is a test for the gdb invocation option --args.

if $tracelevel then {
strace $tracelevel
}


global GDBFLAGS

set testfile "args"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}

if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}

#
# Test that the --args are processed correctly.
#
set GDBFLAGS "--args $binfile 1 3"
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_test "run" \
"Starting program.*args 1 3.*3\r\n.*args\r\n1\r\n3.*Program exited normally." \
"correct args printed"

#
# Test that the --args are processed correctly even if one of them is empty.
#
set GDBFLAGS "--args $binfile 1 '' 3"
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_test "run" \
"Starting program.*args 1 \\\\'\\\\' 3.*4\r\n.*args\r\n1\r\n''\r\n3.*Program exited normally." \
"correct args printed (one empty)"

#
# try with 2 empty args
#
set GDBFLAGS "--args $binfile 1 '' '' 3"
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_test "run" \
"Starting program.*args 1 \\\\'\\\\' \\\\'\\\\' 3.*5\r\n.*args\r\n1\r\n''\r\n''\r\n3.*Program exited normally." \
"correct args printed (two empty)"



--
Fernando Nasser
Red Hat - Toronto                       E-Mail:  fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario   M4P 2C9


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]