fpc/tests/test/jvm/ttincdec.pp
2012-10-21 17:56:42 +00:00

116 lines
1.4 KiB
ObjectPascal

{$mode objfpc}
program ttincdec;
{$q+}
{$r+}
type
tenum = (ea,eb,ec,ed,ef,eg,eh);
procedure testbool;
var
b: boolean;
caught: boolean;
begin
caught := false;
b := false;
inc(b);
try
inc(b);
except
on e: FpcRunTimeError do
caught := e.errornr=201;
end;
if not caught or
not b then
halt(1);
caught := false;
dec(b);
try
dec(b);
except
on e: FpcRunTimeError do
caught := e.errornr=201;
end;
if not caught or
b then
halt(2);
end;
procedure testchar;
var
b: char;
caught: boolean;
begin
caught := false;
b := #254;
inc(b);
try
inc(b);
except
on e: FpcRunTimeError do
caught := e.errornr=201;
end;
if not caught or
(b <> #255) then
halt(3);
caught := false;
b := #1;
dec(b);
try
dec(b);
except
on e: FpcRunTimeError do
caught := e.errornr=201;
end;
if not caught or
(b <> #0) then
halt(4);
end;
procedure testenum;
var
b: tenum;
caught: boolean;
begin
caught := false;
b := eg;
inc(b);
try
inc(b);
except
on e: FpcRunTimeError do
caught := e.errornr=201;
end;
if not caught or
(b <> eh) then
halt(5);
caught := false;
b := eb;
dec(b);
try
dec(b);
except
on e: FpcRunTimeError do
caught := e.errornr=201;
end;
if not caught or
(b <> ea) then
halt(6);
end;
begin
testbool;
testchar;
testenum;
end.