d3a77efe11c3545dc3736201ace71ecfa1c733a4
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / assign.exp
1 # Copyright 1998, 1999, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
15
16 # This file was written by Elena Zannoni (ezannoni@cygnus.com)
17
18 # This file is part of the gdb testsuite
19 #
20 # tests for all the assignemnt operators
21 # with mixed types and with int type variables
22 #
23
24 if $tracelevel then {
25 strace $tracelevel
26 }
27
28 #
29 # test running programs
30 #
31 set prms_id 0
32 set bug_id 0
33
34 set testfile "all-types"
35 set srcfile ${testfile}.c
36 set binfile ${objdir}/${subdir}/${testfile}
37
38 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
39 untested assign.exp
40 return -1
41 }
42
43
44
45 gdb_exit
46 gdb_start
47 gdb_reinitialize_dir $srcdir/$subdir
48 gdb_load ${binfile}
49
50
51 #
52 # set it up at a breakpoint so we can play with the variable values
53 #
54
55 if ![runto_main] then {
56 perror "couldn't run to breakpoint"
57 continue
58 }
59
60 gdb_test "next" "return 0;" "continuing after dummy()"
61
62 send_gdb "print v_int=57\n"
63 gdb_expect {
64 -re ".*57.*$gdb_prompt $" {
65 send_gdb "print v_int\n"
66 gdb_expect {
67 -re ".*57.*$gdb_prompt $" {
68 pass "v_int=57"
69 }
70 -re ".*$gdb_prompt $" { fail "v_int=57" }
71 timeout { fail "(timeout) v_int=57" }
72 }
73 }
74 -re ".*$gdb_prompt $" { fail "v_int=57" }
75 timeout { fail "(timeout) v_int=57" }
76 }
77
78
79 gdb_test "set variable v_int = 6" "" "set v_int to 6"
80
81
82 send_gdb "print v_int+=57\n"
83 gdb_expect {
84 -re ".*63.*$gdb_prompt $" {
85 send_gdb "print v_int\n"
86 gdb_expect {
87 -re ".*63.*$gdb_prompt $" {
88 pass "v_int+=57"
89 }
90 -re ".*$gdb_prompt $" { fail "v_int+=57" }
91 timeout { fail "(timeout) v_int+=57" }
92 }
93 }
94 -re ".*$gdb_prompt $" { fail "v_int+=57" }
95 timeout { fail "(timeout) v_int+=57" }
96 }
97
98 gdb_test "set variable v_int = 6" "" "set v_int to 6 (2)"
99
100 send_gdb "print v_int-=57\n"
101 gdb_expect {
102 -re ".*-51.*$gdb_prompt $" {
103 send_gdb "print v_int\n"
104 gdb_expect {
105 -re ".*-51.*$gdb_prompt $" {
106 pass "v_int-=57"
107 }
108 -re ".*$gdb_prompt $" { fail "v_int-=57" }
109 timeout { fail "(timeout) v_int-=57" }
110 }
111 }
112 -re ".*$gdb_prompt $" { fail "v_int-=57" }
113 timeout { fail "(timeout) v_int-=57" }
114 }
115
116 gdb_test "set variable v_int = 6" "" "set v_int to 6 (3)"
117
118 send_gdb "print v_int*=5\n"
119 gdb_expect {
120 -re ".*30.*$gdb_prompt $" {
121 send_gdb "print v_int\n"
122 gdb_expect {
123 -re ".*30.*$gdb_prompt $" {
124 pass "v_int*=5"
125 }
126 -re ".*$gdb_prompt $" { fail "v_int*=5" }
127 timeout { fail "(timeout) v_int*=5" }
128 }
129 }
130 -re ".*$gdb_prompt $" { fail "v_int*=5" }
131 timeout { fail "(timeout) v_int*=5" }
132 }
133
134 gdb_test "set variable v_int = 6" "" "set v_int to 6 (4)"
135
136 send_gdb "print v_int/=4\n"
137 gdb_expect {
138 -re ".*1.*$gdb_prompt $" {
139 send_gdb "print v_int\n"
140 gdb_expect {
141 -re ".*1.*$gdb_prompt $" {
142 pass "v_int/=4"
143 }
144 -re ".*$gdb_prompt $" { fail "v_int/=4" }
145 timeout { fail "(timeout) v_int/=4" }
146 }
147 }
148 -re ".*$gdb_prompt $" { fail "v_int/=4" }
149 timeout { fail "(timeout) v_int/=4" }
150 }
151
152
153
154 gdb_test "set variable v_int = 6" "" "set v_int to 6 (5)"
155
156 send_gdb "print v_int%=4\n"
157 gdb_expect {
158 -re ".*2.*$gdb_prompt $" {
159 send_gdb "print v_int\n"
160 gdb_expect {
161 -re ".*2.*$gdb_prompt $" {
162 pass "v_int%=4"
163 }
164 -re ".*$gdb_prompt $" { fail "v_int%=4" }
165 timeout { fail "(timeout) v_int%=4" }
166 }
167 }
168 -re ".*$gdb_prompt $" { fail "v_int%=4" }
169 timeout { fail "(timeout) v_int%=4" }
170 }
171
172
173
174 gdb_test "set variable v_int = 6" "" "set v_int to 6 (6)"
175
176
177
178 send_gdb "print v_int+=v_char\n"
179 gdb_expect {
180 -re ".*71.*$gdb_prompt $" {
181 send_gdb "print v_int\n"
182 gdb_expect {
183 -re ".*71.*$gdb_prompt $" {
184 pass "v_int+=char"
185 }
186 -re ".*$gdb_prompt $" { fail "v_int+=v_char" }
187 timeout { fail "(timeout) v_int+=v_char" }
188 }
189 }
190 -re ".*$gdb_prompt $" { fail "v_int+=v_char" }
191 timeout { fail "(timeout) v_int+=v_char" }
192 }
193
194
195 gdb_test "set variable v_int = 6" "" "set v_int to 6 (7)"
196
197
198
199 send_gdb "print v_int+=v_signed_char\n"
200 gdb_expect {
201 -re ".*72.*$gdb_prompt $" {
202 send_gdb "print v_int\n"
203 gdb_expect {
204 -re ".*72.*$gdb_prompt $" {
205 pass "v_int+=signed_char"
206 }
207 -re ".*$gdb_prompt $" { fail "v_int+=v_signed_char" }
208 timeout { fail "(timeout) v_int+=v_signed_char" }
209 }
210 }
211 -re ".*$gdb_prompt $" { fail "v_int+=v_signed_char" }
212 timeout { fail "(timeout) v_int+=v_signed_char" }
213 }
214
215
216 gdb_test "set variable v_int = 6" "" "set v_int to 6 (8)"
217
218
219
220 send_gdb "print v_int+=v_unsigned_char\n"
221 gdb_expect {
222 -re ".*73.*$gdb_prompt $" {
223 send_gdb "print v_int\n"
224 gdb_expect {
225 -re ".*73.*$gdb_prompt $" {
226 pass "v_int+=unsigned_char"
227 }
228 -re ".*$gdb_prompt $" { fail "v_int+=v_unsigned_char" }
229 timeout { fail "(timeout) v_int+=v_unsigned_char" }
230 }
231 }
232 -re ".*$gdb_prompt $" { fail "v_int+=v_unsigned_char" }
233 timeout { fail "(timeout) v_int+=v_unsigned_char" }
234 }
235
236
237 gdb_test "set variable v_int = 6" "" "set v_int to 6 (9)"
238
239
240
241 send_gdb "print v_int+=v_short\n"
242 gdb_expect {
243 -re ".*9.*$gdb_prompt $" {
244 send_gdb "print v_int\n"
245 gdb_expect {
246 -re ".*9.*$gdb_prompt $" {
247 pass "v_int+=short"
248 }
249 -re ".*$gdb_prompt $" { fail "v_int+=v_short" }
250 timeout { fail "(timeout) v_int+=v_short" }
251 }
252 }
253 -re ".*$gdb_prompt $" { fail "v_int+=v_short" }
254 timeout { fail "(timeout) v_int+=v_short" }
255 }
256
257
258 gdb_test "set variable v_int = 6" "" "set v_int to 6 (10)"
259
260
261
262 send_gdb "print v_int+=v_signed_short\n"
263 gdb_expect {
264 -re ".*10.*$gdb_prompt $" {
265 send_gdb "print v_int\n"
266 gdb_expect {
267 -re ".*10.*$gdb_prompt $" {
268 pass "v_int+=signed_short"
269 }
270 -re ".*$gdb_prompt $" { fail "v_int+=v_signed_short" }
271 timeout { fail "(timeout) v_int+=v_signed_short" }
272 }
273 }
274 -re ".*$gdb_prompt $" { fail "v_int+=v_signed_short" }
275 timeout { fail "(timeout) v_int+=v_signed_short" }
276 }
277
278
279 gdb_test "set variable v_int = 6" "" "set v_int to 6 (11)"
280
281
282
283 send_gdb "print v_int+=v_unsigned_short\n"
284 gdb_expect {
285 -re ".*11.*$gdb_prompt $" {
286 send_gdb "print v_int\n"
287 gdb_expect {
288 -re ".*11.*$gdb_prompt $" {
289 pass "v_int=+unsigned_short"
290 }
291 -re ".*$gdb_prompt $" { fail "v_int+=v_unsigned_short" }
292 timeout { fail "(timeout) v_int+=v_unsigned_short" }
293 }
294 }
295 -re ".*$gdb_prompt $" { fail "v_int+=v_unsigned_short" }
296 timeout { fail "(timeout) v_int+=v_unsigned_short" }
297 }
298
299
300 gdb_test "set variable v_int = 6" "" "set v_int to 6 (12)"
301
302
303
304 send_gdb "print v_int+=v_signed_int\n"
305 gdb_expect {
306 -re ".*13.*$gdb_prompt $" {
307 send_gdb "print v_int\n"
308 gdb_expect {
309 -re ".*13.*$gdb_prompt $" {
310 pass "v_int+=signed_int"
311 }
312 -re ".*$gdb_prompt $" { fail "v_int+=v_signed_int" }
313 timeout { fail "(timeout) v_int+=v_signed_int" }
314 }
315 }
316 -re ".*$gdb_prompt $" { fail "v_int+=v_signed_int" }
317 timeout { fail "(timeout) v_int+=v_signed_int" }
318 }
319
320
321 gdb_test "set variable v_int = 6" "" "set v_int to 6 (13)"
322
323
324
325 send_gdb "print v_int+=v_unsigned_int\n"
326 gdb_expect {
327 -re ".*14.*$gdb_prompt $" {
328 send_gdb "print v_int\n"
329 gdb_expect {
330 -re ".*14.*$gdb_prompt $" {
331 pass "v_int+=unsigned_int"
332 }
333 -re ".*$gdb_prompt $" { fail "v_int+=v_unsigned_int" }
334 timeout { fail "(timeout) v_int+=v_unsigned_int" }
335 }
336 }
337 -re ".*$gdb_prompt $" { fail "v_int+=v_unsigned_int" }
338 timeout { fail "(timeout) v_int+=v_unsigned_int" }
339 }
340
341
342 gdb_test "set variable v_int = 6" "" "set v_int to 6 (14)"
343
344
345
346 send_gdb "print v_int+=v_long\n"
347 gdb_expect {
348 -re ".*15.*$gdb_prompt $" {
349 send_gdb "print v_int\n"
350 gdb_expect {
351 -re ".*15.*$gdb_prompt $" {
352 pass "v_int+=long"
353 }
354 -re ".*$gdb_prompt $" { fail "v_int+=v_long" }
355 timeout { fail "(timeout) v_int+=v_long" }
356 }
357 }
358 -re ".*$gdb_prompt $" { fail "v_int+=v_long" }
359 timeout { fail "(timeout) v_int+=v_long" }
360 }
361
362
363 gdb_test "set variable v_int = 6" "" "set v_int to 6 (15)"
364
365
366
367 send_gdb "print v_int+=v_signed_long\n"
368 gdb_expect {
369 -re ".*16.*$gdb_prompt $" {
370 send_gdb "print v_int\n"
371 gdb_expect {
372 -re ".*16.*$gdb_prompt $" {
373 pass "v_int+=signed_long"
374 }
375 -re ".*$gdb_prompt $" { fail "v_int+=v_signed_long" }
376 timeout { fail "(timeout) v_int+=v_signed_long" }
377 }
378 }
379 -re ".*$gdb_prompt $" { fail "v_int+=v_signed_long" }
380 timeout { fail "(timeout) v_int+=v_signed_long" }
381 }
382
383
384 gdb_test "set variable v_int = 6" "" "set v_int to 6 (16)"
385
386
387 send_gdb "print v_int+=v_unsigned_long\n"
388 gdb_expect {
389 -re ".*17.*$gdb_prompt $" {
390 send_gdb "print v_int\n"
391 gdb_expect {
392 -re ".*17.*$gdb_prompt $" {
393 pass "v_int+=unsigned_long"
394 }
395 -re ".*$gdb_prompt $" { fail "v_int+=v_unsigned_long" }
396 timeout { fail "(timeout) v_int+=v_unsigned_long" }
397 }
398 }
399 -re ".*$gdb_prompt $" { fail "v_int+=v_unsigned_long" }
400 timeout { fail "(timeout) v_int+=v_unsigned_long" }
401 }
402
403
404 gdb_test "set variable v_int = 6" "" "set v_int to 6 (17)"
405
406
407 send_gdb "print v_int+=v_float\n"
408 gdb_expect {
409 -re ".*106\r\n$gdb_prompt $" {
410 send_gdb "print v_int\n"
411 gdb_expect {
412 -re ".*106\r\n$gdb_prompt $" {
413 pass "v_int+=v_float"
414 }
415 -re ".*$gdb_prompt $" { fail "v_int+=v_float" }
416 timeout { fail "(timeout) v_int+=v_float" }
417 }
418 }
419 -re ".*$gdb_prompt $" { fail "v_int+=v_float" }
420 timeout { fail "(timeout) v_int+=v_float" }
421 }
422
423
424 gdb_test "set variable v_int = 6" "" "set v_int to 6 (18)"
425
426
427 send_gdb "print v_int+=v_double\n"
428 gdb_expect {
429 -re ".*206\r\n$gdb_prompt $" {
430 send_gdb "print v_int\n"
431 gdb_expect {
432 -re ".*206\r\n$gdb_prompt $" {
433 pass "v_int+=double"
434 }
435 -re ".*$gdb_prompt $" { fail "v_int+=v_double" }
436 timeout { fail "(timeout) v_int+=v_double" }
437 }
438 }
439 -re ".*$gdb_prompt $" { fail "v_int+=v_double" }
440 timeout { fail "(timeout) v_int+=v_double" }
441 }
442
443
This page took 0.0498 seconds and 3 git commands to generate.