diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index c920d382b1..fd82e53e2a 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2011-05-11 Jan Kratochvil + + * gdb.base/readline-ask.c: New file. + * gdb.base/readline-ask.exp: New file. + * gdb.base/readline-ask.inputrc: New file. + 2011-05-06 Ulrich Weigand * gdb.cell/bt.exp: Delete breakpoints before running to signal diff --git a/gdb/testsuite/gdb.base/readline-ask.c b/gdb/testsuite/gdb.base/readline-ask.c new file mode 100644 index 0000000000..b9c02b8ac2 --- /dev/null +++ b/gdb/testsuite/gdb.base/readline-ask.c @@ -0,0 +1,23 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2011 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 . */ + +int +symbol_01_length_40_____________________, +symbol_02_length_40_____________________, +symbol_03_length_40_____________________, +symbol_04_length_40_____________________, +symbol_10_length_40_____________________; diff --git a/gdb/testsuite/gdb.base/readline-ask.exp b/gdb/testsuite/gdb.base/readline-ask.exp new file mode 100644 index 0000000000..1cfe542ad7 --- /dev/null +++ b/gdb/testsuite/gdb.base/readline-ask.exp @@ -0,0 +1,118 @@ +# Copyright (C) 2011 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 . + +set testfile readline-ask +set executable ${testfile}.x +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${executable} +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 ${executable} + +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" diff --git a/gdb/testsuite/gdb.base/readline-ask.inputrc b/gdb/testsuite/gdb.base/readline-ask.inputrc new file mode 100644 index 0000000000..463b6a76e0 --- /dev/null +++ b/gdb/testsuite/gdb.base/readline-ask.inputrc @@ -0,0 +1,16 @@ +# Copyright (C) 2011 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 . + +set completion-query-items 5