Преглед изворни кода

tests: added tests for class sealed, class abstract

git-svn-id: branches/paul/features@13885 -
paul пре 16 година
родитељ
комит
1235367a27
4 измењених фајлова са 83 додато и 0 уклоњено
  1. 3 0
      .gitattributes
  2. 49 0
      tests/test/tabstract1.pp
  3. 17 0
      tests/test/tsealed1.pp
  4. 14 0
      tests/test/tsealed2.pp

+ 3 - 0
.gitattributes

@@ -8084,6 +8084,7 @@ tests/test/packages/win-base/tdispvar1.pp svneol=native#text/plain
 tests/test/packages/zlib/tzlib1.pp svneol=native#text/plain
 tests/test/t4cc1.pp svneol=native#text/plain
 tests/test/t4cc2.pp svneol=native#text/plain
+tests/test/tabstract1.pp svneol=native#text/pascal
 tests/test/tabstrcl.pp svneol=native#text/plain
 tests/test/tabsvr1.pp svneol=native#text/plain
 tests/test/tabsvr2.pp svneol=native#text/plain
@@ -8394,6 +8395,8 @@ tests/test/trtti2.pp svneol=native#text/plain
 tests/test/trtti3.pp svneol=native#text/plain
 tests/test/trtti4.pp svneol=native#text/plain
 tests/test/trtti5.pp svneol=native#text/plain
+tests/test/tsealed1.pp svneol=native#text/pascal
+tests/test/tsealed2.pp svneol=native#text/pascal
 tests/test/tsel1.pp svneol=native#text/plain
 tests/test/tsel2.pp svneol=native#text/plain
 tests/test/tset1.pp svneol=native#text/plain

+ 49 - 0
tests/test/tabstract1.pp

@@ -0,0 +1,49 @@
+{$ifdef fpc}
+{$mode objfpc}
+{$endif fpc}
+type
+  TAbstractClass = class abstract
+  public
+    procedure Test; virtual;
+  end;
+
+  TAbstractClassDescendant = class(TAbstractClass)
+  public
+    procedure Test; override;
+  end;
+
+  TSealedClass = class sealed
+  public
+    procedure Test;
+  end;
+
+procedure TAbstractClass.Test;
+begin
+end;
+
+procedure TAbstractClassDescendant.Test;
+begin
+end;
+
+procedure TSealedClass.Test;
+begin
+end;
+
+var
+  AClass: TAbstractClass;
+  AClassDesc: TAbstractClassDescendant;
+  SClass: TSealedClass;
+begin
+  AClass := TAbstractClass.Create;
+  AClass.Test;
+  AClass.Free;
+
+  AClassDesc:= TAbstractClassDescendant.Create;
+  AClassDesc.Test;
+  AClassDesc.Free;
+
+  SClass := TSealedClass.Create;
+  SClass.Test;
+  SClass.Free;
+end.
+

+ 17 - 0
tests/test/tsealed1.pp

@@ -0,0 +1,17 @@
+{ %fail }
+{$ifdef fpc}
+{$mode objfpc}
+{$endif}
+
+type
+  TSealedClass = class sealed
+  public
+  end;
+
+  TSealedDesdentantClass = class(TSealedClass)
+  public
+  end;
+
+begin
+end.
+

+ 14 - 0
tests/test/tsealed2.pp

@@ -0,0 +1,14 @@
+{ %fail }
+{$ifdef fpc}
+{$mode objfpc}
+{$endif}
+
+type
+  TSealedClass = class sealed
+  public
+    procedure TestAbstract; virtual; abstract;
+  end;
+
+begin
+end.
+