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