OSDN Git Service

64f27d625354dcc2f723add70a1c876e2863da46
[pf3gnuchains/pf3gnuchains3x.git] / gdb / testsuite / gdb.base / eval-skip.exp
1 # Copyright 1998, 1999 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 Elena Zannoni (ezannoni@cygnus.com)
21
22 # This file is part of the gdb testsuite
23
24 #
25 # tests to cover evaluate_subexp_standard with the EVAL_SKIP flag set.
26 # this happens for instance when there is short circuit evaluation in the && and ||
27 # operators, or in the non returned part of a (x ? y: z) expression.
28 # the part that is not evaluated is parsed and evaluated anyway, but with
29 # the EVAL_SKIP flag set
30
31 # source file "int-type.c"
32 #
33
34
35 if $tracelevel then {
36         strace $tracelevel
37 }
38
39 # Check to see if we have an executable to test.  If not, then either we
40 # haven't tried to compile one, or the compilation failed for some reason.
41 # In either case, just notify the user and skip the tests in this file.
42
43 set testfile "int-type"
44 set srcfile ${testfile}.c
45 set binfile ${objdir}/${subdir}/${testfile}
46
47 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
48      untested eval-skip.exp
49      return -1
50     }
51
52 if [get_compiler_info $binfile] {
53     return -1
54 }
55
56 gdb_exit
57 gdb_start
58 gdb_reinitialize_dir $srcdir/$subdir
59 gdb_load ${binfile}
60
61
62 if ![runto_main] then {
63     perror "couldn't run to breakpoint"
64     continue
65 }
66
67 gdb_test "set variable x=14" "" "set variable x=14"
68 gdb_test "set variable y=2" "" "set variable y=2"
69 gdb_test "set variable z=2" "" "set variable z=2"
70 gdb_test "set variable w=3" "" "set variable w=3"
71
72 send_gdb "print (0 && (x+y))\n"
73 gdb_expect {
74     -re ".$decimal = $false\r\n$gdb_prompt $" {
75         pass "print value of (0 && (x+y))"
76       }
77     -re ".*$gdb_prompt $" { fail "print value of (0 && (x+y))" }
78     timeout           { fail "(timeout) print value of (0 && (x+y))" }
79   }
80
81
82 send_gdb "print (0 && (x-y))\n"
83 gdb_expect {
84     -re ".$decimal = $false\r\n$gdb_prompt $" {
85         pass "print value of (0 && (x-y))"
86       }
87     -re ".*$gdb_prompt $" { fail "print value of (0 && (x-y))" }
88     timeout           { fail "(timeout) print value of (0 && (x-y))" }
89   }
90
91
92 send_gdb "print (0 && (x*y))\n"
93 gdb_expect {
94     -re ".$decimal = $false\r\n$gdb_prompt $" {
95         pass "print value of (0 && (x*y))"
96       }
97     -re ".*$gdb_prompt $" { fail "print value of (0 && (x*y))" }
98     timeout           { fail "(timeout) print value of (0 && (x*y))" }
99   }
100
101
102
103 send_gdb "print (0 && (x/y))\n"
104 gdb_expect {
105     -re ".$decimal = $false\r\n$gdb_prompt $" {
106         pass "print value of (0 && (x/y))"
107       }
108     -re ".*$gdb_prompt $" { fail "print value of (0 && (x/y))" }
109     timeout           { fail "(timeout) print value of (0 && (x/y))" }
110   }
111
112
113 send_gdb "print (0 && (x%y))\n"
114 gdb_expect {
115     -re ".$decimal = $false\r\n$gdb_prompt $" {
116         pass "print value of (0 && (x%y))"
117       }
118     -re ".*$gdb_prompt $" { fail "print value of (0 && (x%y))" }
119     timeout           { fail "(timeout) print value of (0 && (x%y))" }
120   }
121
122
123 send_gdb "print (0 && (x&&y))\n"
124 gdb_expect {
125     -re ".$decimal = $false\r\n$gdb_prompt $" {
126         pass "print value of (0 && (x&&y))"
127       }
128     -re ".*$gdb_prompt $" { fail "print value of (0 && (x&&y))" }
129     timeout           { fail "(timeout) print value of (0 && (x&&y))" }
130   }
131
132
133
134 send_gdb "print (0 && (x||y))\n"
135 gdb_expect {
136     -re ".$decimal = $false\r\n$gdb_prompt $" {
137         pass "print value of (0 && (x||y))"
138       }
139     -re ".*$gdb_prompt $" { fail "print value of (0 && (x||y))" }
140     timeout           { fail "(timeout) print value of (0 && (x||y))" }
141   }
142
143
144
145 send_gdb "print (0 && (x&y))\n"
146 gdb_expect {
147     -re ".$decimal = $false\r\n$gdb_prompt $" {
148         pass "print value of (0 && (x&y))"
149       }
150     -re ".*$gdb_prompt $" { fail "print value of (0 && (x&y))" }
151     timeout           { fail "(timeout) print value of (0 && (x&y))" }
152   }
153
154
155 send_gdb "print (0 && (x|y))\n"
156 gdb_expect {
157     -re ".$decimal = $false\r\n$gdb_prompt $" {
158         pass "print value of (0 && (x|y))"
159       }
160     -re ".*$gdb_prompt $" { fail "print value of (0 && (x|y))" }
161     timeout           { fail "(timeout) print value of (0 && (x|y))" }
162   }
163
164
165 send_gdb "print (0 && (x^y))\n"
166 gdb_expect {
167     -re ".$decimal = $false\r\n$gdb_prompt $" {
168         pass "print value of (0 && (x^y))"
169       }
170     -re ".*$gdb_prompt $" { fail "print value of (0 && (x^y))" }
171     timeout           { fail "(timeout) print value of (0 && (x^y))" }
172   }
173
174
175
176 send_gdb "print (0 && (x < y))\n"
177 gdb_expect {
178     -re ".$decimal = $false\r\n$gdb_prompt $" {
179         pass "print value of (0 && (x < y))"
180       }
181     -re ".*$gdb_prompt $" { fail "print value of (0 && (x < y))" }
182     timeout           { fail "(timeout) print value of (0 && (x < y))" }
183   }
184
185
186 send_gdb "print (0 && (x <= y))\n"
187 gdb_expect {
188     -re ".$decimal = $false\r\n$gdb_prompt $" {
189         pass "print value of (0 && (x <= y))"
190       }
191     -re ".*$gdb_prompt $" { fail "print value of (0 && (x <= y))" }
192     timeout           { fail "(timeout) print value of (0 && (x <= y))" }
193   }
194
195
196
197 send_gdb "print (0 && (x>y))\n"
198 gdb_expect {
199     -re ".$decimal = $false\r\n$gdb_prompt $" {
200         pass "print value of (0 && (x>y))"
201       }
202     -re ".*$gdb_prompt $" { fail "print value of (0 && (x>y))" }
203     timeout           { fail "(timeout) print value of (0 && (x>y))" }
204   }
205
206
207 send_gdb "print (0 && (x>=y))\n"
208 gdb_expect {
209     -re ".$decimal = $false\r\n$gdb_prompt $" {
210         pass "print value of (0 && (x>=y))"
211       }
212     -re ".*$gdb_prompt $" { fail "print value of (0 && (x>=y))" }
213     timeout           { fail "(timeout) print value of (0 && (x>=y))" }
214   }
215
216
217
218 send_gdb "print (0 && (x==y))\n"
219 gdb_expect {
220     -re ".$decimal = $false\r\n$gdb_prompt $" {
221         pass "print value of (0 && (x==y))"
222       }
223     -re ".*$gdb_prompt $" { fail "print value of (0 && (x==y))" }
224     timeout           { fail "(timeout) print value of (0 && (x==y))" }
225   }
226
227
228 send_gdb "print (0 && (x!=y))\n"
229 gdb_expect {
230     -re ".$decimal = $false\r\n$gdb_prompt $" {
231         pass "print value of (0 && (x!=y))"
232       }
233     -re ".*$gdb_prompt $" { fail "print value of (0 && (x!=y))" }
234     timeout           { fail "(timeout) print value of (0 && (x!=y))" }
235   }
236
237
238 send_gdb "print (0 && (x<<31))\n"
239 gdb_expect {
240     -re ".$decimal = $false\r\n$gdb_prompt $" {
241         pass "print value of (0 && (x<<31))"
242       }
243     -re ".*$gdb_prompt $" { fail "print value of (0 && (x<<31))" }
244     timeout           { fail "(timeout) print value of (0 && (x<<31))" }
245   }
246
247
248 send_gdb "print (0 && (x>>31))\n"
249 gdb_expect {
250     -re ".$decimal = $false\r\n$gdb_prompt $" {
251         pass "print value of (0 && (x>>31))"
252       }
253     -re ".*$gdb_prompt $" { fail "print value of (0 && (x>>31))" }
254     timeout           { fail "(timeout) print value of (0 && (x>>31))" }
255   }
256
257
258
259 send_gdb "print (0 && (!x))\n"
260 gdb_expect {
261     -re ".$decimal = $false\r\n$gdb_prompt $" {
262         pass "print value of (0 && (!x))"
263       }
264     -re ".*$gdb_prompt $" { fail "print value of (0 && (!x))" }
265     timeout           { fail "(timeout) print value of (0 && (!x))" }
266   }
267
268
269 send_gdb "print (0 && (~x))\n"
270 gdb_expect {
271     -re ".$decimal = $false\r\n$gdb_prompt $" {
272         pass "print value of (0 && (~x))"
273       }
274     -re ".*$gdb_prompt $" { fail "print value of (0 && (~x))" }
275     timeout           { fail "(timeout) print value of (0 && (~x))" }
276   }
277
278 send_gdb "print (0 && (-x))\n"
279 gdb_expect {
280     -re ".$decimal = $false\r\n$gdb_prompt $" {
281         pass "print value of (0 && (-x))"
282       }
283     -re ".*$gdb_prompt $" { fail "print value of (0 && (-x))" }
284     timeout           { fail "(timeout) print value of (0 && (-x))" }
285   }
286
287
288 send_gdb "print (0 && (x++))\n"
289 gdb_expect {
290     -re ".$decimal = $false\r\n$gdb_prompt $" {
291         pass "print value of (0 && (x++))"
292       }
293     -re ".*$gdb_prompt $" { fail "print value of (0 && (x++))" }
294     timeout           { fail "(timeout) print value of (0 && (x++))" }
295   }
296
297
298 send_gdb "print (0 && (++x))\n"
299 gdb_expect {
300     -re ".$decimal = $false\r\n$gdb_prompt $" {
301         pass "print value of (0 && (++x))"
302       }
303     -re ".*$gdb_prompt $" { fail "print value of (0 && (++x))" }
304     timeout           { fail "(timeout) print value of (0 && (++x))" }
305   }
306
307
308 send_gdb "print (0 && (x--))\n"
309 gdb_expect {
310     -re ".$decimal = $false\r\n$gdb_prompt $" {
311         pass "print value of (0 && (x--))"
312       }
313     -re ".*$gdb_prompt $" { fail "print value of (0 && (x--))" }
314     timeout           { fail "(timeout) print value of (0 && (x--))" }
315   }
316
317
318 send_gdb "print (0 && (--x))\n"
319 gdb_expect {
320     -re ".$decimal = $false\r\n$gdb_prompt $" {
321         pass "print value of (0 && (--x))"
322       }
323     -re ".*$gdb_prompt $" { fail "print value of (0 && (--x))" }
324     timeout           { fail "(timeout) print value of (0 && (--x))" }
325   }
326
327 send_gdb "print (0 && (x+=7))\n"
328 gdb_expect {
329     -re ".$decimal = $false\r\n$gdb_prompt $" {
330         pass "print value of (0 && (x+=7))"
331       }
332     -re ".*$gdb_prompt $" { fail "print value of (0 && (x+=7))" }
333     timeout           { fail "(timeout) print value of (0 && (x+=7))" }
334   }
335
336 send_gdb "print (0 && (x=y))\n"
337 gdb_expect {
338     -re ".$decimal = $false\r\n$gdb_prompt $" {
339         pass "print value of (0 && (x=y))"
340       }
341     -re ".*$gdb_prompt $" { fail "print value of (0 && (x=y))" }
342     timeout           { fail "(timeout) print value of (0 && (x=y))" }
343   }
344
345 gdb_exit
346 return 0
347
348
349
350
351
352
353