123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- {$mode objfpc}
- {$q+}
- {$r+}
- uses
- sysutils;
- 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 ERangeError do
- caught := true;
- end;
- if not caught or
- not b then
- halt(1);
- caught := false;
- dec(b);
- try
- dec(b);
- except
- on ERangeError do
- caught := true;
- 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 ERangeError do
- caught := true;
- end;
- if not caught or
- (b <> #255) then
- halt(3);
- caught := false;
- b := #1;
- dec(b);
- try
- dec(b);
- except
- on ERangeError do
- caught := true;
- 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 ERangeError do
- caught := true;
- end;
- if not caught or
- (b <> eh) then
- halt(5);
- caught := false;
- b := eb;
- dec(b);
- try
- dec(b);
- except
- on ERangeError do
- caught := true;
- end;
- if not caught or
- (b <> ea) then
- halt(6);
- end;
- begin
- testbool;
- testchar;
- testenum;
- end.
|