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