old-cross-binutils/gdb/testsuite/gdb.base/readline-ask.exp
Yao Qi 0d4d0e772a Skip tests on completion and readline when readline lib isn't used
The completion feature and other features on readline depend on the
readline library.  However, readline library is not always used, for
example, running testsuite like

  make check RUNTESTFLAGS="--host_board=local-remote-host"

the input stream is not a tty, and GDB doesn't use readline library
as a result.

This patch is to skip tests on completion and readline if
'show editing' is off, which means readline isn't used.  Note that
some tests in gdb.base/completion.exp test command complete, which
isn't related to readline, so these tests aren't affected by readline
library.  This patch also moves these tests up, run them
unconditionally, and run the rest if readline library is used.

gdb/testsuite:

2014-03-26  Yao Qi  <yao@codesourcery.com>

	* lib/gdb.exp (readline_is_used): New proc.
	* gdb.base/completion.exp: Move tests on command complete up.
	Skip the rest of tests if readline is not used.
	* gdb.ada/complete.exp: Skp the test if readline is not
	used.
	* gdb.base/filesym.exp: Likewise.
	* gdb.base/macscp.exp: Likewise.
	* gdb.base/readline-ask.exp: Likewise.
	* gdb.base/readline.exp: Likewise.
	* gdb.python/py-cmd.exp: Likewise.
	* gdb.trace/tfile.exp: Likewise.
2014-03-26 21:11:08 +08:00

120 lines
3 KiB
Text

# Copyright (C) 2011-2014 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 3 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, see <http://www.gnu.org/licenses/>.
standard_testfile .c
set inputrc ${srcdir}/${subdir}/${testfile}.inputrc
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {debug}] != "" } {
untested ${testfile}.exp
return -1
}
# INPUTRC gets reset for the next testfile.
setenv INPUTRC $inputrc
clean_restart ${binfile}
if { ![readline_is_used] } {
unsupported "completion doesn't work when readline isn't used."
return -1
}
gdb_test_no_output "set width 50"
gdb_test_no_output "set height 3"
set cmd "p symbol_0"
send_gdb "$cmd\t"
set test "bell for more message"
gdb_test_multiple "" $test {
-re "$cmd\007$" {
pass $test
}
}
send_gdb "\t"
set test "more message for 01 and 02"
gdb_test_multiple "" $test {
-re "^\r\nsymbol_01_length_40_____________________\r\nsymbol_02_length_40_____________________\r\n--More--$" {
pass $test
}
-re "$gdb_prompt " {
fail $test
}
}
# There get some VT100 characters printed.
send_gdb "\r"
set test "more message for 03"
gdb_test_multiple "" $test {
-re "\rsymbol_03_length_40_____________________\r\n--More--$" {
pass $test
}
}
# "$gdb_prompt $" will not match as $cmd gets output: $gdb_prompt p symbol_0
# And "$gdb_prompt p symbol_0" cannot be matched as the default "$gdb_prompt $"
# string from gdb_test_multiple could match earlier.
send_gdb "\r"
set test "more finish for 04"
gdb_test_multiple "" $test {
-re "\rsymbol_04_length_40_____________________\r\n$gdb_prompt " {
pass $test
}
}
gdb_test "foo" {No symbol "symbol_0foo" in current context\.} "abort more message"
set cmd "p symbol_"
send_gdb "$cmd\t"
set test "bell for ask message"
gdb_test_multiple "" $test {
-re "$cmd\007$" {
pass $test
}
}
send_gdb "\t"
set test "ask message"
gdb_test_multiple "" $test {
-re "^\r\nDisplay all 5 possibilities\\? \\(y or n\\)$" {
pass $test
}
-re "$gdb_prompt " {
fail $test
return 0
}
}
send_gdb "y"
set test "ask message for 01 and 02"
gdb_test_multiple "" $test {
-re "^\r\nsymbol_01_length_40_____________________\r\nsymbol_02_length_40_____________________\r\n--More--$" {
pass $test
}
}
# There get some VT100 characters printed.
# See the "$gdb_prompt " match like in "more finish for 04".
send_gdb "n"
set test "ask message no"
gdb_test_multiple "" $test {
-re "\r$gdb_prompt " {
pass $test
}
}
gdb_test "foo" {No symbol "symbol_foo" in current context\.} "abort ask message"