This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] Fix testsuite completion.exp test for builddir==srcdir
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: fnf at redhat dot com
- Cc: gdb-patches at sources dot redhat dot com
- Date: Wed, 1 May 2002 13:47:19 -0400
- Subject: Re: [RFA] Fix testsuite completion.exp test for builddir==srcdir
- References: <200205011448.g41EmWm27920@fred.ninemoons.com>
Fred Fish writes:
> If you configure and build in the source tree, the completion.exp
> test produces:
>
> FAIL: gdb.base/completion.exp: (timeout) complete 'file ./Make'
> ERROR: Got interactive prompt.
> UNRESOLVED: gdb.base/completion.exp: cd to ${srcdir}
> FAIL: gdb.base/completion.exp: (timeout) complete 'file ./gdb.base/compl'
> FAIL: gdb.base/completion.exp: (timeout) complete 'info func mar'
> FAIL: gdb.base/completion.exp: (timeout) complete 'set follow-fork-mode'
>
> due to having more than one file that completes "./Make". This patch
> fixes that.
>
> On a related note, it is probably a bad idea to have these tests depend
> upon details of the source tree like this. A better long term solution
> would be to create a temporary directory, populate it with some known
> names, and do completions there. I should probably add this comment to
> the completion.exp header if this patch is approved.
Hmmm, I thought that we shouldn't build in the source tree.
But your patch looks ok.
Elena
>
> -Fred
>
> 2002-05-01 Fred Fish <fnf@redhat.com>
>
> * gdb.base/completion.exp: Handle completions of "./Make" for
> more than one completion possibility, as is the case when we
> build and test in the source tree.
>
> Index: gdb.base/completion.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.base/completion.exp,v
> retrieving revision 1.11
> diff -c -p -r1.11 completion.exp
> *** gdb.base/completion.exp 13 Jan 2002 22:13:06 -0000 1.11
> --- gdb.base/completion.exp 1 May 2002 14:34:15 -0000
> *************** gdb_expect {
> *** 631,642 ****
> #
> # So, we avoid long lines. We `cd' to ${objdir} first, and then do
> # the completion relative to the current directory.
>
> gdb_test "cd ${objdir}" "Working directory ${objdir}.*" "cd to \${objdir}"
> send_gdb "file ./Make\t"
> sleep 1
> gdb_expect {
> ! -re "file ./Makefile.*$"\
> { send_gdb "\n"
> gdb_expect {
> -re "\r\nA program is being debugged already\\. Kill it\\? \\(y or n\\) $"\
> --- 631,645 ----
> #
> # So, we avoid long lines. We `cd' to ${objdir} first, and then do
> # the completion relative to the current directory.
> + #
> + # Note that if we are building in the source tree, then there will be
> + # more than one completion for ./Make, so we need to handle that also.
>
> gdb_test "cd ${objdir}" "Working directory ${objdir}.*" "cd to \${objdir}"
> send_gdb "file ./Make\t"
> sleep 1
> gdb_expect {
> ! -re "^file ./Make(\\\x07|)file.*$"\
> { send_gdb "\n"
> gdb_expect {
> -re "\r\nA program is being debugged already\\. Kill it\\? \\(y or n\\) $"\