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]

[RFA] Fix testsuite completion.exp test for builddir==srcdir


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.

-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\\) $"\


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