This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA/testsuite] New test for --args
- From: Fernando Nasser <fnasser at redhat dot com>
- To: Elena Zannoni <ezannoni at redhat dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Tue, 14 Jan 2003 13:59:22 -0500
- Subject: Re: [RFA/testsuite] New test for --args
- Organization: Red Hat , Inc. - Toronto
- References: <15898.51.758850.519076@localhost.redhat.com>
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