Browse Source

+ additional test

florian 9 months ago
parent
commit
99a9cfbc71
2 changed files with 45 additions and 0 deletions
  1. 26 0
      tests/test/timplements8.pp
  2. 19 0
      tests/test/uimplements8.pp

+ 26 - 0
tests/test/timplements8.pp

@@ -0,0 +1,26 @@
+{$ifdef fpc}
+{$mode objfpc}
+{$endif fpc}
+uses
+  classes,uimplements8;
+
+var
+  o1 : to1;
+  i1,i2 : IInterface;
+begin
+  o1:=to1.create;
+  o1.fi:=TInterfacedObject.Create;
+  i1:=o1;
+  i1.QueryInterface(IInterface,i2);
+  if i2=nil then
+    halt(1);
+  o1.fi:=nil;
+  i1.QueryInterface(IInterface,i2);
+  if i2=nil then
+    halt(1);
+  o1.free;
+  i1.QueryInterface(IInterface,i2);
+  if i2=nil then
+    halt(1);
+  writeln('ok');
+end.

+ 19 - 0
tests/test/uimplements8.pp

@@ -0,0 +1,19 @@
+{$ifdef fpc}
+{$mode objfpc}
+{$endif fpc}
+unit uimplements8;
+
+interface
+
+uses
+  classes;
+
+type
+  to1 = class(TObject,IInterface)
+    fi : IInterface;
+    property i : IInterface read fi implements IInterface;
+  end;
+
+implementation
+
+end.