Commit | Line | Data |
---|---|---|
f2dd3617 EZ |
1 | # Copyright 1992, 1994, 1996, 1997, 1998, 2001, 2003 |
2 | # Free Software Foundation, Inc. | |
c906108c SS |
3 | |
4 | # This program is free software; you can redistribute it and/or modify | |
5 | # it under the terms of the GNU General Public License as published by | |
6 | # the Free Software Foundation; either version 2 of the License, or | |
7 | # (at your option) any later version. | |
8 | # | |
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | # GNU General Public License for more details. | |
13 | # | |
14 | # You should have received a copy of the GNU General Public License | |
15 | # along with this program; if not, write to the Free Software | |
16 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
17 | ||
18 | # Please email any bugs, comments, and/or additions to this file to: | |
19 | # bug-gdb@prep.ai.mit.edu | |
20 | ||
21 | # This file was written by Michael Snyder (msnyder@cygnus.com) | |
22 | ||
23 | if $tracelevel then { | |
24 | strace $tracelevel | |
25 | } | |
26 | ||
27 | set prms_id 0 | |
28 | set bug_id 0 | |
29 | ||
30 | set testfile "setshow" | |
f2dd3617 | 31 | set srcfile ${testfile}.c |
c906108c | 32 | set binfile ${objdir}/${subdir}/${testfile} |
f2dd3617 | 33 | if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile} executable {debug}] != "" } { |
c906108c SS |
34 | gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." |
35 | } | |
36 | ||
37 | # Start with a fresh gdb | |
38 | ||
39 | gdb_exit | |
40 | gdb_start | |
41 | gdb_reinitialize_dir $srcdir/$subdir | |
42 | gdb_load ${binfile} | |
43 | ||
44 | # make sure $pc is sane, in case we're talking to a board. | |
45 | if { ![runto_main] } { | |
46 | gdb_suppress_tests; | |
47 | } | |
48 | ||
49 | # | |
50 | # Test gdb set and show commands. | |
51 | # Add tests here for show and set that don't fit neatly elsewhere. | |
52 | # FIXME: many rudimentary tests for set and show commands have been | |
53 | # added below, but most do nothing more than check that a | |
54 | # variable has been set successfully, ie. they do not test | |
55 | # whether setting the variable has had the desired effect. | |
56 | # | |
57 | ||
58 | #test default annotation_level is 0 | |
59 | gdb_test "show annotate" "Annotation_level is 0..*" "default annotation_level is zero" | |
60 | ||
61 | #test set annotate 2 | |
62 | send_gdb "set annotate 2\n" | |
63 | gdb_expect { | |
64 | -re ".*\032\032pre-prompt.*$gdb_prompt .*\032\032prompt.*$" \ | |
65 | { pass "set annotate 2" } | |
66 | -re ".*$gdb_prompt $" { fail "set annotate 2" } | |
67 | timeout { fail "(timeout) set annotate 2" } | |
68 | } | |
69 | ||
70 | send_gdb "show annotate\n" | |
71 | gdb_expect { | |
72 | -re ".*\032\032post-prompt.*Annotation_level is 2..*\032\032pre-prompt.*$gdb_prompt .*\032\032prompt.*$" \ | |
73 | { pass "show annotate (2)" } | |
74 | -re ".*$gdb_prompt $" { fail "show annotate (2)" } | |
75 | timeout { fail "(timeout) show annotate (2)" } | |
76 | } | |
77 | ||
78 | #test annotation_level 2 | |
79 | send_gdb "info line 1\n" | |
80 | gdb_expect { | |
81 | -re ".*\032\032post-prompt.*Line 1 of .* is at address .* but contains no code.*:1:0:beg:0x.*\032\032pre-prompt.*$gdb_prompt .*\032\032prompt.*$" \ | |
82 | { pass "annotation_level 2" } | |
83 | -re ".*$gdb_prompt $" { fail "annotation_level 2" } | |
84 | timeout { fail "(timeout) annotation_level 2" } | |
85 | } | |
86 | ||
87 | #test set annotate 1 | |
88 | gdb_test "set annotate 1" ".*post-prompt.*" "set annotate 1" | |
89 | gdb_test "show annotate" "Annotation_level is 1..*" "show annotate (1)" | |
90 | #test annotation_level 1 | |
91 | gdb_test "info line 1" "Line 1 of .* is at address .* but contains no code.*:1:0:beg:0x.*" "annotation_level 1" | |
92 | #test set annotate 0 | |
93 | gdb_test "set annotate 0" "" "set annotate 0" | |
94 | gdb_test "show annotate" "Annotation_level is 0..*" "show annotate (0)" | |
95 | #test annotation_level 0 | |
96 | gdb_test "info line 1" "Line 1 of .* is at address .* but contains no code.*" "annotation_level 0" | |
97 | #test set args | |
98 | gdb_test "set args foo bar blup baz bubble" "" "set args" | |
99 | #test show args | |
100 | gdb_test "show args" "Argument list to give program being debugged when it is started is \"foo bar blup baz bubble\"..*" "show args" | |
101 | ||
102 | # Don't test if we can't pass args or if we're using a stub. | |
103 | if { ![target_info exists use_gdb_stub] && ![target_info exists noargs] } { | |
104 | #test passing args | |
105 | gdb_test "cont" "Continuing.*" "continuing" | |
106 | delete_breakpoints | |
107 | gdb_test "run" "Starting program:.*foo bar blup baz bubble.*" "passing args" | |
108 | } | |
109 | #test set check range on | |
110 | gdb_test "set check range on" "" "set check range on" | |
111 | #test show check range on | |
112 | gdb_test "show check range" "Range checking is \"on\"\..*" "show check range (on)" | |
113 | #test set check range auto | |
114 | gdb_test "set check range auto" "" "set check range auto" | |
115 | #test show check range auto | |
116 | gdb_test "show check range" "Range checking is \"auto; currently .*" "show check range (auto)" | |
117 | #test set check type on | |
118 | gdb_test "set check type on" "" "set check type on" | |
119 | #test show check type on | |
120 | gdb_test "show check type" "Type checking is \"on\"..*" "show check type (on)" | |
121 | #test set check type auto | |
122 | gdb_test "set check type auto" "" "set check type auto" | |
123 | #test show check type | |
124 | gdb_test "show check type" "Type checking is \"auto; currently .*" "show check type (auto)" | |
125 | #test set complaints 100 | |
126 | gdb_test "set complaints 100" "" "set complaints 100" | |
127 | #test show complaints 100 | |
128 | gdb_test "show complaints" "Max number of complaints about incorrect symbols is 100..*" "show complaints (100)" | |
129 | #test set complaints 0 | |
130 | gdb_test "set complaints 0" "" "set complaints 0" | |
131 | #test show complaints 0 | |
132 | gdb_test "show complaints" "Max number of complaints about incorrect symbols is 0..*" "show complaints (0)" | |
133 | #test set confirm off | |
134 | gdb_test "set confirm off" "" "set confirm off" | |
135 | #test show confirm off | |
136 | gdb_test "show confirm" "Whether to confirm potentially dangerous operations is off..*" "show confirm (off)" | |
137 | #test set confirm on | |
138 | gdb_test "set confirm on" "" "set confirm on" | |
139 | #test show confirm on | |
140 | gdb_test "show confirm" "Whether to confirm potentially dangerous operations is on..*" "show confirm (on)" | |
141 | #test set editing off | |
142 | gdb_test "set editing off" "" "set editing off" | |
143 | #test show editing off | |
144 | gdb_test "show editing" "Editing of command lines as they are typed is off..*" "show editing (off)" | |
145 | #test set editing on | |
146 | #gdb_test "set editing on" "" "set editing on" | |
147 | #test show editing on | |
148 | #gdb_test "show editing" "Editing of command lines as they are typed is on..*" "show editing (on)" | |
149 | #test set environment FOOBARBAZ | |
150 | gdb_test "set environment FOOBARBAZ = grbxgrbxgrbx" "" "set environment FOOBARBAZ" | |
151 | #test show environment FOOBARBAZ | |
152 | gdb_test "show environment FOOBARBAZ" "FOOBARBAZ = grbxgrbxgrbx.*" "show environment FOOBARBAZ" | |
153 | #test set height 100 | |
154 | gdb_test "set height 100" "" "set height 100" | |
155 | #test show height 100 | |
156 | gdb_test "show height" "Number of lines gdb thinks are in a page is 100..*" "show height" | |
157 | #test set history expansion on | |
158 | gdb_test "set history expansion on" "" "set history expansion on" | |
159 | #test show history expansion on | |
160 | gdb_test "show history expansion on" "History expansion on command input is on.*" "show history expansion" | |
161 | #test set history filename foobar.baz | |
162 | gdb_test "set history filename foobar.baz" "" "set history filename foobar.baz" | |
163 | #test show history filename foobar.baz | |
164 | gdb_test "show history filename" "The filename in which to record the command history is \"foobar.baz\"..*" "show history filename (foobar.baz)" | |
165 | #test set history save on | |
166 | gdb_test "set history save on" "" "set history save on" | |
167 | #test show history save on | |
168 | gdb_test "show history save" "Saving of the history record on exit is on..*" "show history save (on)" | |
169 | #test set history size 100 | |
170 | gdb_test "set history size 100" "" "set history size 100" | |
171 | #test show history size 100 | |
172 | gdb_test "show history size" "The size of the command history is 100..*" "show history size (100)" | |
173 | #test set language asm | |
174 | gdb_test "set language asm" "" "set language asm" | |
175 | #test show language asm | |
176 | gdb_test "show language" "The current source language is \"asm\"..*" "show language (asm)" | |
177 | #test set language auto | |
178 | gdb_test "set language auto" "" "set language auto" | |
179 | #test show language | |
180 | gdb_test "show language" "The current source language is \"auto.*\"..*" "show language (auto)" | |
181 | #test set listsize 100 | |
182 | gdb_test "set listsize 100" "" "set listsize 100" | |
183 | #test show listsize 100 | |
184 | gdb_test "show listsize" "Number of source lines gdb will list by default is 100..*" "show listsize (100)" | |
185 | ||
186 | if ![board_info target exists gdb_prompt] { | |
187 | #test set prompt (FooBarBaz) | |
188 | set newprompt "\\(FooBarBaz\\)" | |
189 | send_gdb "set prompt (FooBarBaz) \n" | |
190 | gdb_expect { | |
191 | -re "$newprompt $" { pass "set prompt (FooBarBaz) " } | |
192 | timeout { fail "(timeout) set prompt (FooBarBaz) " } | |
193 | } | |
194 | ||
195 | #test show prompt (FooBarBaz) | |
196 | send_gdb "show prompt\n" | |
197 | gdb_expect { | |
198 | -re "Gdb's prompt is \"$newprompt \"..* $" \ | |
199 | { pass "show prompt (FooBarBaz) " } | |
200 | timeout { fail "(timeout) show prompt (FooBarBaz) " } | |
201 | } | |
202 | ||
203 | #test set prompt (gdb) | |
204 | send_gdb "set prompt (gdb) \n" | |
205 | gdb_expect { | |
206 | -re "$gdb_prompt $" { pass "set prompt (gdb) " } | |
207 | timeout { fail "(timeout) set prompt (gdb) " } | |
208 | } | |
209 | } | |
210 | ||
211 | #test set radix 11 | |
212 | gdb_test "set radix 11" "Unsupported output radix ``decimal 11''; output radix unchanged..*" "set radix 11" | |
213 | #test set radix 16 | |
214 | gdb_test "set radix 16" "Input and output radices now set to decimal 16, hex 10, octal 20..*" "set radix 16" | |
215 | #test show radix 16 | |
216 | gdb_test "show radix" "Input and output radices set to decimal 16, hex 10, octal 20..*" "show radix (16)" | |
217 | #test set radix 10 | |
218 | gdb_test "set radix" "Input and output radices now set to decimal 10, hex a, octal 12..*" "set radix 10" | |
219 | #test show radix 10 | |
220 | gdb_test "show radix" "Input and output radices set to decimal 10, hex a, octal 12..*" "show radix (10)" | |
221 | #test set width 90 | |
222 | gdb_test "set width 90" "" "set width 90" | |
223 | #test show width 90 | |
224 | gdb_test "show width" "Number of characters gdb thinks are in a line is 90..*" "show width (90)" | |
225 | #test set write on | |
226 | # This is only supported on targets which use exec.o. | |
227 | gdb_test "set write on" "" "set write on" | |
228 | #test show write on | |
229 | # This is only supported on targets which use exec.o. | |
230 | gdb_test "show write" "Writing into executable and core files is on..*" "show write (on)" | |
231 | #test set symbol-reloading on | |
232 | gdb_test "set symbol-reloading on" "" "set symbol-reloading on" | |
233 | #test show symbol-reloading on | |
234 | gdb_test "show symbol-reloading" "Dynamic symbol table reloading multiple times in one run is on..*" "show symbol-reloading (on)" | |
235 | #test show user | |
236 | gdb_test "show user" "" "show user" | |
237 | #test set verbose on | |
238 | gdb_test "set verbose on" "" "set verbose on" | |
239 | #test show verbose on | |
240 | gdb_test "show verbose" "Verbose printing of informational messages is on..*" "show verbose (on)" | |
241 | #test set verbose off | |
242 | gdb_test "set verbose off" "" "set verbose off" | |
243 | #test show verbose off | |
244 | gdb_test "show verbose" "Verbosity is off..*" "show verbose (off)" |