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]

[PATCH RFA] gdb.base/completion.exp: Set INPUTRC env variable


I have a ~/.inputrc file whose settings ("set editing-mode vi") are
causing failures when running the gdb.base/completion.exp tests.  These
are the failures that I'm seeing:

    FAIL: gdb.base/completion.exp: (timeout) complete 'p' 1
    FAIL: gdb.base/completion.exp: (timeout) complete 'p ' 2
    FAIL: gdb.base/completion.exp: (timeout) complete 'info t foo'
    FAIL: gdb.base/completion.exp: (timeout) complete 'info t'
    FAIL: gdb.base/completion.exp: (timeout) complete 'info t '
    FAIL: gdb.base/completion.exp: (timeout) complete 'info asdfgh'
    FAIL: gdb.base/completion.exp: (timeout) complete 'info asdfgh '
    FAIL: gdb.base/completion.exp: (timeout) complete 'info'
    FAIL: gdb.base/completion.exp: (timeout) complete 'info '
    FAIL: gdb.base/completion.exp: (timeout) complete (2) 'info '
    FAIL: gdb.base/completion.exp: (timeout) complete 'p "a'
    FAIL: gdb.base/completion.exp: (timeout) complete 'p 'a'
    FAIL: gdb.base/completion.exp: (timeout) complete (2) 'p 'a'
    FAIL: gdb.base/completion.exp: (timeout) complete 'p b-a'
    FAIL: gdb.base/completion.exp: (timeout) complete (2) 'p b-a'
    FAIL: gdb.base/completion.exp: (timeout) complete (2) 'p b-'
    FAIL: gdb.base/completion.exp: (timeout) complete 'file Make'
    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'

In order to solve this problem, it seems to me that we want to use the
default editing mode, keybindings, and readline settings.  This means
that simply making sure that GDB is in emacs mode won't be sufficient
since an inputrc file could have changed another critical setting
which could also cause testsuite failures.  E.g, I think that changing
any of bell-style, disable-completion, or show-all-if-ambiguous from
the default setting would change GDB's behavior enough to cause
failures in completion.exp.

Since the presence of an INPUTRC environment variable overrides the a
possible ~/.inputrc, it seems sufficient to set this variable to a
value which will guarantee that the default settings are used.  I
chose to use /dev/null; if it exists, it contains nothing thus causing
all of the defaults to be used.  If it doesn't exist or can't be
opened for some other reason, failure to open the file will also cause
the defaults to be used.

Okay to commit?

	* gdb.base/completion.exp (INPUTRC): Set this environment variable
	to a known value in order to get consistent results regardless
	of the setting of INPUTRC or the presence or contents of .inputrc.

Index: testsuite/gdb.base/completion.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/completion.exp,v
retrieving revision 1.3
diff -u -p -r1.3 completion.exp
--- completion.exp	2001/05/11 19:53:38	1.3
+++ completion.exp	2001/05/18 23:04:10
@@ -72,6 +72,16 @@ if [get_compiler_info ${binfile}] {
 }
 
 gdb_exit
+
+# 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
+set env(INPUTRC) "/dev/null"
+
 gdb_start
 gdb_reinitialize_dir $srcdir/$subdir
 gdb_load ${binfile}


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