0d4d0e772a
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.
120 lines
3 KiB
Text
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"
|