mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 10:09:33 +02:00

tests o currently not yet integrated in the makefile system, use testall.sh/ testall.bat to run the tests git-svn-id: branches/jvmbackend@18777 -
85 lines
1.5 KiB
ObjectPascal
85 lines
1.5 KiB
ObjectPascal
program tenum;
|
|
|
|
{$mode delphi}
|
|
|
|
uses
|
|
uenum;
|
|
|
|
const
|
|
cenum = mea;
|
|
|
|
type
|
|
tenumclass = class
|
|
e: myenum;
|
|
constructor create;
|
|
end;
|
|
|
|
constructor tenumclass.create;
|
|
begin
|
|
if e<>mea then
|
|
raise JLException.create('error create');
|
|
end;
|
|
|
|
function func: myenum;
|
|
begin
|
|
result:=cenum;
|
|
end;
|
|
|
|
var
|
|
a: myenum;
|
|
b1,b2: myenumjumps;
|
|
l: longint;
|
|
arr: array[myenum] of byte;
|
|
c: tenumclass;
|
|
earr: array[1..4] of myenum;
|
|
dearr: array of myenum;
|
|
begin
|
|
c:=tenumclass.create;
|
|
if earr[1]<>mea then
|
|
raise JLException.create('error 0');
|
|
setlength(dearr,1);
|
|
if dearr[0]<>mea then
|
|
raise JLException.create('error 0a');
|
|
a:=cenum;
|
|
inc(a);
|
|
if ord(a)<>1 then
|
|
raise JLException.create('error 1');
|
|
a:=succ(a);
|
|
if a<>mec then
|
|
raise JLException.create('error 2');
|
|
|
|
arr[a]:=123;
|
|
if arr[mec]<>123 then
|
|
raise JLException.create('error 2a');
|
|
l:=0;
|
|
for a:=func to mec do
|
|
inc(l,ord(a));
|
|
if l<>3 then
|
|
raise JLException.create('error 2b');
|
|
if JLObject(mea).toString<>'mea' then
|
|
raise JLException.create('expected mea, got '+unicodestring(JLObject(mea).toString));
|
|
|
|
a:=mec;
|
|
case a of
|
|
mea..meb:
|
|
raise JLException.create('error 2c');
|
|
mec:
|
|
;
|
|
else
|
|
raise JLException.create('error 2d');
|
|
end;
|
|
|
|
|
|
b1:=meja;
|
|
b2:=mejb;
|
|
if b1<=b2 then
|
|
raise JLException.create('error 3');
|
|
b2:=mejc;
|
|
if b1>=b2 then
|
|
raise JLException.create('error 4');
|
|
l:=-5;
|
|
b2:=myenumjumps(l);
|
|
if b2<>mejb then
|
|
raise JLException.create('error 5');
|
|
end.
|