Improve test to allow easier understanding of errors

git-svn-id: trunk@24516 -
This commit is contained in:
pierre 2013-05-16 22:05:10 +00:00
parent 4a696dbf00
commit cc8708c3c9

View File

@ -12,10 +12,10 @@
var var
ErrorCode: Integer; ErrorCode: Integer;
procedure Error; procedure Error(code : integer);
begin begin
Writeln('Error!'); Writeln('Error: ',code,'!');
ErrorCode := 1; ErrorCode := code;
end; end;
var var
@ -31,10 +31,10 @@ begin
s8 := 127; s8_2 := 127; s8 := 127; s8_2 := 127;
s32 := s8 + s8_2; s32 := s8 + s8_2;
if s32 <> 254 then if s32 <> 254 then
Error; Error(1);
s32 := s8 + s8_2 + s8 + s8_2; s32 := s8 + s8_2 + s8 + s8_2;
if s32 <> 508 then if s32 <> 508 then
Error; Error(2);
s32 := s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s32 := s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 +
s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 +
s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 +
@ -69,31 +69,31 @@ begin
s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2 +
s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2; s8 + s8_2 + s8 + s8_2 + s8 + s8_2 + s8 + s8_2;
if s32 <> -32008 then if s32 <> -32008 then
Error; Error(3);
Writeln(' signed8 + signed16 -> signed16 '); Writeln(' signed8 + signed16 -> signed16 ');
s16 := 32767; s8 := 127; s16 := 32767; s8 := 127;
s32 := s16 + s8; s32 := s16 + s8;
if s32 <> -32642 then if s32 <> -32642 then
Error; Error(4);
s32 := s8 + s16; s32 := s8 + s16;
if s32 <> -32642 then if s32 <> -32642 then
Error; Error(5);
Writeln(' signed16 + signed16 -> signed16 '); Writeln(' signed16 + signed16 -> signed16 ');
s16 := 32767; s16_2 := 32767; s16 := 32767; s16_2 := 32767;
s32 := s16 + s16_2; s32 := s16 + s16_2;
if s32 <> -2 then if s32 <> -2 then
Error; Error(6);
Writeln(' unsigned8 + unsigned8 -> signed16 '); Writeln(' unsigned8 + unsigned8 -> signed16 ');
u8 := 255; u8_2 := 255; u8 := 255; u8_2 := 255;
s32 := u8 + u8_2; s32 := u8 + u8_2;
if s32 <> 510 then if s32 <> 510 then
Error; Error(7);
s32 := u8 + u8_2 + u8 + u8_2; s32 := u8 + u8_2 + u8 + u8_2;
if s32 <> 1020 then if s32 <> 1020 then
Error; Error(8);
s32 := u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + s32 := u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 +
u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 +
u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 +
@ -112,39 +112,42 @@ begin
u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2 +
u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2; u8 + u8_2 + u8 + u8_2 + u8 + u8_2 + u8 + u8_2;
if s32 <> -30856 then if s32 <> -30856 then
Error; begin
Error(9);
writeln('s32=',s32, '$',hexstr(s32,8));
end;
Writeln(' unsigned8 + unsigned16 -> unsigned16 '); Writeln(' unsigned8 + unsigned16 -> unsigned16 ');
u16 := 65535; u8 := 255; u16 := 65535; u8 := 255;
s32 := u16 + u8; s32 := u16 + u8;
if s32 <> 254 then if s32 <> 254 then
Error; Error(10);
s32 := u8 + u16; s32 := u8 + u16;
if s32 <> 254 then if s32 <> 254 then
Error; Error(11);
u16 := 32768; u8 := 255; u16 := 32768; u8 := 255;
s32 := u16 + u8; s32 := u16 + u8;
if s32 <> 33023 then if s32 <> 33023 then
Error; Error(12);
s32 := u8 + u16; s32 := u8 + u16;
if s32 <> 33023 then if s32 <> 33023 then
Error; Error(13);
Writeln(' unsigned16 + unsigned16 -> unsigned16 '); Writeln(' unsigned16 + unsigned16 -> unsigned16 ');
u16 := 32767; u16_2 := 1; u16 := 32767; u16_2 := 1;
s32 := u16 + u16_2; s32 := u16 + u16_2;
if s32 <> 32768 then if s32 <> 32768 then
Error; Error(14);
u16 := 65535; u16_2 := 65535; u16 := 65535; u16_2 := 65535;
s32 := u16 + u16_2; s32 := u16 + u16_2;
if s32 <> 65534 then if s32 <> 65534 then
Error; Error(15);
Writeln(' signed8 + unsigned8 -> signed16 '); Writeln(' signed8 + unsigned8 -> signed16 ');
s8 := 127; u8 := 255; s8 := 127; u8 := 255;
s32 := s8 + u8; s32 := s8 + u8;
if s32 <> 382 then if s32 <> 382 then
Error; Error(16);
s32 := s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s32 := s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 +
s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 +
s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 +
@ -159,79 +162,79 @@ begin
s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 +
s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8; s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8 + s8 + u8;
if s32 <> -30774 then if s32 <> -30774 then
Error; Error(17);
Writeln(' unsigned8 + signed16 -> signed16 '); Writeln(' unsigned8 + signed16 -> signed16 ');
u8 := 255; s16 := 32767; u8 := 255; s16 := 32767;
s32 := u8 + s16; s32 := u8 + s16;
if s32 <> -32514 then if s32 <> -32514 then
Error; Error(18);
s32 := s16 + u8; s32 := s16 + u8;
if s32 <> -32514 then if s32 <> -32514 then
Error; Error(19);
Writeln(' signed8 + unsigned16 -> signed32 '); Writeln(' signed8 + unsigned16 -> signed32 ');
s8 := 127; u16 := 65535; s8 := 127; u16 := 65535;
s32 := s8 + u16; s32 := s8 + u16;
if s32 <> 65662 then if s32 <> 65662 then
Error; Error(20);
s32 := u16 + s8; s32 := u16 + s8;
if s32 <> 65662 then if s32 <> 65662 then
Error; Error(21);
Writeln(' signed16 + unsigned16 -> signed32 '); Writeln(' signed16 + unsigned16 -> signed32 ');
s16 := 32767; u16 := 65535; s16 := 32767; u16 := 65535;
s32 := s16 + u16; s32 := s16 + u16;
if s32 <> 98302 then if s32 <> 98302 then
Error; Error(22);
s32 := u16 + s16; s32 := u16 + s16;
if s32 <> 98302 then if s32 <> 98302 then
Error; Error(23);
Writeln(' signed32 + signed8 -> signed32 '); Writeln(' signed32 + signed8 -> signed32 ');
s32_2 := 1000000; s8 := 127; s32_2 := 1000000; s8 := 127;
s32 := s32_2 + s8; s32 := s32_2 + s8;
if s32 <> 1000127 then if s32 <> 1000127 then
Error; Error(24);
s32 := s8 + s32_2; s32 := s8 + s32_2;
if s32 <> 1000127 then if s32 <> 1000127 then
Error; Error(25);
Writeln(' signed32 + unsigned8 -> signed32 '); Writeln(' signed32 + unsigned8 -> signed32 ');
s32_2 := 1000000; u8 := 255; s32_2 := 1000000; u8 := 255;
s32 := s32_2 + u8; s32 := s32_2 + u8;
if s32 <> 1000255 then if s32 <> 1000255 then
Error; Error(26);
s32 := u8 + s32_2; s32 := u8 + s32_2;
if s32 <> 1000255 then if s32 <> 1000255 then
Error; Error(27);
Writeln(' signed32 + signed16 -> signed32 '); Writeln(' signed32 + signed16 -> signed32 ');
s32_2 := 1000000; s16 := 32767; s32_2 := 1000000; s16 := 32767;
s32 := s32_2 + s16; s32 := s32_2 + s16;
if s32 <> 1032767 then if s32 <> 1032767 then
Error; Error(28);
s32 := s16 + s32_2; s32 := s16 + s32_2;
if s32 <> 1032767 then if s32 <> 1032767 then
Error; Error(29);
Writeln(' signed32 + unsigned16 -> signed32 '); Writeln(' signed32 + unsigned16 -> signed32 ');
s32_2 := 1000000; u16 := 65535; s32_2 := 1000000; u16 := 65535;
s32 := s32_2 + u16; s32 := s32_2 + u16;
if s32 <> 1065535 then if s32 <> 1065535 then
Error; Error(30);
s32 := u16 + s32_2; s32 := u16 + s32_2;
if s32 <> 1065535 then if s32 <> 1065535 then
Error; Error(31);
Writeln(' signed32 + signed32 -> signed32 '); Writeln(' signed32 + signed32 -> signed32 ');
s32_2 := 1000000000; s32_2 := 1000000000;
s32 := s32_2 + s32_2; s32 := s32_2 + s32_2;
if s32 <> 2000000000 then if s32 <> 2000000000 then
Error; Error(32);
s32 := s32_2 + s32_2 + s32_2; s32 := s32_2 + s32_2 + s32_2;
if s32 <> -1294967296 then if s32 <> -1294967296 then
Error; Error(33);
Halt(ErrorCode); Halt(ErrorCode);
end. end.