mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 12:12:25 +00:00
Port updated tests and binary snapping, with corrected Reals code, from tidy branch.
This commit is contained in:
parent
b1dc7d77e8
commit
ca2cc52a44
221 changed files with 949 additions and 550 deletions
|
|
@ -91,11 +91,51 @@ BEGIN
|
|||
(* Also need full tests for CHAR, and poossibly SYSTEM.BYTE. Here's a simple one *)
|
||||
|
||||
c := 1X; c := SYSTEM.LSH(c,2); c := SYSTEM.ROT(c,-2); ASSERT(c=1X, 93);
|
||||
b := 1; b := SYSTEM.LSH(b,2); b := SYSTEM.ROT(b,-2); ASSERT(SYSTEM.VAL(INTEGER,b)=1, 94);
|
||||
b := 1; b := SYSTEM.LSH(b,2); b := SYSTEM.ROT(b,-2); ASSERT(SYSTEM.VAL(CHAR,b)=1X, 94);
|
||||
|
||||
END Shift;
|
||||
|
||||
|
||||
PROCEDURE TestValue(v,e: LONGINT; name: ARRAY OF CHAR);
|
||||
BEGIN
|
||||
IF v # e THEN
|
||||
Console.String(name);
|
||||
Console.String(" = ");
|
||||
Console.Int(v,1);
|
||||
Console.String(", expected ");
|
||||
Console.Int(e,1);
|
||||
Console.Ln;
|
||||
END
|
||||
END TestValue;
|
||||
|
||||
PROCEDURE IntSize;
|
||||
VAR l: LONGINT;
|
||||
BEGIN
|
||||
TestValue(MIN(SHORTINT), -80H, "MIN(SHORTINT)");
|
||||
TestValue(MAX(SHORTINT), 7FH, "MAX(SHORTINT)");
|
||||
IF SIZE(INTEGER) = 2 THEN (* 32 bit machine *)
|
||||
TestValue(MIN(INTEGER), -7FFFH - 1, "MIN(INTEGER)");
|
||||
TestValue(MAX(INTEGER), 7FFFH, "MAX(INTEGER)");
|
||||
TestValue(MIN(LONGINT), -7FFFFFFFH - 1, "MIN(LONGINT)");
|
||||
TestValue(MAX(LONGINT), 7FFFFFFFH, "MAX(LONGINT)");
|
||||
ELSIF SIZE(INTEGER) = 4 THEN (* 64 bit machine *)
|
||||
TestValue(MIN(INTEGER), -7FFFFFFFH - 1, "MIN(INTEGER)");
|
||||
TestValue(MAX(INTEGER), 7FFFFFFFH, "MAX(INTEGER)");
|
||||
(* Since we need to be compilable on 32 bit machines we cannot use
|
||||
a 64 bit constant, so use arithmetic. *)
|
||||
l := 1; l := SYSTEM.LSH(l, 63); l := l-1; (* Generate l = 7FFFFFFFFFFFFFFFH *)
|
||||
TestValue(MIN(LONGINT), -l - 1, "MIN(LONGINT)");
|
||||
TestValue(MAX(LONGINT), l, "MAX(LONGINT)");
|
||||
ELSE
|
||||
Console.String("SIZE(INTEGER) = ");
|
||||
Console.Int(SIZE(INTEGER),1);
|
||||
Console.String(", expected 2 or 4.");
|
||||
Console.Ln;
|
||||
END;
|
||||
END IntSize;
|
||||
|
||||
BEGIN
|
||||
Shift;
|
||||
IntSize;
|
||||
Console.String("Language tests successful."); Console.Ln;
|
||||
END TestLanguage.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue