fpc/tests/test/thlp37.pp
svenbarth 553d357d64 Completely restructured the test for the helper feature. The tests were split into three categories:
* general tests for the helper feature (thlp*)
* tests for class helpers (tchlp*)
* tests for record helpers (trhlp*)

With my current yet-to-be-commited implementation nearly all tests pass, but some fail because of missing FPC features:
* thlp30.pp currently fails because of generic constraints, but should fail despite the constraints
* thlp29.pp fails, because generic methods are not yet supported
* trhlp8.pp, trhlp9.pp, trhlp10.pp fail, because one can't use default properties using the abbreviated syntax
* trhlp17.pp, trhlp18.pp, trhlp19.pp fail, because nested types are not supported for records

git-svn-id: branches/svenbarth/classhelpers@17237 -
2011-04-03 13:33:23 +00:00

54 lines
868 B
ObjectPascal

{ published properties/methods are available in the helper's RTTI }
program thlp37;
{$ifdef fpc}
{$mode delphi}
{$endif}
{$apptype console}
uses
typinfo;
type
TFoo = class
end;
{$M+}
TFooHelper = class helper for TFoo
private
function GetTest: Integer;
published
property Test: Integer read GetTest;
end;
{$M-}
function TFooHelper.GetTest: Integer;
begin
Result := 2;
end;
var
ti: PTypeInfo;
td: PTypeData;
begin
ti := TypeInfo(TFooHelper);
if ti = Nil then begin
Writeln('TypeInfo is Nil');
Halt(1);
end;
if ti^.Kind <> tkHelper then begin
Writeln('Type kind is not a helper');
Halt(2);
end;
td := GetTypeData(ti);
if td = Nil then begin
Writeln('TypeData is Nil');
Halt(3);
end;
Writeln('Property count: ', td^.PropCount);
if td^.PropCount <> 1 then
Halt(4);
Writeln('ok');
end.