fpc/tests/webtbs/tw33205.pp
Jonas Maebe 2eeda5d06f * added test that already works (mantis #33205)
git-svn-id: trunk@38729 -
2018-04-10 18:39:19 +00:00

79 lines
1.2 KiB
ObjectPascal

program BugFPC;
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF FPC}
uses
SysUtils;
type
TBug = record
strict private
class constructor Bugger();
public
var
a: Int32;
st: string;
arr: TBytes;
class var
skim: TBug;
constructor Create(b: Int32);
end;
{ TBug }
class constructor TBug.Bugger;
begin
skim := Default (TBug);
skim.a := 5;
skim.st := 'fish';
skim.arr := TBytes.Create(1, 2, 3);
Writeln(skim.a); // should be 5
Writeln(skim.st); // should be 'fish'
Writeln(Length(skim.arr)); // should be 3
if skim.a<>5 then
halt(1);
if skim.st<>'fish' then
halt(2);
if length(skim.arr)<>3 then
halt(3);
end;
constructor TBug.Create(b: Int32);
var
temp: TBug;
begin
temp := skim;
Writeln(temp.a); // should be 5
Writeln(temp.st); // should be 'fish' but got ''
Writeln(Length(skim.arr)); // should be 3 but got 0
if skim.a<>5 then
halt(4);
if skim.st<>'fish' then
halt(5);
if length(skim.arr)<>3 then
halt(6);
end;
begin
try
TBug.Create(9);
except
on E: Exception do
begin
Writeln(E.ClassName, ': ', E.Message);
halt(7);
end;
end;
end.