aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.base')
-rw-r--r--gdb/testsuite/gdb.base/printcmds.exp68
-rw-r--r--gdb/testsuite/gdb.base/setshow.exp22
2 files changed, 70 insertions, 20 deletions
diff --git a/gdb/testsuite/gdb.base/printcmds.exp b/gdb/testsuite/gdb.base/printcmds.exp
index b29598f..c1adc78 100644
--- a/gdb/testsuite/gdb.base/printcmds.exp
+++ b/gdb/testsuite/gdb.base/printcmds.exp
@@ -449,13 +449,14 @@ proc test_print_all_chars {} {
}
# Test interaction of the number of print elements to print and the
-# repeat count, set to the default of 10.
+# repeat count, set to the default of 10. SETTING is the print
+# setting to verify, either "elements" or "characters".
-proc test_print_repeats_10 {} {
+proc test_print_repeats_10_one { setting } {
global gdb_prompt decimal
for { set x 1 } { $x <= 16 } { incr x } {
- gdb_test_no_output "set print elements $x" "elements $x repeats"
+ gdb_test_no_output "set print $setting $x" "$setting $x repeats"
for { set e 1 } { $e <= 16 } {incr e } {
set v [expr $e - 1]
set command "p &ctable2\[${v}*16\]"
@@ -495,11 +496,18 @@ proc test_print_repeats_10 {} {
set xstr "${xstr}\[.\]\[.\]\[.\]"
}
set string " = \[(\]unsigned char \[*\]\[)\] <ctable2(\\+$decimal)?> ${a}${xstr}"
- gdb_test "$command" "$string" "$command with print elements set to $x"
+ gdb_test "$command" "$string" "$command with print $setting set to $x"
}
}
}
+proc test_print_repeats_10 {} {
+ foreach_with_prefix setting { "elements" "characters" } {
+ test_print_repeats_10_one $setting
+ }
+ gdb_test_no_output "set print characters elements"
+}
+
# This tests whether GDB uses the correct element content offsets
# (relative to the complete `some_struct' value) when counting value
# repetitions.
@@ -512,7 +520,7 @@ proc test_print_repeats_embedded_array {} {
"correct element repeats in array embedded at offset > 0"
}
-proc test_print_strings {} {
+proc test_print_strings_one { setting } {
global gdb_prompt decimal
# We accept "(unsigned char *) " before the string. char vs. unsigned char
@@ -520,35 +528,35 @@ proc test_print_strings {} {
# Test that setting print elements unlimited doesn't completely suppress
# printing; this was a bug in older gdb's.
- gdb_test_no_output "set print elements 0"
+ gdb_test_no_output "set print $setting 0"
gdb_test "p teststring" \
- " = (.unsigned char .. )?\"teststring contents\"" "p teststring with elements set to 0"
- gdb_test_no_output "set print elements 1"
+ " = (.unsigned char .. )?\"teststring contents\"" "p teststring with $setting set to 0"
+ gdb_test_no_output "set print $setting 1"
gdb_test "p teststring" \
- " = (.unsigned char .. )?\"t\"\\.\\.\\." "p teststring with elements set to 1"
- gdb_test_no_output "set print elements 5"
+ " = (.unsigned char .. )?\"t\"\\.\\.\\." "p teststring with $setting set to 1"
+ gdb_test_no_output "set print $setting 5"
gdb_test "p teststring" \
- " = (.unsigned char .. )?\"tests\"\\.\\.\\." "p teststring with elements set to 5"
- gdb_test_no_output "set print elements 19"
+ " = (.unsigned char .. )?\"tests\"\\.\\.\\." "p teststring with $setting set to 5"
+ gdb_test_no_output "set print $setting 19"
gdb_test "p teststring" \
- " = (.unsigned char .. )?\"teststring contents\"" "p teststring with elements set to 19"
- gdb_test_no_output "set print elements 20"
+ " = (.unsigned char .. )?\"teststring contents\"" "p teststring with $setting set to 19"
+ gdb_test_no_output "set print $setting 20"
gdb_test "p teststring" \
- " = (.unsigned char .. )?\"teststring contents\"" "p teststring with elements set to 20"
+ " = (.unsigned char .. )?\"teststring contents\"" "p teststring with $setting set to 20"
- gdb_test "p -elements 1 -- teststring" \
+ gdb_test "p -$setting 1 -- teststring" \
" = (.unsigned char .. )?\"t\"\\.\\.\\."
- gdb_test "p -elements 5 -- teststring" \
+ gdb_test "p -$setting 5 -- teststring" \
" = (.unsigned char .. )?\"tests\"\\.\\.\\."
- gdb_test "p -elements 19 -- teststring" \
+ gdb_test "p -$setting 19 -- teststring" \
" = (.unsigned char .. )?\"teststring contents\""
- gdb_test "p -elements 20 -- teststring" \
+ gdb_test "p -$setting 20 -- teststring" \
" = (.unsigned char .. )?\"teststring contents\""
gdb_test "print teststring2" \
" = \\(charptr\\) \"more contents\""
- gdb_test_no_output "set print elements 8"
+ gdb_test_no_output "set print $setting 8"
# Set the target-charset to ASCII, because the output varies from
# different charset.
@@ -620,6 +628,26 @@ proc test_print_strings {} {
gdb_test "p &ctable1\[31*8\]" \
" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\370\\\\371\\\\372\\\\373\\\\374\\\\375\\\\376\\\\377\"..."
}
+
+ gdb_test_no_output "set print $setting unlimited"
+}
+
+proc test_print_strings {} {
+
+ foreach_with_prefix setting { "elements" "characters" } {
+ test_print_strings_one $setting
+ }
+
+ gdb_test "p -elements 8 -- teststring" \
+ " = (.unsigned char .. )?\"teststring contents\""
+ gdb_test "p -characters 8 -- teststring" \
+ " = (.unsigned char .. )?\"teststri\"\\.\\.\\."
+ gdb_test "p -elements 8 -characters elements -- teststring" \
+ " = (.unsigned char .. )?\"teststri\"\\.\\.\\."
+
+ with_test_prefix strings {
+ gdb_test_no_output "set print characters elements"
+ }
}
proc test_print_int_arrays {} {
diff --git a/gdb/testsuite/gdb.base/setshow.exp b/gdb/testsuite/gdb.base/setshow.exp
index 2f3270a..86821ca 100644
--- a/gdb/testsuite/gdb.base/setshow.exp
+++ b/gdb/testsuite/gdb.base/setshow.exp
@@ -374,6 +374,27 @@ proc_with_prefix test_setshow_listsize {} {
gdb_test "show listsize" "Number of source lines gdb will list by default is 100..*" "show listsize (100)"
}
+proc_with_prefix test_setshow_print_characters {} {
+ clean_restart
+
+ gdb_test "p \$_gdb_setting(\"print characters\")" " = void" \
+ "_gdb_setting print characters default"
+ gdb_test "p \$_gdb_setting_str(\"print characters\")" " = \"elements\"" \
+ "_gdb_setting_str print characters default"
+
+ gdb_test_no_output "set print characters unlimited"
+ gdb_test "p \$_gdb_setting(\"print characters\")" " = 0" \
+ "_gdb_setting print characters unlimited"
+ gdb_test "p \$_gdb_setting_str(\"print characters\")" " = \"unlimited\"" \
+ "_gdb_setting_str print characters unlimited"
+
+ gdb_test_no_output "set print characters 1"
+ gdb_test "p \$_gdb_setting(\"print characters\")" " = 1" \
+ "_gdb_setting print characters 1"
+ gdb_test "p \$_gdb_setting_str(\"print characters\")" " = \"1\"" \
+ "_gdb_setting_str print characters 1"
+}
+
proc_with_prefix test_setshow_prompt {} {
clean_restart
@@ -493,6 +514,7 @@ test_setshow_height
test_setshow_history
test_setshow_language
test_setshow_listsize
+test_setshow_print_characters
test_setshow_prompt
test_setshow_radix
test_setshow_width