Reorganized GDB tests - base
[external/binutils.git] / gdb / testsuite / gdb.base / exprs.exp
1 #   Copyright (C) 1988, 1990, 1991, 1992 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., 675 Mass Ave, Cambridge, MA 02139, 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 Rob Savoye. (rob@cygnus.com)
21
22 if $tracelevel then {
23         strace $tracelevel
24         }
25
26 #
27 # test running programs
28 #
29 set prms_id 0
30 set bug_id 0
31
32 set binfile "exprs"
33
34 if ![file exists $objdir/$subdir/$binfile] then {
35     perror "$objdir/$subdir/$binfile does not exist."
36     return 0
37 }
38
39 gdb_exit
40 gdb_start
41 gdb_reinitialize_dir $srcdir/$subdir
42 gdb_load $objdir/$subdir/$binfile
43
44 #
45 # set it up at a breakpoint so we can play with the variable values
46 #
47
48 if ![runto main] then {
49     perror "couldn't run to breakpoint"
50     continue
51 }
52
53 #
54 # test expressions with "char" types
55 #
56 send "set variable v_char=127\n"
57 expect {
58     -re "set.*$prompt $" {
59         send "print v_char == 0\n"
60         expect {
61             -re "print.*.\[0-9\]* = 0.*$prompt $" {
62                 send "print v_char == 127\n"
63                 expect {
64                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print char ==" }
65                     -re "$prompt $"                      { fail "print char ==" }
66                     timeout                              { fail "(timeout) print char ==" }
67                 }
68             }
69             -re "$prompt $"                      { fail "print char ==" }
70             timeout                              { fail "(timeout) print char ==" }
71         }
72     }
73     -re "$prompt $"                              { fail "print char ==" }
74     timeout                                      { fail "(timeout) print char ==" }
75 }
76
77
78 send "set variable v_char=127\n"
79 expect {
80     -re "set.*$prompt $" {
81         send "print v_char != 0\n"
82         expect {
83             -re "print.*.\[0-9\]* = 1.*$prompt $" {
84                 send "print v_char != 127\n"
85                 expect {
86                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print char !=" }
87                     -re "$prompt $"                      { fail "print char !=" }
88                     timeout                              { fail "(timeout) print char !=" }
89                 }
90             }
91             -re "$prompt $"                      { fail "print char !=" }
92             timeout                              { fail "(timeout) print char !=" }
93         }
94     }
95     -re "$prompt $"                              { fail "print char !=" }
96     timeout                                      { fail "(timeout) print char !=" }
97 }
98
99
100 send "set variable v_char=127\n"
101 expect {
102     -re "set.*$prompt $" {
103         send "print v_char < 0\n"
104         expect {
105             -re "print.*.\[0-9\]* = 0.*$prompt $" {
106                 send "print v_char < 127\n"
107                 expect {
108                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print char <" }
109                     -re "$prompt $"                      { fail "print char <" }
110                     timeout                              { fail "(timeout) print char <" }
111                 }
112             }
113             -re "$prompt $"                      { fail "print char <" }
114             timeout                              { fail "(timeout) print char <" }
115         }
116     }
117     -re "$prompt $"                              { fail "print char <" }
118     timeout                                      { fail "(timeout) print char <" }
119 }
120
121
122 send "set variable v_char=127\n"
123 expect {
124     -re "set.*$prompt $" {
125         send "print v_char > 0\n"
126         expect {
127             -re "print.*.\[0-9\]* = 1.*$prompt $" {
128                 send "print v_char > 127\n"
129                 expect {
130                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print char >" }
131                     -re "$prompt $"                      { fail "print char >" }
132                     timeout                              { fail "(timeout) print char >" }
133                 }
134             }
135             -re "$prompt $"                      { fail "print char >" }
136             timeout                              { fail "(timeout) print char >" }
137         }
138     }
139     -re "$prompt $"                              { fail "print char >" }
140     timeout                                      { fail "(timeout) print char >" }
141 }
142
143
144 #
145 # test expressions with "signed char" types
146 #
147 send "set variable v_signed_char=127\n"
148 expect {
149     -re "set.*$prompt $" {
150         send "print v_signed_char == 0\n"
151         expect {
152             -re "print.*.\[0-9\]* = 0.*$prompt $" {
153                 send "print v_signed_char == 127\n"
154                 expect {
155                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed char ==" }
156                     -re "$prompt $"                      { fail "print signed char ==" }
157                     timeout                              { fail "(timeout) print signed char ==" }
158                 }
159             }
160             -re "$prompt $"                      { fail "print signed char ==" }
161             timeout                              { fail "(timeout) print signed char ==" }
162         }
163     }
164     -re "$prompt $"                              { fail "print signed char ==" }
165     timeout                                      { fail "(timeout) print signed char ==" }
166 }
167
168
169 send "set variable v_signed_char=127\n"
170 expect {
171     -re "set.*$prompt $" {
172         send "print v_signed_char != 0\n"
173         expect {
174             -re "print.*.\[0-9\]* = 1.*$prompt $" {
175                 send "print v_signed_char != 127\n"
176                 expect {
177                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed char !=" }
178                     -re "$prompt $"                      { fail "print signed char !=" }
179                     timeout                              { fail "(timeout) print signed char !=" }
180                 }
181             }
182             -re "$prompt $"                      { fail "print signed char !=" }
183             timeout                              { fail "(timeout) print signed char !=" }
184         }
185     }
186     -re "$prompt $"                              { fail "print signed char !=" }
187     timeout                                      { fail "(timeout) print signed char !=" }
188 }
189
190
191 send "set variable v_signed_char=127\n"
192 expect {
193     -re "set.*$prompt $" {
194         send "print v_signed_char < 0\n"
195         expect {
196             -re "print.*.\[0-9\]* = 0.*$prompt $" {
197                 send "print v_signed_char < 127\n"
198                 expect {
199                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed char <" }
200                     -re "$prompt $"                      { fail "print signed char <" }
201                     timeout                              { fail "(timeout) print signed char <" }
202                 }
203             }
204             -re "$prompt $"                      { fail "print signed char <" }
205             timeout                              { fail "(timeout) print signed char <" }
206         }
207     }
208     -re "$prompt $"                              { fail "print signed char <" }
209     timeout                                      { fail "(timeout) print signed char <" }
210 }
211
212
213 send "set variable v_signed_char=127\n"
214 expect {
215     -re "set.*$prompt $" {
216         send "print v_signed_char > 0\n"
217         expect {
218             -re "print.*.\[0-9\]* = 1.*$prompt $" {
219                 send "print v_signed_char > 127\n"
220                 expect {
221                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed char >" }
222                     -re "$prompt $"                      { fail "print signed char >" }
223                     timeout                              { fail "(timeout) print signed char >" }
224                 }
225             }
226             -re "$prompt $"                      { fail "print signed char >" }
227             timeout                              { fail "(timeout) print signed char >" }
228         }
229     }
230     -re "$prompt $"                              { fail "print signed char >" }
231     timeout                                      { fail "(timeout) print signed char >" }
232 }
233
234
235 # make char a minus
236 send "set variable v_signed_char=-1\n"
237 expect {
238     -re "set.*$prompt $" {
239         send "print v_signed_char == 0\n"
240         expect {
241             -re "print.*.\[0-9\]* = 0.*$prompt $" {
242                 send "print v_signed_char == -1\n"
243                 expect {
244                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed char == (minus)" }
245                     -re "$prompt $"                      { fail "print signed char == (minus)" }
246                     timeout                              { fail "(timeout) print signed char == (minus)" }
247                 }
248             }
249             -re "$prompt $"                      { fail "print signed char == (minus)" }
250             timeout                              { fail "(timeout) print signed char == (minus)" }
251         }
252     }
253     -re "$prompt $"                              { fail "print signed char == (minus)" }
254     timeout                                      { fail "(timeout) print signed char == (minus)" }
255 }
256
257
258 send "set variable v_signed_char=-1\n"
259 expect {
260     -re "set.*$prompt $" {
261         send "print v_signed_char != 0\n"
262         expect {
263             -re "print.*.\[0-9\]* = 1.*$prompt $" {
264                 send "print v_signed_char != -1\n"
265                 expect {
266                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed char != (minus)" }
267                     -re "$prompt $"                      { fail "print signed char != (minus)" }
268                     timeout                              { fail "(timeout) print signed char != (minus)" }
269                 }
270             }
271             -re "$prompt $"                      { fail "print signed char != (minus)" }
272             timeout                              { fail "(timeout) print signed char != (minus)" }
273         }
274     }
275     -re "$prompt $"                              { fail "print signed char != (minus)" }
276     timeout                                      { fail "(timeout) print signed char != (minus)" }
277 }
278
279
280 send "set variable v_signed_char=-1\n"
281 expect {
282     -re "set.*$prompt $" {
283         send "print v_signed_char < 0\n"
284         expect {
285             -re "print.*.\[0-9\]* = 1.*$prompt $" {
286                 send "print v_signed_char < 127\n"
287                 expect {
288                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed char < (minus)" }
289                     -re "$prompt $"                      { fail "print signed char < (minus)" }
290                     timeout                              { fail "(timeout) print signed char < (minus)" }
291                 }
292             }
293             -re "$prompt $"                      { fail "print signed char < (minus)" }
294             timeout                              { fail "(timeout) print signed char < (minus)" }
295         }
296     }
297     -re "$prompt $"                              { fail "print signed char < (minus)" }
298     timeout                                      { fail "(timeout) print signed char < (minus)" }
299 }
300
301
302 send "set variable v_signed_char=-1\n"
303 expect {
304     -re "set.*$prompt $" {
305         send "print v_signed_char > 0\n"
306         expect {
307             -re "print.*.\[0-9\]* = 0.*$prompt $" {
308                 send "print v_signed_char > 127\n"
309                 expect {
310                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed char > (minus)" }
311                     -re "$prompt $"                      { fail "print signed char > (minus)" }
312                     timeout                              { fail "(timeout) print signed char > (minus)" }
313                 }
314             }
315             -re "$prompt $"                      { fail "print signed char > (minus)" }
316             timeout                              { fail "(timeout) print signed char > (minus)" }
317         }
318     }
319     -re "$prompt $"                              { fail "print signed char > (minus)" }
320     timeout                                      { fail "(timeout) print signed char > (minus)" }
321 }
322
323
324 #
325 # test expressions with "unsigned char" types
326 #
327 send "set variable v_unsigned_char=127\n"
328 expect {
329     -re "set.*$prompt $" {
330         send "print v_unsigned_char == 0\n"
331         expect {
332             -re "print.*.\[0-9\]* = 0.*$prompt $" {
333                 send "print v_unsigned_char == 127\n"
334                 expect {
335                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned char ==" }
336                     -re "$prompt $"                      { fail "print unsigned char ==" }
337                     timeout                              { fail "(timeout) print unsigned char ==" }
338                 }
339             }
340             -re "$prompt $"                      { fail "print unsigned char ==" }
341             timeout                              { fail "(timeout) print unsigned char ==" }
342         }
343     }
344     -re "$prompt $"                              { fail "print unsigned char ==" }
345     timeout                                      { fail "(timeout) print unsigned char ==" }
346 }
347
348
349 send "set variable v_unsigned_char=127\n"
350 expect {
351     -re "set.*$prompt $" {
352         send "print v_unsigned_char != 0\n"
353         expect {
354             -re "print.*.\[0-9\]* = 1.*$prompt $" {
355                 send "print v_unsigned_char != 127\n"
356                 expect {
357                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned char !=" }
358                     -re "$prompt $"                      { fail "print unsigned char !=" }
359                     timeout                              { fail "(timeout) print unsigned char !=" }
360                 }
361             }
362             -re "$prompt $"                      { fail "print unsigned char !=" }
363             timeout                              { fail "(timeout) print unsigned char !=" }
364         }
365     }
366     -re "$prompt $"                              { fail "print unsigned char !=" }
367     timeout                                      { fail "(timeout) print unsigned char !=" }
368 }
369
370
371 send "set variable v_unsigned_char=127\n"
372 expect {
373     -re "set.*$prompt $" {
374         send "print v_unsigned_char < 0\n"
375         expect {
376             -re "print.*.\[0-9\]* = 0.*$prompt $" {
377                 send "print v_unsigned_char < 127\n"
378                 expect {
379                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned char <" }
380                     -re "$prompt $"                      { fail "print unsigned char <" }
381                     timeout                              { fail "(timeout) print unsigned char <" }
382                 }
383             }
384             -re "$prompt $"                      { fail "print unsigned char <" }
385             timeout                              { fail "(timeout) print unsigned char <" }
386         }
387     }
388     -re "$prompt $"                              { fail "print unsigned char <" }
389     timeout                                      { fail "(timeout) print unsigned char <" }
390 }
391
392
393 send "set variable v_unsigned_char=127\n"
394 expect {
395     -re "set.*$prompt $" {
396         send "print v_unsigned_char > 0\n"
397         expect {
398             -re "print.*.\[0-9\]* = 1.*$prompt $" {
399                 send "print v_unsigned_char > 127\n"
400                 expect {
401                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned char >" }
402                     -re "$prompt $"                      { fail "print unsigned char >" }
403                     timeout                              { fail "(timeout) print unsigned char >" }
404                 }
405             }
406             -re "$prompt $"                      { fail "print unsigned char >" }
407             timeout                              { fail "(timeout) print unsigned char >" }
408         }
409     }
410     -re "$prompt $"                              { fail "print unsigned char >" }
411     timeout                                      { fail "(timeout) print unsigned char >" }
412 }
413
414
415 # make char a minus
416 # FIXME:  gdb mishandles the cast (unsigned char) on the i960, so I've
417 # set up an expected failure for this case.
418 send "set variable v_unsigned_char=~0\n"
419 expect {
420     -re "set.*$prompt $" {
421         send "print v_unsigned_char == 0\n"
422         expect {
423             -re "print.*.\[0-9\]* = 0.*$prompt $" {
424                 send "print v_unsigned_char == ~0\n"
425                 expect {
426                     -re "print.*.\[0-9\]* = 0.*$prompt $" {
427                         setup_xfail "i960-*-*" 1821
428                         send "print v_unsigned_char == (unsigned char)~0\n"
429                         expect {
430                             -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned char == (~0)" }
431                             -re "$prompt $"                      { fail "print unsigned char == (~0)" }
432                             timeout                              { fail "(timeout) print unsigned char == (~0)" }
433                         }
434                     }
435                     -re "$prompt $"                      { fail "print unsigned char == (~0)" }
436                     timeout                              { fail "(timeout) print unsigned char == (~0)" }
437                 }
438             }
439             -re "$prompt $"                      { fail "print unsigned char == (~0)" }
440             timeout                              { fail "(timeout) print unsigned char == (~0)" }
441         }
442     }
443     -re "$prompt $"                              { fail "print unsigned char == (~0)" }
444     timeout                                      { fail "(timeout) print unsigned char == (~0)" }
445 }
446
447
448 # FIXME:  gdb mishandles the cast (unsigned char) on the i960, so I've
449 # set up an expected failure for this case.
450 send "set variable v_unsigned_char=~0\n"
451 expect {
452     -re "set.*$prompt $" {
453         send "print v_unsigned_char != 0\n"
454         expect {
455             -re "print.*.\[0-9\]* = 1.*$prompt $" {
456                 setup_xfail "i960-*-*" 1821
457                 send "print v_unsigned_char != (unsigned char)~0\n"
458                 expect {
459                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned char != (~0)" }
460                     -re "$prompt $"                      { fail "print unsigned char != (~0)" }
461                     timeout                              { fail "(timeout) print unsigned char != (~0)" }
462                 }
463             }
464             -re "$prompt $"                      { fail "print unsigned char != (~0)" }
465             timeout                              { fail "(timeout) print unsigned char != (~0)" }
466         }
467     }
468     -re "$prompt $"                              { fail "print unsigned char != (~0)" }
469     timeout                                      { fail "(timeout) print unsigned char != (~0)" }
470 }
471
472
473 send "set variable v_unsigned_char=~0\n"
474 expect {
475     -re "set.*$prompt $" {
476         send "print v_unsigned_char < 0\n"
477         expect {
478             -re "print.*.\[0-9\]* = 0.*$prompt $" {
479                 send "print v_unsigned_char < 127\n"
480                 expect {
481                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned char < (~0)" }
482                     -re "$prompt $"                      { fail "print unsigned char < (~0)" }
483                     timeout                              { fail "(timeout) print unsigned char < (~0)" }
484                 }
485             }
486             -re "$prompt $"                      { fail "print unsigned char < (~0)" }
487             timeout                              { fail "(timeout) print unsigned char < (~0)" }
488         }
489     }
490     -re "$prompt $"                              { fail "print unsigned char < (~0)" }
491     timeout                                      { fail "(timeout) print unsigned char < (~0)" }
492 }
493
494
495 send "set variable v_unsigned_char=~0\n"
496 expect {
497     -re "set.*$prompt $" {
498         send "print v_unsigned_char > 0\n"
499         expect {
500             -re "print.*.\[0-9\]* = 1.*$prompt $" {
501                 send "print v_unsigned_char > 127\n"
502                 expect {
503                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned char > (~0)" }
504                     -re "$prompt $"                      { fail "print unsigned char > (~0)" }
505                     timeout                              { fail "(timeout) print unsigned char > (~0)" }
506                 }
507             }
508             -re "$prompt $"                      { fail "print unsigned char > (~0)" }
509             timeout                              { fail "(timeout) print unsigned char > (~0)" }
510         }
511     }
512     -re "$prompt $"                              { fail "print unsigned char > (~0)" }
513     timeout                                      { fail "(timeout) print unsigned char > (~0)" }
514 }
515
516
517 #
518 # test expressions with "short" types
519 #
520 send "set variable v_short=0x7FFF\n"
521 expect {
522     -re "set.*$prompt $" {
523         send "print v_short == 0\n"
524         expect {
525             -re "print.*.\[0-9\]* = 0.*$prompt $" {
526                 send "print v_short == 0x7FFF\n"
527                 expect {
528                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed short ==" }
529                     -re "$prompt $"                      { fail "print signed short ==" }
530                     timeout                              { fail "(timeout) print signed short ==" }
531                 }
532             }
533             -re "$prompt $"                      { fail "print signed short ==" }
534             timeout                              { fail "(timeout) print signed short ==" }
535         }
536     }
537     -re "$prompt $"                              { fail "print signed short ==" }
538     timeout                                      { fail "(timeout) print signed short ==" }
539 }
540
541
542 send "set variable v_short=0x7FFF\n"
543 expect {
544     -re "set.*$prompt $" {
545         send "print v_short != 0\n"
546         expect {
547             -re "print.*.\[0-9\]* = 1.*$prompt $" {
548                 send "print v_short != 0x7FFF\n"
549                 expect {
550                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed short !=" }
551                     -re "$prompt $"                      { fail "print signed short !=" }
552                     timeout                              { fail "(timeout) print signed short !=" }
553                 }
554             }
555             -re "$prompt $"                      { fail "print signed short !=" }
556             timeout                              { fail "(timeout) print signed short !=" }
557         }
558     }
559     -re "$prompt $"                              { fail "print signed short !=" }
560     timeout                                      { fail "(timeout) print signed short !=" }
561 }
562
563
564 send "set variable v_short=0x7FFF\n"
565 expect {
566     -re "set.*$prompt $" {
567         send "print v_short < 0\n"
568         expect {
569             -re "print.*.\[0-9\]* = 0.*$prompt $" {
570                 send "print v_short < 0x7FFF\n"
571                 expect {
572                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed short <" }
573                     -re "$prompt $"                      { fail "print signed short <" }
574                     timeout                              { fail "(timeout) print signed short <" }
575                 }
576             }
577             -re "$prompt $"                      { fail "print signed short <" }
578             timeout                              { fail "(timeout) print signed short <" }
579         }
580     }
581     -re "$prompt $"                              { fail "print signed short <" }
582     timeout                                      { fail "(timeout) print signed short <" }
583 }
584
585
586 send "set variable v_short=0x7FFF\n"
587 expect {
588     -re "set.*$prompt $" {
589         send "print v_short > 0\n"
590         expect {
591             -re "print.*.\[0-9\]* = 1.*$prompt $" {
592                 send "print v_short > 0x7FFF\n"
593                 expect {
594                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed short >" }
595                     -re "$prompt $"                      { fail "print signed short >" }
596                     timeout                              { fail "(timeout) print signed short >" }
597                 }
598             }
599             -re "$prompt $"                      { fail "print signed short >" }
600             timeout                              { fail "(timeout) print signed short >" }
601         }
602     }
603     -re "$prompt $"                              { fail "print signed short >" }
604     timeout                                      { fail "(timeout) print signed short >" }
605 }
606
607
608 # make short a minus
609 send "set variable v_short=-1\n"
610 expect {
611     -re "set.*$prompt $" {
612         send "print v_short == 0\n"
613         expect {
614             -re "print.*.\[0-9\]* = 0.*$prompt $" {
615                 send "print v_short == -1\n"
616                 expect {
617                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed short == (minus)" }
618                     -re "$prompt $"                      { fail "print signed short == (minus)" }
619                     timeout                              { fail "(timeout) print signed short == (minus)" }
620                 }
621             }
622             -re "$prompt $"                      { fail "print signed short == (minus)" }
623             timeout                              { fail "(timeout) print signed short == (minus)" }
624         }
625     }
626     -re "$prompt $"                              { fail "print signed short == (minus)" }
627     timeout                                      { fail "(timeout) print signed short == (minus)" }
628 }
629
630
631 send "set variable v_short=-1\n"
632 expect {
633     -re "set.*$prompt $" {
634         send "print v_short != 0\n"
635         expect {
636             -re "print.*.\[0-9\]* = 1.*$prompt $" {
637                 send "print v_short != -1\n"
638                 expect {
639                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed short != (minus)" }
640                     -re "$prompt $"                      { fail "print signed short != (minus)" }
641                     timeout                              { fail "(timeout) print signed short != (minus)" }
642                 }
643             }
644             -re "$prompt $"                      { fail "print signed short != (minus)" }
645             timeout                              { fail "(timeout) print signed short != (minus)" }
646         }
647     }
648     -re "$prompt $"                              { fail "print signed short != (minus)" }
649     timeout                                      { fail "(timeout) print signed short != (minus)" }
650 }
651
652
653 send "set variable v_short=-1\n"
654 expect {
655     -re "set.*$prompt $" {
656         send "print v_short < 0\n"
657         expect {
658             -re "print.*.\[0-9\]* = 1.*$prompt $" {
659                 send "print v_short < 0x7FFF\n"
660                 expect {
661                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed short < (minus)" }
662                     -re "$prompt $"                      { fail "print signed short < (minus)" }
663                     timeout                              { fail "(timeout) print signed short < (minus)" }
664                 }
665             }
666             -re "$prompt $"                      { fail "print signed short < (minus)" }
667             timeout                              { fail "(timeout) print signed short < (minus)" }
668         }
669     }
670     -re "$prompt $"                              { fail "print signed short < (minus)" }
671     timeout                                      { fail "(timeout) print signed short < (minus)" }
672 }
673
674
675 send "set variable v_short=-1\n"
676 expect {
677     -re "set.*$prompt $" {
678         send "print v_short > 0\n"
679         expect {
680             -re "print.*.\[0-9\]* = 0.*$prompt $" {
681                 send "print v_short > 0x7FFF\n"
682                 expect {
683                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed short > (minus)" }
684                     -re "$prompt $"                      { fail "print signed short > (minus)" }
685                     timeout                              { fail "(timeout) print signed short > (minus)" }
686                 }
687             }
688             -re "$prompt $"                      { fail "print signed short > (minus)" }
689             timeout                              { fail "(timeout) print signed short > (minus)" }
690         }
691     }
692     -re "$prompt $"                              { fail "print signed short > (minus)" }
693     timeout                                      { fail "(timeout) print signed short > (minus)" }
694 }
695
696
697 #
698 # test expressions with "signed short" types
699 #
700 send "set variable v_signed_short=0x7FFF\n"
701 expect {
702     -re "set.*$prompt $" {
703         send "print v_signed_short == 0\n"
704         expect {
705             -re "print.*.\[0-9\]* = 0.*$prompt $" {
706                 send "print v_signed_short == 0x7FFF\n"
707                 expect {
708                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed signed short ==" }
709                     -re "$prompt $"                      { fail "print signed signed short ==" }
710                     timeout                              { fail "(timeout) print signed signed short ==" }
711                 }
712             }
713             -re "$prompt $"                      { fail "print signed signed short ==" }
714             timeout                              { fail "(timeout) print signed signed short ==" }
715         }
716     }
717     -re "$prompt $"                              { fail "print signed signed short ==" }
718     timeout                                      { fail "(timeout) print signed signed short ==" }
719 }
720
721
722 send "set variable v_signed_short=0x7FFF\n"
723 expect {
724     -re "set.*$prompt $" {
725         send "print v_signed_short != 0\n"
726         expect {
727             -re "print.*.\[0-9\]* = 1.*$prompt $" {
728                 send "print v_signed_short != 0x7FFF\n"
729                 expect {
730                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed short !=" }
731                     -re "$prompt $"                      { fail "print signed signed short !=" }
732                     timeout                              { fail "(timeout) print signed signed short !=" }
733                 }
734             }
735             -re "$prompt $"                      { fail "print signed signed short !=" }
736             timeout                              { fail "(timeout) print signed signed short !=" }
737         }
738     }
739     -re "$prompt $"                              { fail "print signed signed short !=" }
740     timeout                                      { fail "(timeout) print signed signed short !=" }
741 }
742
743
744 send "set variable v_signed_short=0x7FFF\n"
745 expect {
746     -re "set.*$prompt $" {
747         send "print v_signed_short < 0\n"
748         expect {
749             -re "print.*.\[0-9\]* = 0.*$prompt $" {
750                 send "print v_signed_short < 0x7FFF\n"
751                 expect {
752                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed short <" }
753                     -re "$prompt $"                      { fail "print signed signed short <" }
754                     timeout                              { fail "(timeout) print signed signed short <" }
755                 }
756             }
757             -re "$prompt $"                      { fail "print signed signed short <" }
758             timeout                              { fail "(timeout) print signed signed short <" }
759         }
760     }
761     -re "$prompt $"                              { fail "print signed signed short <" }
762     timeout                                      { fail "(timeout) print signed signed short <" }
763 }
764
765
766 send "set variable v_signed_short=0x7FFF\n"
767 expect {
768     -re "set.*$prompt $" {
769         send "print v_signed_short > 0\n"
770         expect {
771             -re "print.*.\[0-9\]* = 1.*$prompt $" {
772                 send "print v_signed_short > 0x7FFF\n"
773                 expect {
774                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed short >" }
775                     -re "$prompt $"                      { fail "print signed signed short >" }
776                     timeout                              { fail "(timeout) print signed signed short >" }
777                 }
778             }
779             -re "$prompt $"                      { fail "print signed signed short >" }
780             timeout                              { fail "(timeout) print signed signed short >" }
781         }
782     }
783     -re "$prompt $"                              { fail "print signed signed short >" }
784     timeout                                      { fail "(timeout) print signed signed short >" }
785 }
786
787
788 # make short a minus
789 send "set variable v_signed_short=-1\n"
790 expect {
791     -re "set.*$prompt $" {
792         send "print v_signed_short == 0\n"
793         expect {
794             -re "print.*.\[0-9\]* = 0.*$prompt $" {
795                 send "print v_signed_short == -1\n"
796                 expect {
797                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed signed short == (minus)" }
798                     -re "$prompt $"                      { fail "print signed signed short == (minus)" }
799                     timeout                              { fail "(timeout) print signed signed short == (minus)" }
800                 }
801             }
802             -re "$prompt $"                      { fail "print signed signed short == (minus)" }
803             timeout                              { fail "(timeout) print signed signed short == (minus)" }
804         }
805     }
806     -re "$prompt $"                              { fail "print signed signed short == (minus)" }
807     timeout                                      { fail "(timeout) print signed signed short == (minus)" }
808 }
809
810
811 send "set variable v_signed_short=-1\n"
812 expect {
813     -re "set.*$prompt $" {
814         send "print v_signed_short != 0\n"
815         expect {
816             -re "print.*.\[0-9\]* = 1.*$prompt $" {
817                 send "print v_signed_short != -1\n"
818                 expect {
819                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed short != (minus)" }
820                     -re "$prompt $"                      { fail "print signed signed short != (minus)" }
821                     timeout                              { fail "(timeout) print signed signed short != (minus)" }
822                 }
823             }
824             -re "$prompt $"                      { fail "print signed signed short != (minus)" }
825             timeout                              { fail "(timeout) print signed signed short != (minus)" }
826         }
827     }
828     -re "$prompt $"                              { fail "print signed signed short != (minus)" }
829     timeout                                      { fail "(timeout) print signed signed short != (minus)" }
830 }
831
832
833 send "set variable v_signed_short=-1\n"
834 expect {
835     -re "set.*$prompt $" {
836         send "print v_signed_short < 0\n"
837         expect {
838             -re "print.*.\[0-9\]* = 1.*$prompt $" {
839                 send "print v_signed_short < 0x7FFF\n"
840                 expect {
841                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed signed short < (minus)" }
842                     -re "$prompt $"                      { fail "print signed signed short < (minus)" }
843                     timeout                              { fail "(timeout) print signed signed short < (minus)" }
844                 }
845             }
846             -re "$prompt $"                      { fail "print signed signed short < (minus)" }
847             timeout                              { fail "(timeout) print signed signed short < (minus)" }
848         }
849     }
850     -re "$prompt $"                              { fail "print signed signed short < (minus)" }
851     timeout                                      { fail "(timeout) print signed signed short < (minus)" }
852 }
853
854
855 send "set variable v_signed_short=-1\n"
856 expect {
857     -re "set.*$prompt $" {
858         send "print v_signed_short > 0\n"
859         expect {
860             -re "print.*.\[0-9\]* = 0.*$prompt $" {
861                 send "print v_signed_short > 0x7FFF\n"
862                 expect {
863                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed short > (minus)" }
864                     -re "$prompt $"                      { fail "print signed signed short > (minus)" }
865                     timeout                              { fail "(timeout) print signed signed short > (minus)" }
866                 }
867             }
868             -re "$prompt $"                      { fail "print signed signed short > (minus)" }
869             timeout                              { fail "(timeout) print signed signed short > (minus)" }
870         }
871     }
872     -re "$prompt $"                              { fail "print signed signed short > (minus)" }
873     timeout                                      { fail "(timeout) print signed signed short > (minus)" }
874 }
875
876
877 #
878 # test expressions with "unsigned short" types
879 #
880 send "set variable v_unsigned_short=0x7FFF\n"
881 expect {
882     -re "set.*$prompt $" {
883         send "print v_unsigned_short == 0\n"
884         expect {
885             -re "print.*.\[0-9\]* = 0.*$prompt $" {
886                 send "print v_unsigned_short == 0x7FFF\n"
887                 expect {
888                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned short ==" }
889                     -re "$prompt $"                      { fail "print unsigned short ==" }
890                     timeout                              { fail "(timeout) print unsigned short ==" }
891                 }
892             }
893             -re "$prompt $"                      { fail "print unsigned short ==" }
894             timeout                              { fail "(timeout) print unsigned short ==" }
895         }
896     }
897     -re "$prompt $"                              { fail "print unsigned short ==" }
898     timeout                                      { fail "(timeout) print unsigned short ==" }
899 }
900
901
902 send "set variable v_unsigned_short=0x7FFF\n"
903 expect {
904     -re "set.*$prompt $" {
905         send "print v_unsigned_short != 0\n"
906         expect {
907             -re "print.*.\[0-9\]* = 1.*$prompt $" {
908                 send "print v_unsigned_short != 0x7FFF\n"
909                 expect {
910                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned short !=" }
911                     -re "$prompt $"                      { fail "print unsigned short !=" }
912                     timeout                              { fail "(timeout) print unsigned short !=" }
913                 }
914             }
915             -re "$prompt $"                      { fail "print unsigned short !=" }
916             timeout                              { fail "(timeout) print unsigned short !=" }
917         }
918     }
919     -re "$prompt $"                              { fail "print unsigned short !=" }
920     timeout                                      { fail "(timeout) print unsigned short !=" }
921 }
922
923
924 send "set variable v_unsigned_short=0x7FFF\n"
925 expect {
926     -re "set.*$prompt $" {
927         send "print v_unsigned_short < 0\n"
928         expect {
929             -re "print.*.\[0-9\]* = 0.*$prompt $" {
930                 send "print v_unsigned_short < 0x7FFF\n"
931                 expect {
932                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned short <" }
933                     -re "$prompt $"                      { fail "print unsigned short <" }
934                     timeout                              { fail "(timeout) print unsigned short <" }
935                 }
936             }
937             -re "$prompt $"                      { fail "print unsigned short <" }
938             timeout                              { fail "(timeout) print unsigned short <" }
939         }
940     }
941     -re "$prompt $"                              { fail "print unsigned short <" }
942     timeout                                      { fail "(timeout) print unsigned short <" }
943 }
944
945
946 send "set variable v_unsigned_short=0x7FFF\n"
947 expect {
948     -re "set.*$prompt $" {
949         send "print v_unsigned_short > 0\n"
950         expect {
951             -re "print.*.\[0-9\]* = 1.*$prompt $" {
952                 send "print v_unsigned_short > 0x7FFF\n"
953                 expect {
954                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned short >" }
955                     -re "$prompt $"                      { fail "print unsigned short >" }
956                     timeout                              { fail "(timeout) print unsigned short >" }
957                 }
958             }
959             -re "$prompt $"                      { fail "print unsigned short >" }
960             timeout                              { fail "(timeout) print unsigned short >" }
961         }
962     }
963     -re "$prompt $"                              { fail "print unsigned short >" }
964     timeout                                      { fail "(timeout) print unsigned short >" }
965 }
966
967
968 # make short a minus
969 send "set variable v_unsigned_short=~0\n"
970 expect {
971     -re "set.*$prompt $" {
972         send "print v_unsigned_short == 0\n"
973         expect {
974             -re "print.*.\[0-9\]* = 0.*$prompt $" {
975                 send "print v_unsigned_short == ~0\n"
976                 expect {
977                     -re "print.*.\[0-9\]* = 0.*$prompt $" {
978                         send "print v_unsigned_short == (unsigned short)~0\n"
979                         expect {
980                             -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned short == (~0)" }
981                             -re "$prompt $"                      { fail "print unsigned short == (~0)" }
982                             timeout                              { fail "(timeout) print unsigned short == (~0)" }
983                         }
984                     }
985                     -re "$prompt $"                      { fail "print unsigned short == (~0)" }
986                     timeout                              { fail "(timeout) print unsigned short == (~0)" }
987                 }
988             }
989             -re "$prompt $"                      { fail "print unsigned short == (~0)" }
990             timeout                              { fail "(timeout) print unsigned short == (~0)" }
991         }
992     }
993     -re "$prompt $"                              { fail "print unsigned short == (~0)" }
994     timeout                                      { fail "(timeout) print unsigned short == (~0)" }
995 }
996
997
998 send "set variable v_unsigned_short=~0\n"
999 expect {
1000     -re "set.*$prompt $" {
1001         send "print v_unsigned_short != 0\n"
1002         expect {
1003             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1004                 send "print v_unsigned_short != (unsigned short)~0\n"
1005                 expect {
1006                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned short != (~0)" }
1007                     -re "$prompt $"                      { fail "print unsigned short != (~0)" }
1008                     timeout                              { fail "(timeout) print unsigned short != (~0)" }
1009                 }
1010             }
1011             -re "$prompt $"                      { fail "print unsigned short != (~0)" }
1012             timeout                              { fail "(timeout) print unsigned short != (~0)" }
1013         }
1014     }
1015     -re "$prompt $"                              { fail "print unsigned short != (~0)" }
1016     timeout                                      { fail "(timeout) print unsigned short != (~0)" }
1017 }
1018
1019
1020 send "set variable v_unsigned_short=~0\n"
1021 expect {
1022     -re "set.*$prompt $" {
1023         send "print v_unsigned_short < 0\n"
1024         expect {
1025             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1026                 send "print v_unsigned_short < 0x7FFF\n"
1027                 expect {
1028                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned short < (~0)" }
1029                     -re "$prompt $"                      { fail "print unsigned short < (~0)" }
1030                     timeout                              { fail "(timeout) print unsigned short < (~0)" }
1031                 }
1032             }
1033             -re "$prompt $"                      { fail "print unsigned short < (~0)" }
1034             timeout                              { fail "(timeout) print unsigned short < (~0)" }
1035         }
1036     }
1037     -re "$prompt $"                              { fail "print unsigned short < (~0)" }
1038     timeout                                      { fail "(timeout) print unsigned short < (~0)" }
1039 }
1040
1041
1042 send "set variable v_unsigned_short=~0\n"
1043 expect {
1044     -re "set.*$prompt $" {
1045         send "print v_unsigned_short > 0\n"
1046         expect {
1047             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1048                 send "print v_unsigned_short > 0x7FFF\n"
1049                 expect {
1050                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned short > (~0)" }
1051                     -re "$prompt $"                      { fail "print unsigned short > (~0)" }
1052                     timeout                              { fail "(timeout) print unsigned short > (~0)" }
1053                 }
1054             }
1055             -re "$prompt $"                      { fail "print unsigned short > (~0)" }
1056             timeout                              { fail "(timeout) print unsigned short > (~0)" }
1057         }
1058     }
1059     -re "$prompt $"                              { fail "print unsigned short > (~0)" }
1060     timeout                                      { fail "(timeout) print unsigned short > (~0)" }
1061 }
1062
1063
1064 #
1065 # test expressions with "int" types
1066 #
1067 send "set variable v_int=0x7FFF\n"
1068 expect {
1069     -re "set.*$prompt $" {
1070         send "print v_int == 0\n"
1071         expect {
1072             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1073                 send "print v_int == 0x7FFF\n"
1074                 expect {
1075                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed int ==" }
1076                     -re "$prompt $"                      { fail "print signed int ==" }
1077                     timeout                              { fail "(timeout) print signed int ==" }
1078                 }
1079             }
1080             -re "$prompt $"                      { fail "print signed int ==" }
1081             timeout                              { fail "(timeout) print signed int ==" }
1082         }
1083     }
1084     -re "$prompt $"                              { fail "print signed int ==" }
1085     timeout                                      { fail "(timeout) print signed int ==" }
1086 }
1087
1088
1089 send "set variable v_int=0x7FFF\n"
1090 expect {
1091     -re "set.*$prompt $" {
1092         send "print v_int != 0\n"
1093         expect {
1094             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1095                 send "print v_int != 0x7FFF\n"
1096                 expect {
1097                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed int !=" }
1098                     -re "$prompt $"                      { fail "print signed int !=" }
1099                     timeout                              { fail "(timeout) print signed int !=" }
1100                 }
1101             }
1102             -re "$prompt $"                      { fail "print signed int !=" }
1103             timeout                              { fail "(timeout) print signed int !=" }
1104         }
1105     }
1106     -re "$prompt $"                              { fail "print signed int !=" }
1107     timeout                                      { fail "(timeout) print signed int !=" }
1108 }
1109
1110
1111 send "set variable v_int=0x7FFF\n"
1112 expect {
1113     -re "set.*$prompt $" {
1114         send "print v_int < 0\n"
1115         expect {
1116             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1117                 send "print v_int < 0x7FFF\n"
1118                 expect {
1119                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed int <" }
1120                     -re "$prompt $"                      { fail "print signed int <" }
1121                     timeout                              { fail "(timeout) print signed int <" }
1122                 }
1123             }
1124             -re "$prompt $"                      { fail "print signed int <" }
1125             timeout                              { fail "(timeout) print signed int <" }
1126         }
1127     }
1128     -re "$prompt $"                              { fail "print signed int <" }
1129     timeout                                      { fail "(timeout) print signed int <" }
1130 }
1131
1132
1133 send "set variable v_int=0x7FFF\n"
1134 expect {
1135     -re "set.*$prompt $" {
1136         send "print v_int > 0\n"
1137         expect {
1138             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1139                 send "print v_int > 0x7FFF\n"
1140                 expect {
1141                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed int >" }
1142                     -re "$prompt $"                      { fail "print signed int >" }
1143                     timeout                              { fail "(timeout) print signed int >" }
1144                 }
1145             }
1146             -re "$prompt $"                      { fail "print signed int >" }
1147             timeout                              { fail "(timeout) print signed int >" }
1148         }
1149     }
1150     -re "$prompt $"                              { fail "print signed int >" }
1151     timeout                                      { fail "(timeout) print signed int >" }
1152 }
1153
1154
1155 # make int a minus
1156 send "set variable v_int=-1\n"
1157 expect {
1158     -re "set.*$prompt $" {
1159         send "print v_int == 0\n"
1160         expect {
1161             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1162                 send "print v_int == -1\n"
1163                 expect {
1164                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed int == (minus)" }
1165                     -re "$prompt $"                      { fail "print signed int == (minus)" }
1166                     timeout                              { fail "(timeout) print signed int == (minus)" }
1167                 }
1168             }
1169             -re "$prompt $"                      { fail "print signed int == (minus)" }
1170             timeout                              { fail "(timeout) print signed int == (minus)" }
1171         }
1172     }
1173     -re "$prompt $"                              { fail "print signed int == (minus)" }
1174     timeout                                      { fail "(timeout) print signed int == (minus)" }
1175 }
1176
1177
1178 send "set variable v_int=-1\n"
1179 expect {
1180     -re "set.*$prompt $" {
1181         send "print v_int != 0\n"
1182         expect {
1183             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1184                 send "print v_int != -1\n"
1185                 expect {
1186                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed int != (minus)" }
1187                     -re "$prompt $"                      { fail "print signed int != (minus)" }
1188                     timeout                              { fail "(timeout) print signed int != (minus)" }
1189                 }
1190             }
1191             -re "$prompt $"                      { fail "print signed int != (minus)" }
1192             timeout                              { fail "(timeout) print signed int != (minus)" }
1193         }
1194     }
1195     -re "$prompt $"                              { fail "print signed int != (minus)" }
1196     timeout                                      { fail "(timeout) print signed int != (minus)" }
1197 }
1198
1199
1200 send "set variable v_int=-1\n"
1201 expect {
1202     -re "set.*$prompt $" {
1203         send "print v_int < 0\n"
1204         expect {
1205             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1206                 send "print v_int < 0x7FFF\n"
1207                 expect {
1208                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed int < (minus)" }
1209                     -re "$prompt $"                      { fail "print signed int < (minus)" }
1210                     timeout                              { fail "(timeout) print signed int < (minus)" }
1211                 }
1212             }
1213             -re "$prompt $"                      { fail "print signed int < (minus)" }
1214             timeout                              { fail "(timeout) print signed int < (minus)" }
1215         }
1216     }
1217     -re "$prompt $"                              { fail "print signed int < (minus)" }
1218     timeout                                      { fail "(timeout) print signed int < (minus)" }
1219 }
1220
1221
1222 send "set variable v_int=-1\n"
1223 expect {
1224     -re "set.*$prompt $" {
1225         send "print v_int > 0\n"
1226         expect {
1227             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1228                 send "print v_int > 0x7FFF\n"
1229                 expect {
1230                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed int > (minus)" }
1231                     -re "$prompt $"                      { fail "print signed int > (minus)" }
1232                     timeout                              { fail "(timeout) print signed int > (minus)" }
1233                 }
1234             }
1235             -re "$prompt $"                      { fail "print signed int > (minus)" }
1236             timeout                              { fail "(timeout) print signed int > (minus)" }
1237         }
1238     }
1239     -re "$prompt $"                              { fail "print signed int > (minus)" }
1240     timeout                                      { fail "(timeout) print signed int > (minus)" }
1241 }
1242
1243
1244 #
1245 # test expressions with "signed int" types
1246 #
1247 send "set variable v_signed_int=0x7FFF\n"
1248 expect {
1249     -re "set.*$prompt $" {
1250         send "print v_signed_int == 0\n"
1251         expect {
1252             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1253                 send "print v_signed_int == 0x7FFF\n"
1254                 expect {
1255                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed signed int ==" }
1256                     -re "$prompt $"                      { fail "print signed signed int ==" }
1257                     timeout                              { fail "(timeout) print signed signed int ==" }
1258                 }
1259             }
1260             -re "$prompt $"                      { fail "print signed signed int ==" }
1261             timeout                              { fail "(timeout) print signed signed int ==" }
1262         }
1263     }
1264     -re "$prompt $"                              { fail "print signed signed int ==" }
1265     timeout                                      { fail "(timeout) print signed signed int ==" }
1266 }
1267
1268
1269 send "set variable v_signed_int=0x7FFF\n"
1270 expect {
1271     -re "set.*$prompt $" {
1272         send "print v_signed_int != 0\n"
1273         expect {
1274             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1275                 send "print v_signed_int != 0x7FFF\n"
1276                 expect {
1277                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed int !=" }
1278                     -re "$prompt $"                      { fail "print signed signed int !=" }
1279                     timeout                              { fail "(timeout) print signed signed int !=" }
1280                 }
1281             }
1282             -re "$prompt $"                      { fail "print signed signed int !=" }
1283             timeout                              { fail "(timeout) print signed signed int !=" }
1284         }
1285     }
1286     -re "$prompt $"                              { fail "print signed signed int !=" }
1287     timeout                                      { fail "(timeout) print signed signed int !=" }
1288 }
1289
1290
1291 send "set variable v_signed_int=0x7FFF\n"
1292 expect {
1293     -re "set.*$prompt $" {
1294         send "print v_signed_int < 0\n"
1295         expect {
1296             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1297                 send "print v_signed_int < 0x7FFF\n"
1298                 expect {
1299                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed int <" }
1300                     -re "$prompt $"                      { fail "print signed signed int <" }
1301                     timeout                              { fail "(timeout) print signed signed int <" }
1302                 }
1303             }
1304             -re "$prompt $"                      { fail "print signed signed int <" }
1305             timeout                              { fail "(timeout) print signed signed int <" }
1306         }
1307     }
1308     -re "$prompt $"                              { fail "print signed signed int <" }
1309     timeout                                      { fail "(timeout) print signed signed int <" }
1310 }
1311
1312
1313 send "set variable v_signed_int=0x7FFF\n"
1314 expect {
1315     -re "set.*$prompt $" {
1316         send "print v_signed_int > 0\n"
1317         expect {
1318             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1319                 send "print v_signed_int > 0x7FFF\n"
1320                 expect {
1321                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed int >" }
1322                     -re "$prompt $"                      { fail "print signed signed int >" }
1323                     timeout                              { fail "(timeout) print signed signed int >" }
1324                 }
1325             }
1326             -re "$prompt $"                      { fail "print signed signed int >" }
1327             timeout                              { fail "(timeout) print signed signed int >" }
1328         }
1329     }
1330     -re "$prompt $"                              { fail "print signed signed int >" }
1331     timeout                                      { fail "(timeout) print signed signed int >" }
1332 }
1333
1334
1335 # make int a minus
1336 send "set variable v_signed_int=-1\n"
1337 expect {
1338     -re "set.*$prompt $" {
1339         send "print v_signed_int == 0\n"
1340         expect {
1341             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1342                 send "print v_signed_int == -1\n"
1343                 expect {
1344                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed signed int == (minus)" }
1345                     -re "$prompt $"                      { fail "print signed signed int == (minus)" }
1346                     timeout                              { fail "(timeout) print signed signed int == (minus)" }
1347                 }
1348             }
1349             -re "$prompt $"                      { fail "print signed signed int == (minus)" }
1350             timeout                              { fail "(timeout) print signed signed int == (minus)" }
1351         }
1352     }
1353     -re "$prompt $"                              { fail "print signed signed int == (minus)" }
1354     timeout                                      { fail "(timeout) print signed signed int == (minus)" }
1355 }
1356
1357
1358 send "set variable v_signed_int=-1\n"
1359 expect {
1360     -re "set.*$prompt $" {
1361         send "print v_signed_int != 0\n"
1362         expect {
1363             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1364                 send "print v_signed_int != -1\n"
1365                 expect {
1366                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed int != (minus)" }
1367                     -re "$prompt $"                      { fail "print signed signed int != (minus)" }
1368                     timeout                              { fail "(timeout) print signed signed int != (minus)" }
1369                 }
1370             }
1371             -re "$prompt $"                      { fail "print signed signed int != (minus)" }
1372             timeout                              { fail "(timeout) print signed signed int != (minus)" }
1373         }
1374     }
1375     -re "$prompt $"                              { fail "print signed signed int != (minus)" }
1376     timeout                                      { fail "(timeout) print signed signed int != (minus)" }
1377 }
1378
1379
1380 send "set variable v_signed_int=-1\n"
1381 expect {
1382     -re "set.*$prompt $" {
1383         send "print v_signed_int < 0\n"
1384         expect {
1385             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1386                 send "print v_signed_int < 0x7FFF\n"
1387                 expect {
1388                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed signed int < (minus)" }
1389                     -re "$prompt $"                      { fail "print signed signed int < (minus)" }
1390                     timeout                              { fail "(timeout) print signed signed int < (minus)" }
1391                 }
1392             }
1393             -re "$prompt $"                      { fail "print signed signed int < (minus)" }
1394             timeout                              { fail "(timeout) print signed signed int < (minus)" }
1395         }
1396     }
1397     -re "$prompt $"                              { fail "print signed signed int < (minus)" }
1398     timeout                                      { fail "(timeout) print signed signed int < (minus)" }
1399 }
1400
1401
1402 send "set variable v_signed_int=-1\n"
1403 expect {
1404     -re "set.*$prompt $" {
1405         send "print v_signed_int > 0\n"
1406         expect {
1407             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1408                 send "print v_signed_int > 0x7FFF\n"
1409                 expect {
1410                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed int > (minus)" }
1411                     -re "$prompt $"                      { fail "print signed signed int > (minus)" }
1412                     timeout                              { fail "(timeout) print signed signed int > (minus)" }
1413                 }
1414             }
1415             -re "$prompt $"                      { fail "print signed signed int > (minus)" }
1416             timeout                              { fail "(timeout) print signed signed int > (minus)" }
1417         }
1418     }
1419     -re "$prompt $"                              { fail "print signed signed int > (minus)" }
1420     timeout                                      { fail "(timeout) print signed signed int > (minus)" }
1421 }
1422
1423
1424 #
1425 # test expressions with "unsigned int" types
1426 #
1427 send "set variable v_unsigned_int=0x7FFF\n"
1428 expect {
1429     -re "set.*$prompt $" {
1430         send "print v_unsigned_int == 0\n"
1431         expect {
1432             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1433                 send "print v_unsigned_int == 0x7FFF\n"
1434                 expect {
1435                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned int ==" }
1436                     -re "$prompt $"                      { fail "print unsigned int ==" }
1437                     timeout                              { fail "(timeout) print unsigned int ==" }
1438                 }
1439             }
1440             -re "$prompt $"                      { fail "print unsigned int ==" }
1441             timeout                              { fail "(timeout) print unsigned int ==" }
1442         }
1443     }
1444     -re "$prompt $"                              { fail "print unsigned int ==" }
1445     timeout                                      { fail "(timeout) print unsigned int ==" }
1446 }
1447
1448
1449 send "set variable v_unsigned_int=0x7FFF\n"
1450 expect {
1451     -re "set.*$prompt $" {
1452         send "print v_unsigned_int != 0\n"
1453         expect {
1454             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1455                 send "print v_unsigned_int != 0x7FFF\n"
1456                 expect {
1457                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned int !=" }
1458                     -re "$prompt $"                      { fail "print unsigned int !=" }
1459                     timeout                              { fail "(timeout) print unsigned int !=" }
1460                 }
1461             }
1462             -re "$prompt $"                      { fail "print unsigned int !=" }
1463             timeout                              { fail "(timeout) print unsigned int !=" }
1464         }
1465     }
1466     -re "$prompt $"                              { fail "print unsigned int !=" }
1467     timeout                                      { fail "(timeout) print unsigned int !=" }
1468 }
1469
1470
1471 send "set variable v_unsigned_int=0x7FFF\n"
1472 expect {
1473     -re "set.*$prompt $" {
1474         send "print v_unsigned_int < 0\n"
1475         expect {
1476             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1477                 send "print v_unsigned_int < 0x7FFF\n"
1478                 expect {
1479                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned int <" }
1480                     -re "$prompt $"                      { fail "print unsigned int <" }
1481                     timeout                              { fail "(timeout) print unsigned int <" }
1482                 }
1483             }
1484             -re "$prompt $"                      { fail "print unsigned int <" }
1485             timeout                              { fail "(timeout) print unsigned int <" }
1486         }
1487     }
1488     -re "$prompt $"                              { fail "print unsigned int <" }
1489     timeout                                      { fail "(timeout) print unsigned int <" }
1490 }
1491
1492
1493 send "set variable v_unsigned_int=0x7FFF\n"
1494 expect {
1495     -re "set.*$prompt $" {
1496         send "print v_unsigned_int > 0\n"
1497         expect {
1498             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1499                 send "print v_unsigned_int > 0x7FFF\n"
1500                 expect {
1501                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned int >" }
1502                     -re "$prompt $"                      { fail "print unsigned int >" }
1503                     timeout                              { fail "(timeout) print unsigned int >" }
1504                 }
1505             }
1506             -re "$prompt $"                      { fail "print unsigned int >" }
1507             timeout                              { fail "(timeout) print unsigned int >" }
1508         }
1509     }
1510     -re "$prompt $"                              { fail "print unsigned int >" }
1511     timeout                                      { fail "(timeout) print unsigned int >" }
1512 }
1513
1514
1515 # make int a minus
1516 send "set variable v_unsigned_int=~0\n"
1517 expect {
1518     -re "set.*$prompt $" {
1519         send "print v_unsigned_int == 0\n"
1520         expect {
1521             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1522                 send "print v_unsigned_int == ~0\n"
1523                 expect {
1524                     -re "print.*.\[0-9\]* = 1.*$prompt $" {
1525                         send "print v_unsigned_int == (unsigned int)~0\n"
1526                         expect {
1527                             -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned int == (~0)" }
1528                             -re "$prompt $"                      { fail "print unsigned int == (~0)" }
1529                             timeout                              { fail "(timeout) print unsigned int == (~0)" }
1530                         }
1531                     }
1532                     -re "print.*.\[0-9\]* = 0.*$prompt $" {
1533 # gdb currently compares all values as long, so this failure probably
1534 # applies to any configuration where LONGEST is bigger than a target int.
1535                         setup_xfail "alpha-*-*"
1536                         fail "print unsigned int == (~0)"
1537                         send "print v_unsigned_int == (unsigned int)~0\n"
1538                         expect {
1539                             -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned int == (~0)" }
1540                             -re "$prompt $"                      { fail "print unsigned int == (~0)" }
1541                             timeout                              { fail "(timeout) print unsigned int == (~0)" }
1542                         }
1543                     }
1544                     -re "$prompt $"                      { fail "print unsigned int == (~0)" }
1545                     timeout                              { fail "(timeout) print unsigned int == (~0)" }
1546                 }
1547             }
1548             -re "$prompt $"                      { fail "print unsigned int == (~0)" }
1549             timeout                              { fail "(timeout) print unsigned int == (~0)" }
1550         }
1551     }
1552     -re "$prompt $"                              { fail "print unsigned int == (~0)" }
1553     timeout                                      { fail "(timeout) print unsigned int == (~0)" }
1554 }
1555
1556
1557 send "set variable v_unsigned_int=~0\n"
1558 expect {
1559     -re "set.*$prompt $" {
1560         send "print v_unsigned_int != 0\n"
1561         expect {
1562             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1563                 send "print v_unsigned_int != (unsigned int)~0\n"
1564                 expect {
1565                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned int != (~0)" }
1566                     -re "$prompt $"                      { fail "print unsigned int != (~0)" }
1567                     timeout                              { fail "(timeout) print unsigned int != (~0)" }
1568                 }
1569             }
1570             -re "$prompt $"                      { fail "print unsigned int != (~0)" }
1571             timeout                              { fail "(timeout) print unsigned int != (~0)" }
1572         }
1573     }
1574     -re "$prompt $"                              { fail "print unsigned int != (~0)" }
1575     timeout                                      { fail "(timeout) print unsigned int != (~0)" }
1576 }
1577
1578
1579 send "set variable v_unsigned_int=~0\n"
1580 expect {
1581     -re "set.*$prompt $" {
1582         send "print v_unsigned_int < 0\n"
1583         expect {
1584             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1585                 send "print v_unsigned_int < 0x7FFF\n"
1586                 expect {
1587                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned int < (~0)" }
1588                     -re "$prompt $"                      { fail "print unsigned int < (~0)" }
1589                     timeout                              { fail "(timeout) print unsigned int < (~0)" }
1590                 }
1591             }
1592             -re "$prompt $"                      { fail "print unsigned int < (~0)" }
1593             timeout                              { fail "(timeout) print unsigned int < (~0)" }
1594         }
1595     }
1596     -re "$prompt $"                              { fail "print unsigned int < (~0)" }
1597     timeout                                      { fail "(timeout) print unsigned int < (~0)" }
1598 }
1599
1600
1601 send "set variable v_unsigned_int=~0\n"
1602 expect {
1603     -re "set.*$prompt $" {
1604         send "print v_unsigned_int > 0\n"
1605         expect {
1606             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1607                 send "print v_unsigned_int > 0x7FFF\n"
1608                 expect {
1609                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned int > (~0)" }
1610                     -re "$prompt $"                      { fail "print unsigned int > (~0)" }
1611                     timeout                              { fail "(timeout) print unsigned int > (~0)" }
1612                 }
1613             }
1614             -re "$prompt $"                      { fail "print unsigned int > (~0)" }
1615             timeout                              { fail "(timeout) print unsigned int > (~0)" }
1616         }
1617     }
1618     -re "$prompt $"                              { fail "print unsigned int > (~0)" }
1619     timeout                                      { fail "(timeout) print unsigned int > (~0)" }
1620 }
1621
1622
1623 #
1624 # test expressions with "long" types
1625 #
1626 send "set variable v_long=0x7FFF\n"
1627 expect {
1628     -re "set.*$prompt $" {
1629         send "print v_long == 0\n"
1630         expect {
1631             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1632                 send "print v_long == 0x7FFF\n"
1633                 expect {
1634                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed long ==" }
1635                     -re "$prompt $"                      { fail "print signed long ==" }
1636                     timeout                              { fail "(timeout) print signed long ==" }
1637                 }
1638             }
1639             -re "$prompt $"                      { fail "print signed long ==" }
1640             timeout                              { fail "(timeout) print signed long ==" }
1641         }
1642     }
1643     -re "$prompt $"                              { fail "print signed long ==" }
1644     timeout                                      { fail "(timeout) print signed long ==" }
1645 }
1646
1647
1648 send "set variable v_long=0x7FFF\n"
1649 expect {
1650     -re "set.*$prompt $" {
1651         send "print v_long != 0\n"
1652         expect {
1653             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1654                 send "print v_long != 0x7FFF\n"
1655                 expect {
1656                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed long !=" }
1657                     -re "$prompt $"                      { fail "print signed long !=" }
1658                     timeout                              { fail "(timeout) print signed long !=" }
1659                 }
1660             }
1661             -re "$prompt $"                      { fail "print signed long !=" }
1662             timeout                              { fail "(timeout) print signed long !=" }
1663         }
1664     }
1665     -re "$prompt $"                              { fail "print signed long !=" }
1666     timeout                                      { fail "(timeout) print signed long !=" }
1667 }
1668
1669
1670 send "set variable v_long=0x7FFF\n"
1671 expect {
1672     -re "set.*$prompt $" {
1673         send "print v_long < 0\n"
1674         expect {
1675             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1676                 send "print v_long < 0x7FFF\n"
1677                 expect {
1678                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed long <" }
1679                     -re "$prompt $"                      { fail "print signed long <" }
1680                     timeout                              { fail "(timeout) print signed long <" }
1681                 }
1682             }
1683             -re "$prompt $"                      { fail "print signed long <" }
1684             timeout                              { fail "(timeout) print signed long <" }
1685         }
1686     }
1687     -re "$prompt $"                              { fail "print signed long <" }
1688     timeout                                      { fail "(timeout) print signed long <" }
1689 }
1690
1691
1692 send "set variable v_long=0x7FFF\n"
1693 expect {
1694     -re "set.*$prompt $" {
1695         send "print v_long > 0\n"
1696         expect {
1697             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1698                 send "print v_long > 0x7FFF\n"
1699                 expect {
1700                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed long >" }
1701                     -re "$prompt $"                      { fail "print signed long >" }
1702                     timeout                              { fail "(timeout) print signed long >" }
1703                 }
1704             }
1705             -re "$prompt $"                      { fail "print signed long >" }
1706             timeout                              { fail "(timeout) print signed long >" }
1707         }
1708     }
1709     -re "$prompt $"                              { fail "print signed long >" }
1710     timeout                                      { fail "(timeout) print signed long >" }
1711 }
1712
1713
1714 # make long a minus
1715 send "set variable v_long=-1\n"
1716 expect {
1717     -re "set.*$prompt $" {
1718         send "print v_long == 0\n"
1719         expect {
1720             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1721                 send "print v_long == -1\n"
1722                 expect {
1723                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed long == (minus)" }
1724                     -re "$prompt $"                      { fail "print signed long == (minus)" }
1725                     timeout                              { fail "(timeout) print signed long == (minus)" }
1726                 }
1727             }
1728             -re "$prompt $"                      { fail "print signed long == (minus)" }
1729             timeout                              { fail "(timeout) print signed long == (minus)" }
1730         }
1731     }
1732     -re "$prompt $"                              { fail "print signed long == (minus)" }
1733     timeout                                      { fail "(timeout) print signed long == (minus)" }
1734 }
1735
1736
1737 send "set variable v_long=-1\n"
1738 expect {
1739     -re "set.*$prompt $" {
1740         send "print v_long != 0\n"
1741         expect {
1742             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1743                 send "print v_long != -1\n"
1744                 expect {
1745                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed long != (minus)" }
1746                     -re "$prompt $"                      { fail "print signed long != (minus)" }
1747                     timeout                              { fail "(timeout) print signed long != (minus)" }
1748                 }
1749             }
1750             -re "$prompt $"                      { fail "print signed long != (minus)" }
1751             timeout                              { fail "(timeout) print signed long != (minus)" }
1752         }
1753     }
1754     -re "$prompt $"                              { fail "print signed long != (minus)" }
1755     timeout                                      { fail "(timeout) print signed long != (minus)" }
1756 }
1757
1758
1759 send "set variable v_long=-1\n"
1760 expect {
1761     -re "set.*$prompt $" {
1762         send "print v_long < 0\n"
1763         expect {
1764             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1765                 send "print v_long < 0x7FFF\n"
1766                 expect {
1767                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed long < (minus)" }
1768                     -re "$prompt $"                      { fail "print signed long < (minus)" }
1769                     timeout                              { fail "(timeout) print signed long < (minus)" }
1770                 }
1771             }
1772             -re "$prompt $"                      { fail "print signed long < (minus)" }
1773             timeout                              { fail "(timeout) print signed long < (minus)" }
1774         }
1775     }
1776     -re "$prompt $"                              { fail "print signed long < (minus)" }
1777     timeout                                      { fail "(timeout) print signed long < (minus)" }
1778 }
1779
1780
1781 send "set variable v_long=-1\n"
1782 expect {
1783     -re "set.*$prompt $" {
1784         send "print v_long > 0\n"
1785         expect {
1786             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1787                 send "print v_long > 0x7FFF\n"
1788                 expect {
1789                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed long > (minus)" }
1790                     -re "$prompt $"                      { fail "print signed long > (minus)" }
1791                     timeout                              { fail "(timeout) print signed long > (minus)" }
1792                 }
1793             }
1794             -re "$prompt $"                      { fail "print signed long > (minus)" }
1795             timeout                              { fail "(timeout) print signed long > (minus)" }
1796         }
1797     }
1798     -re "$prompt $"                              { fail "print signed long > (minus)" }
1799     timeout                                      { fail "(timeout) print signed long > (minus)" }
1800 }
1801
1802
1803 #
1804 # test expressions with "signed long" types
1805 #
1806 send "set variable v_signed_long=0x7FFF\n"
1807 expect {
1808     -re "set.*$prompt $" {
1809         send "print v_signed_long == 0\n"
1810         expect {
1811             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1812                 send "print v_signed_long == 0x7FFF\n"
1813                 expect {
1814                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed signed long ==" }
1815                     -re "$prompt $"                      { fail "print signed signed long ==" }
1816                     timeout                              { fail "(timeout) print signed signed long ==" }
1817                 }
1818             }
1819             -re "$prompt $"                      { fail "print signed signed long ==" }
1820             timeout                              { fail "(timeout) print signed signed long ==" }
1821         }
1822     }
1823     -re "$prompt $"                              { fail "print signed signed long ==" }
1824     timeout                                      { fail "(timeout) print signed signed long ==" }
1825 }
1826
1827
1828 send "set variable v_signed_long=0x7FFF\n"
1829 expect {
1830     -re "set.*$prompt $" {
1831         send "print v_signed_long != 0\n"
1832         expect {
1833             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1834                 send "print v_signed_long != 0x7FFF\n"
1835                 expect {
1836                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed long !=" }
1837                     -re "$prompt $"                      { fail "print signed signed long !=" }
1838                     timeout                              { fail "(timeout) print signed signed long !=" }
1839                 }
1840             }
1841             -re "$prompt $"                      { fail "print signed signed long !=" }
1842             timeout                              { fail "(timeout) print signed signed long !=" }
1843         }
1844     }
1845     -re "$prompt $"                              { fail "print signed signed long !=" }
1846     timeout                                      { fail "(timeout) print signed signed long !=" }
1847 }
1848
1849
1850 send "set variable v_signed_long=0x7FFF\n"
1851 expect {
1852     -re "set.*$prompt $" {
1853         send "print v_signed_long < 0\n"
1854         expect {
1855             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1856                 send "print v_signed_long < 0x7FFF\n"
1857                 expect {
1858                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed long <" }
1859                     -re "$prompt $"                      { fail "print signed signed long <" }
1860                     timeout                              { fail "(timeout) print signed signed long <" }
1861                 }
1862             }
1863             -re "$prompt $"                      { fail "print signed signed long <" }
1864             timeout                              { fail "(timeout) print signed signed long <" }
1865         }
1866     }
1867     -re "$prompt $"                              { fail "print signed signed long <" }
1868     timeout                                      { fail "(timeout) print signed signed long <" }
1869 }
1870
1871
1872 send "set variable v_signed_long=0x7FFF\n"
1873 expect {
1874     -re "set.*$prompt $" {
1875         send "print v_signed_long > 0\n"
1876         expect {
1877             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1878                 send "print v_signed_long > 0x7FFF\n"
1879                 expect {
1880                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed long >" }
1881                     -re "$prompt $"                      { fail "print signed signed long >" }
1882                     timeout                              { fail "(timeout) print signed signed long >" }
1883                 }
1884             }
1885             -re "$prompt $"                      { fail "print signed signed long >" }
1886             timeout                              { fail "(timeout) print signed signed long >" }
1887         }
1888     }
1889     -re "$prompt $"                              { fail "print signed signed long >" }
1890     timeout                                      { fail "(timeout) print signed signed long >" }
1891 }
1892
1893
1894 # make long a minus
1895 send "set variable v_signed_long=-1\n"
1896 expect {
1897     -re "set.*$prompt $" {
1898         send "print v_signed_long == 0\n"
1899         expect {
1900             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1901                 send "print v_signed_long == -1\n"
1902                 expect {
1903                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed signed long == (minus)" }
1904                     -re "$prompt $"                      { fail "print signed signed long == (minus)" }
1905                     timeout                              { fail "(timeout) print signed signed long == (minus)" }
1906                 }
1907             }
1908             -re "$prompt $"                      { fail "print signed signed long == (minus)" }
1909             timeout                              { fail "(timeout) print signed signed long == (minus)" }
1910         }
1911     }
1912     -re "$prompt $"                              { fail "print signed signed long == (minus)" }
1913     timeout                                      { fail "(timeout) print signed signed long == (minus)" }
1914 }
1915
1916
1917 send "set variable v_signed_long=-1\n"
1918 expect {
1919     -re "set.*$prompt $" {
1920         send "print v_signed_long != 0\n"
1921         expect {
1922             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1923                 send "print v_signed_long != -1\n"
1924                 expect {
1925                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed long != (minus)" }
1926                     -re "$prompt $"                      { fail "print signed signed long != (minus)" }
1927                     timeout                              { fail "(timeout) print signed signed long != (minus)" }
1928                 }
1929             }
1930             -re "$prompt $"                      { fail "print signed signed long != (minus)" }
1931             timeout                              { fail "(timeout) print signed signed long != (minus)" }
1932         }
1933     }
1934     -re "$prompt $"                              { fail "print signed signed long != (minus)" }
1935     timeout                                      { fail "(timeout) print signed signed long != (minus)" }
1936 }
1937
1938
1939 send "set variable v_signed_long=-1\n"
1940 expect {
1941     -re "set.*$prompt $" {
1942         send "print v_signed_long < 0\n"
1943         expect {
1944             -re "print.*.\[0-9\]* = 1.*$prompt $" {
1945                 send "print v_signed_long < 0x7FFF\n"
1946                 expect {
1947                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print signed signed long < (minus)" }
1948                     -re "$prompt $"                      { fail "print signed signed long < (minus)" }
1949                     timeout                              { fail "(timeout) print signed signed long < (minus)" }
1950                 }
1951             }
1952             -re "$prompt $"                      { fail "print signed signed long < (minus)" }
1953             timeout                              { fail "(timeout) print signed signed long < (minus)" }
1954         }
1955     }
1956     -re "$prompt $"                              { fail "print signed signed long < (minus)" }
1957     timeout                                      { fail "(timeout) print signed signed long < (minus)" }
1958 }
1959
1960
1961 send "set variable v_signed_long=-1\n"
1962 expect {
1963     -re "set.*$prompt $" {
1964         send "print v_signed_long > 0\n"
1965         expect {
1966             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1967                 send "print v_signed_long > 0x7FFF\n"
1968                 expect {
1969                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print signed signed long > (minus)" }
1970                     -re "$prompt $"                      { fail "print signed signed long > (minus)" }
1971                     timeout                              { fail "(timeout) print signed signed long > (minus)" }
1972                 }
1973             }
1974             -re "$prompt $"                      { fail "print signed signed long > (minus)" }
1975             timeout                              { fail "(timeout) print signed signed long > (minus)" }
1976         }
1977     }
1978     -re "$prompt $"                              { fail "print signed signed long > (minus)" }
1979     timeout                                      { fail "(timeout) print signed signed long > (minus)" }
1980 }
1981
1982
1983 #
1984 # test expressions with "unsigned long" types
1985 #
1986 send "set variable v_unsigned_long=0x7FFF\n"
1987 expect {
1988     -re "set.*$prompt $" {
1989         send "print v_unsigned_long == 0\n"
1990         expect {
1991             -re "print.*.\[0-9\]* = 0.*$prompt $" {
1992                 send "print v_unsigned_long == 0x7FFF\n"
1993                 expect {
1994                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned long ==" }
1995                     -re "$prompt $"                      { fail "print unsigned long ==" }
1996                     timeout                              { fail "(timeout) print unsigned long ==" }
1997                 }
1998             }
1999             -re "$prompt $"                      { fail "print unsigned long ==" }
2000             timeout                              { fail "(timeout) print unsigned long ==" }
2001         }
2002     }
2003     -re "$prompt $"                              { fail "print unsigned long ==" }
2004     timeout                                      { fail "(timeout) print unsigned long ==" }
2005 }
2006
2007
2008 send "set variable v_unsigned_long=0x7FFF\n"
2009 expect {
2010     -re "set.*$prompt $" {
2011         send "print v_unsigned_long != 0\n"
2012         expect {
2013             -re "print.*.\[0-9\]* = 1.*$prompt $" {
2014                 send "print v_unsigned_long != 0x7FFF\n"
2015                 expect {
2016                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned long !=" }
2017                     -re "$prompt $"                      { fail "print unsigned long !=" }
2018                     timeout                              { fail "(timeout) print unsigned long !=" }
2019                 }
2020             }
2021             -re "$prompt $"                      { fail "print unsigned long !=" }
2022             timeout                              { fail "(timeout) print unsigned long !=" }
2023         }
2024     }
2025     -re "$prompt $"                              { fail "print unsigned long !=" }
2026     timeout                                      { fail "(timeout) print unsigned long !=" }
2027 }
2028
2029
2030 send "set variable v_unsigned_long=0x7FFF\n"
2031 expect {
2032     -re "set.*$prompt $" {
2033         send "print v_unsigned_long < 0\n"
2034         expect {
2035             -re "print.*.\[0-9\]* = 0.*$prompt $" {
2036                 send "print v_unsigned_long < 0x7FFF\n"
2037                 expect {
2038                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned long <" }
2039                     -re "$prompt $"                      { fail "print unsigned long <" }
2040                     timeout                              { fail "(timeout) print unsigned long <" }
2041                 }
2042             }
2043             -re "$prompt $"                      { fail "print unsigned long <" }
2044             timeout                              { fail "(timeout) print unsigned long <" }
2045         }
2046     }
2047     -re "$prompt $"                              { fail "print unsigned long <" }
2048     timeout                                      { fail "(timeout) print unsigned long <" }
2049 }
2050
2051
2052 send "set variable v_unsigned_long=0x7FFF\n"
2053 expect {
2054     -re "set.*$prompt $" {
2055         send "print v_unsigned_long > 0\n"
2056         expect {
2057             -re "print.*.\[0-9\]* = 1.*$prompt $" {
2058                 send "print v_unsigned_long > 0x7FFF\n"
2059                 expect {
2060                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned long >" }
2061                     -re "$prompt $"                      { fail "print unsigned long >" }
2062                     timeout                              { fail "(timeout) print unsigned long >" }
2063                 }
2064             }
2065             -re "$prompt $"                      { fail "print unsigned long >" }
2066             timeout                              { fail "(timeout) print unsigned long >" }
2067         }
2068     }
2069     -re "$prompt $"                              { fail "print unsigned long >" }
2070     timeout                                      { fail "(timeout) print unsigned long >" }
2071 }
2072
2073
2074 # make long a minus
2075 send "set variable v_unsigned_long=~0\n"
2076 expect {
2077     -re "set.*$prompt $" {
2078         send "print v_unsigned_long == 0\n"
2079         expect {
2080             -re "print.*.\[0-9\]* = 0.*$prompt $" {
2081                 send "print v_unsigned_long == ~0\n"
2082                 expect {
2083                     -re "print.*.\[0-9\]* = 1.*$prompt $" {
2084                         send "print v_unsigned_long == (unsigned long)~0\n"
2085                         expect {
2086                             -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned long == (~0)" }
2087                             -re "$prompt $"                      { fail "print unsigned long == (~0)" }
2088                             timeout                              { fail "(timeout) print unsigned long == (~0)" }
2089                         }
2090                     }
2091                     -re "$prompt $"                      { fail "print unsigned long == (~0)" }
2092                     timeout                              { fail "(timeout) print unsigned long == (~0)" }
2093                 }
2094             }
2095             -re "$prompt $"                      { fail "print unsigned long == (~0)" }
2096             timeout                              { fail "(timeout) print unsigned long == (~0)" }
2097         }
2098     }
2099     -re "$prompt $"                              { fail "print unsigned long == (~0)" }
2100     timeout                                      { fail "(timeout) print unsigned long == (~0)" }
2101 }
2102
2103
2104 send "set variable v_unsigned_long=~0\n"
2105 expect {
2106     -re "set.*$prompt $" {
2107         send "print v_unsigned_long != 0\n"
2108         expect {
2109             -re "print.*.\[0-9\]* = 1.*$prompt $" {
2110                 send "print v_unsigned_long != (unsigned long)~0\n"
2111                 expect {
2112                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned long != (~0)" }
2113                     -re "$prompt $"                      { fail "print unsigned long != (~0)" }
2114                     timeout                              { fail "(timeout) print unsigned long != (~0)" }
2115                 }
2116             }
2117             -re "$prompt $"                      { fail "print unsigned long != (~0)" }
2118             timeout                              { fail "(timeout) print unsigned long != (~0)" }
2119         }
2120     }
2121     -re "$prompt $"                              { fail "print unsigned long != (~0)" }
2122     timeout                                      { fail "(timeout) print unsigned long != (~0)" }
2123 }
2124
2125
2126 send "set variable v_unsigned_long=~0\n"
2127 expect {
2128     -re "set.*$prompt $" {
2129         send "print v_unsigned_long < 0\n"
2130         expect {
2131             -re "print.*.\[0-9\]* = 0.*$prompt $" {
2132                 send "print v_unsigned_long < 0x7FFF\n"
2133                 expect {
2134                     -re "print.*.\[0-9\]* = 0.*$prompt $" { pass "print unsigned long < (~0)" }
2135                     -re "$prompt $"                      { fail "print unsigned long < (~0)" }
2136                     timeout                              { fail "(timeout) print unsigned long < (~0)" }
2137                 }
2138             }
2139             -re "$prompt $"                      { fail "print unsigned long < (~0)" }
2140             timeout                              { fail "(timeout) print unsigned long < (~0)" }
2141         }
2142     }
2143     -re "$prompt $"                              { fail "print unsigned long < (~0)" }
2144     timeout                                      { fail "(timeout) print unsigned long < (~0)" }
2145 }
2146
2147
2148 send "set variable v_unsigned_long=~0\n"
2149 expect {
2150     -re "set.*$prompt $" {
2151         send "print v_unsigned_long > 0\n"
2152         expect {
2153             -re "print.*.\[0-9\]* = 1.*$prompt $" {
2154                 send "print v_unsigned_long > 0x7FFF\n"
2155                 expect {
2156                     -re "print.*.\[0-9\]* = 1.*$prompt $" { pass "print unsigned long > (~0)" }
2157                     -re "$prompt $"                      { fail "print unsigned long > (~0)" }
2158                     timeout                              { fail "(timeout) print unsigned long > (~0)" }
2159                 }
2160             }
2161             -re "$prompt $"                      { fail "print unsigned long > (~0)" }
2162             timeout                              { fail "(timeout) print unsigned long > (~0)" }
2163         }
2164     }
2165     -re "$prompt $"                              { fail "print unsigned long > (~0)" }
2166     timeout                                      { fail "(timeout) print unsigned long > (~0)" }
2167 }
2168
2169 if [istarget "a29k-*-udi"] then {
2170     # FIXME: If PR 2415 is fixed, this is not needed.
2171     gdb_target_udi
2172 }