From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kevin Buettner To: gdb-patches@sources.redhat.com Subject: [PATCH RFA] gdb.base/completion.exp: Set INPUTRC env variable Date: Fri, 18 May 2001 16:59:00 -0000 Message-id: <1010518235834.ZM16437@ocotillo.lan> X-SW-Source: 2001-05/msg00358.html 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}