tcnvint1.pp 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. {****************************************************************}
  2. { CODE GENERATOR TEST PROGRAM }
  3. {****************************************************************}
  4. { NODE TESTED : secondtypeconvert() -> second_bool_to_int }
  5. {****************************************************************}
  6. { PRE-REQUISITES: secondload() }
  7. { secondassign() }
  8. { secondcalln() }
  9. { secondinline() }
  10. {****************************************************************}
  11. { DEFINES: }
  12. {****************************************************************}
  13. { REMARKS: }
  14. {****************************************************************}
  15. program tcnvint1;
  16. var
  17. tobyte : byte;
  18. toword : word;
  19. tolong : longint;
  20. {$ifdef fpc}
  21. toint64 : int64;
  22. {$endif}
  23. bb1 : bytebool;
  24. wb1 : wordbool;
  25. lb1 : longbool;
  26. bb2 : bytebool;
  27. wb2 : wordbool;
  28. lb2 : longbool;
  29. begin
  30. { left : LOC_REGISTER }
  31. { from : LOC_REFERENCE/LOC_REGISTER }
  32. WriteLn('Testing LOC_REFERENCE...');
  33. bb1 := TRUE;
  34. tobyte := byte(bb1);
  35. WriteLn('boolean->byte : value should be 1...',tobyte);
  36. bb1 := FALSE;
  37. tobyte := byte(bb1);
  38. WriteLn('boolean->byte : value should be 0...',tobyte);
  39. bb1 := TRUE;
  40. toword := word(bb1);
  41. WriteLn('boolean->word : value should be 1...',toword);
  42. bb1 := FALSE;
  43. toword := word(bb1);
  44. WriteLn('boolean->word : value should be 0...',toword);
  45. bb1 := TRUE;
  46. tolong := longint(bb1);
  47. WriteLn('boolean->longint : value should be 1...',tolong);
  48. bb1 := FALSE;
  49. tolong := longint(bb1);
  50. WriteLn('boolean->longint : value should be 0...',tolong);
  51. wb1 := TRUE;
  52. tobyte := byte(wb1);
  53. WriteLn('wordbool->byte : value should be 1...',tobyte);
  54. wb1 := FALSE;
  55. tobyte := byte(wb1);
  56. WriteLn('wordbool->byte : value should be 0...',tobyte);
  57. wb1 := TRUE;
  58. toword := word(wb1);
  59. WriteLn('wordbool->word : value should be 1...',toword);
  60. wb1 := FALSE;
  61. toword := word(wb1);
  62. WriteLn('wordbool->word : value should be 0...',toword);
  63. wb1 := TRUE;
  64. tolong := longint(wb1);
  65. WriteLn('wordbool->longint : value should be 1...',tolong);
  66. wb1 := FALSE;
  67. tolong := longint(wb1);
  68. WriteLn('wordbool->longint : value should be 0...',tolong);
  69. {$ifdef fpc}
  70. bb1 := TRUE;
  71. toint64 :=int64(bb1);
  72. WriteLn('boolean->int64 : value should be 1...',toint64);
  73. bb1 := FALSE;
  74. toint64 :=int64(bb1);
  75. WriteLn('boolean->int64 : value should be 0...',toint64);
  76. wb1 := TRUE;
  77. toint64 :=int64(wb1);
  78. WriteLn('wordbool->int64 : value should be 1...',toint64);
  79. wb1 := FALSE;
  80. toint64 :=int64(wb1);
  81. WriteLn('wordbool->int64 : value should be 0...',toint64);
  82. {$endif}
  83. lb1 := TRUE;
  84. tobyte := byte(lb1);
  85. WriteLn('longbool->byte : value should be 1...',tobyte);
  86. lb1 := FALSE;
  87. tobyte := byte(lb1);
  88. WriteLn('longbool->byte : value should be 0...',tobyte);
  89. lb1 := TRUE;
  90. toword := word(lb1);
  91. WriteLn('longbool->word : value should be 1...',toword);
  92. lb1 := FALSE;
  93. toword := word(lb1);
  94. WriteLn('longbool->word : value should be 0...',toword);
  95. lb1 := TRUE;
  96. tolong := longint(lb1);
  97. WriteLn('longbool->longint : value should be 1...',tolong);
  98. lb1 := FALSE;
  99. tolong := longint(lb1);
  100. WriteLn('longbool->longint : value should be 0...',tolong);
  101. { left : LOC_REGISTER }
  102. { from : LOC_REFERENCE }
  103. wb1 := TRUE;
  104. bb2 := wb1;
  105. WriteLn('wordbool->boolean : value should be TRUE...',bb2);
  106. wb1 := FALSE;
  107. bb2 := wb1;
  108. WriteLn('wordbool->boolean : value should be FALSE...',bb2);
  109. lb1 := TRUE;
  110. bb2 := lb1;
  111. WriteLn('longbool->boolean : value should be TRUE...',bb2);
  112. lb1 := FALSE;
  113. bb2 := lb1;
  114. WriteLn('longbool->boolean : value should be FALSE...',bb2);
  115. bb1 := TRUE;
  116. lb2 := bb1;
  117. WriteLn('boolean->longbool : value should be TRUE...',lb2);
  118. bb1 := FALSE;
  119. lb2 := bb1;
  120. WriteLn('boolean->longbool : value should be FALSE...',lb2);
  121. { left : LOC_REGISTER }
  122. { from : LOC_JUMP }
  123. WriteLn('Testing LOC_JUMP...');
  124. toword := 0;
  125. tobyte := 1;
  126. tobyte:=byte(toword > tobyte);
  127. WriteLn('value should be 0...',tobyte);
  128. toword := 2;
  129. tobyte := 1;
  130. tobyte:=byte(toword > tobyte);
  131. WriteLn('value should be 1...',tobyte);
  132. toword := 0;
  133. tobyte := 1;
  134. toword:=word(toword > tobyte);
  135. WriteLn('value should be 0...',toword);
  136. toword := 2;
  137. tobyte := 1;
  138. toword:=word(toword > tobyte);
  139. WriteLn('value should be 1...',toword);
  140. toword := 0;
  141. tobyte := 1;
  142. tolong:=longint(toword > tobyte);
  143. WriteLn('value should be 0...',tolong);
  144. toword := 2;
  145. tobyte := 1;
  146. tolong:=longint(toword > tobyte);
  147. WriteLn('value should be 1...',tolong);
  148. {$ifdef fpc}
  149. toword := 0;
  150. tobyte := 1;
  151. toint64:=int64(toword > tobyte);
  152. WriteLn('value should be 0...',toint64);
  153. toword := 2;
  154. tobyte := 1;
  155. toint64:=int64(toword > tobyte);
  156. WriteLn('value should be 1...',toint64);
  157. {$endif}
  158. { left : LOC_REGISTER }
  159. { from : LOC_FLAGS }
  160. WriteLn('Testing LOC_FLAGS...');
  161. wb1 := TRUE;
  162. bb1 := FALSE;
  163. bb1 := (wb1 > bb1);
  164. WriteLn('Value should be TRUE...',bb1);
  165. wb1 := FALSE;
  166. bb1 := FALSE;
  167. bb1 := (wb1 > bb1);
  168. WriteLn('Value should be FALSE...',bb1);
  169. lb1 := TRUE;
  170. bb1 := FALSE;
  171. bb1 := (bb1 > lb1);
  172. WriteLn('Value should be FALSE...',bb1);
  173. lb1 := FALSE;
  174. bb1 := TRUE;
  175. bb1 := (bb1 > lb1);
  176. WriteLn('Value should be TRUE...',bb1);
  177. lb1 := TRUE;
  178. bb1 := FALSE;
  179. wb1 := (bb1 > lb1);
  180. WriteLn('Value should be FALSE...',wb1);
  181. lb1 := FALSE;
  182. bb1 := TRUE;
  183. wb1 := (bb1 > lb1);
  184. WriteLn('Value should be TRUE...',wb1);
  185. lb1 := TRUE;
  186. bb1 := FALSE;
  187. lb1 := (bb1 > lb1);
  188. WriteLn('Value should be FALSE...',lb1);
  189. lb1 := FALSE;
  190. bb1 := TRUE;
  191. lb1 := (bb1 > lb1);
  192. WriteLn('Value should be TRUE...',lb1);
  193. bb1 := TRUE;
  194. bb2 := FALSE;
  195. lb1 := (bb1 > bb2);
  196. WriteLn('Value should be TRUE...',lb1);
  197. bb1 := FALSE;
  198. bb2 := TRUE;
  199. lb1 := (bb1 > bb2);
  200. WriteLn('Value should be FALSE...',lb1);
  201. end.
  202. {
  203. $Log$
  204. Revision 1.2 2001-07-31 01:55:47 carl
  205. * corrected small spelling mistake
  206. Revision 1.1 2001/07/27 02:56:10 carl
  207. + second_bool_to_int node testing (initial revision)
  208. }