home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / gdb-4.9 / gdb / testsuite / gdb.t05 / expr.exp < prev    next >
Encoding:
Text File  |  1993-05-12  |  78.9 KB  |  2,159 lines

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