From 7b3fd859423f6b43b9f26573fe419904e9f41a91 Mon Sep 17 00:00:00 2001 From: Pierre Muller Date: Thu, 19 Aug 2010 07:05:56 +0000 Subject: [PATCH] * gdb.base/default.exp (info set): Avoid full buffer error and force reading up to final gdb prompt. (show): Likewise. --- gdb/testsuite/ChangeLog | 6 ++++ gdb/testsuite/gdb.base/default.exp | 57 +++++++++++++++++++++++++++--- 2 files changed, 59 insertions(+), 4 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 0cbb3ad49a..3bc7810108 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-08-19 Pierre Muller + + * gdb.base/default.exp (info set): Avoid full buffer error and force + reading up to final gdb prompt. + (show): Likewise. + 2010-08-18 Tom Tromey PR symtab/11919: diff --git a/gdb/testsuite/gdb.base/default.exp b/gdb/testsuite/gdb.base/default.exp index 64d4c9da6c..6f83c8b21f 100644 --- a/gdb/testsuite/gdb.base/default.exp +++ b/gdb/testsuite/gdb.base/default.exp @@ -316,10 +316,37 @@ gdb_test "info s" "No stack." "info stack \"s\" abbreviation" #test info stack gdb_test "info stack" "No stack." "info stack" #test info set -# FIXME -- needs to match the entire output -# FIXME -- on native solaris 2.8, this test fails due to this line: +# Test improved to check three parts: +# 1) confirm +# 2) prompt +# 3) write +# And only succeed if all three are matched. +# This should fix an old problem on native solaris 2.8, +# where this test fails due to this line: # prompt: Gdb's prompt is "(gdb) ".^M -gdb_test "info set" "confirm: Whether to confirm potentially dangerous operations is o\[a-z\]*.(\[^\r\n\]*\[\r\n\])+history filename: The filename in which to record the command history is (\[^\r\n\]*\[\r\n\])+listsize: Number of source lines gdb will list by default is 10.*" "info set" +set set_confirm_seen 0 +set set_prompt_seen 0 +gdb_test_multiple "info set" "info set" { + -re "confirm: Whether to confirm potentially dangerous operations is o\[a-z\]*.(\[^\r\n\]*\[\r\n\])+history filename: The filename in which to record the command history is (\[^\r\n\]*\[\r\n\])+listsize: Number of source lines gdb will list by default is 10" { + verbose "Confirm dislayed" + set set_confirm_seen 1 + exp_continue + } + -re "Gdb's prompt is \"$gdb_prompt \"" { + verbose "GDB prompt displayed" + set set_prompt_seen 1 + exp_continue + } + -re "Writing into executable.*$gdb_prompt $" { + verbose "write displayed" + if { $set_prompt_seen && $set_confirm_seen } { + pass "info set" + } else { + verbose "prompt $set_prompt_seen confirm $set_confirm_seen" + fail "info set (incomplete output)" + } + } +} gdb_test "info symbol" "Argument required .address.." #test info source gdb_test "info source" "No current source file..*" "info source" @@ -651,7 +678,29 @@ gdb_test "show width" "Number of characters gdb thinks are in a line is.*" "show # This is only supported on targets which use exec.o. gdb_test "show write" "Writing into executable and core files is o.*" "show write" #test show -gdb_test "show" "confirm: *Whether to confirm potentially dangerous operations is on.(\[^\r\n\]*\[\r\n\])+history filename: *The filename in which to record the command history is (\[^\r\n\]*\[\r\n\])+history save: *Saving of the history record on exit is on.(\[^\r\n\]*\[\r\n\])+history size: *The size of the command history is(\[^\r\n\]*\[\r\n\])+listsize: *Number of source lines gdb will list by default is 10(\[^\r\n]*\[\r\n\])+print elements: *Limit on string chars or array elements to print is 200..*" "show" +set show_confirm_seen 0 +set show_prompt_seen 0 +gdb_test_multiple "show" "show" { + -re "confirm: *Whether to confirm potentially dangerous operations is on.(\[^\r\n\]*\[\r\n\])+history filename: *The filename in which to record the command history is (\[^\r\n\]*\[\r\n\])+history save: *Saving of the history record on exit is on.(\[^\r\n\]*\[\r\n\])+history size: *The size of the command history is(\[^\r\n\]*\[\r\n\])+listsize: *Number of source lines gdb will list by default is 10(\[^\r\n]*\[\r\n\])+print elements: *Limit on string chars or array elements to print is 200." { + verbose "Confirm dislayed" + set show_confirm_seen 1 + exp_continue + } + -re "Gdb's prompt is \"$gdb_prompt \"" { + verbose "GDB prompt displayed" + set show_prompt_seen 1 + exp_continue + } + -re "Writing into executable.*$gdb_prompt $" { + verbose "write displayed" + if { $show_prompt_seen && $show_confirm_seen } { + pass "show" + } else { + verbose "prompt $show_prompt_seen confirm $show_confirm_seen" + fail "show (incomplete output)" + } + } +} #test stepi "si" abbreviation gdb_test "si" "The program is not being run." "stepi \"si\" abbreviation" #test stepi