Test suite results for test file tbs/tb0485.pp

Test run data :

Run ID:
Operating system: linux
Processor: aarch64
Version: 3.2.3
Fails/OK/Total: 33/7942/7975
Version: 3.2.3
Full version: 3.2.3-1373-gae0fe8a6a0
Comment: -XR/home/pierre/sys-root/aarch64-linux -Xd -Xr/home/pierre/sys-root/aarch64-linux
Machine: gcclocal
Category: 1
SVN revisions: fdf93c5b29:c17a0e20f5:ae0fe8a6a0:d1c29e6cb9
Submitter: pierre
Date: 2024/04/19 10:20:00 <> 2024/04/09
Previous run: 934289
Next run: 935630

Hide skipped tests

Hide successful tests

Test file "tbs/tb0485.pp" information:

t_id 1490
t_adddate 2005/02/11
t_result 0
t_knownrunerror 0

Detailed test run results:

tr_idruntr_oktr_skiptr_result
443549264934948TrueFalseSuccessfully run

Record count: 1

No log of 934948.

Source:

{$mode objfpc}
program test05;

uses
  SysUtils;


type
         QObjectH = class(TObject) end;
                QWidgetH = class(QObjectH) end;


IQbase = interface(IUnknown)
end;

TQBase = class(TInterfacedObject,IQBase)
protected
  fQHandle : TObject;
  function GetQHandle : TObject;
  procedure SetQHandle(Value : TObject);
public
  property QHandle : TObject read GetQHandle write SetQHandle;
end;



IQObject = interface(IQBase)
  function GetQHandle : QObjectH;
  property QHandle : QObjectH read GetQHandle;
end;


TQObject = class(TQBase, IQObject)
protected
  function GetQHandle : QObjectH; overload;
  procedure SetQHandle(Value:QObjectH);

public
  property QHandle : QObjectH read GetQHandle write SetQHandle;
  constructor CreateWrapper;
  Constructor Create(name: PAnsiChar); overload;
end;


IQWidget = interface(IQObject)
  function GetQHandle : QWidgetH;
  property QHandle : QWidgetH read GetQHandle;
  function Width: Integer;
end;


TQWidget = class(TQObject, IQWidget)
protected
  function GetQHandle : QWidgetH; overload;
  procedure SetQHandle(Value:QWidgetH);
public
  property QHandle : QWidgetH read GetQHandle write SetQHandle;
  constructor CreateWrapper;
  Constructor Create(name: PAnsiChar); overload;
  function Width: Integer;
end;


function TQObject.GetQHandle : QObjectH;
begin
  if Self <> nil then Result := QObjectH(fQHandle)
  else Result := nil;
end;

procedure TQObject.SetQHandle(Value : QObjectH);
begin
  fQHandle := TObject(Value);
end;

constructor TQObject.CreateWrapper;
begin
  inherited Create;
end;



Constructor TQObject.Create(name: PAnsiChar);
begin
   CreateWrapper;
end;



function TQBase.GetQHandle : TObject;
begin
  Result := fQHandle
end;


procedure TQBase.SetQHandle(Value : TObject);
begin
  fQHandle:=Value;
end;



function TQWidget.GetQHandle : QWidgetH;
begin
  write('    entering TQWidget.GetQHandle ...');
  if Self <> nil then Result := QWidgetH(fQHandle)
  else Result := nil;
  writeln('...leaving entering TQWidget.GetQHandle');
end;

procedure TQWidget.SetQHandle(Value : QWidgetH);
begin
  fQHandle := TObject(Value);
end;

constructor TQWidget.CreateWrapper;
begin
  write('    entering TQWidget.CreateWrapper ...');
  inherited Create;
  writeln('...leaving TQWidget.CreateWrapper');
end;



Constructor TQWidget.Create(name: PAnsiChar);
begin
  write('entering TQWidget.Create ...');
  CreateWrapper;
  writeln('... leaving TQWidget.Create');
end;



function TQWidget.Width: Integer;
begin
  write('    entering TQWidget.Width...');
  Result:=123;
  writeln('...leaving TQWidget.Width');
end;



function GetWidget : IQWidget;
begin
Result := TQWidget.CreateWrapper;
end;


begin
writeln('GetWidget.Width (123)?:',GetWidget.Width);
if GetWidget.Width<>123 then
  begin
  	writeln('error');
  	halt(1);
  end;
end.

Link to SVN view of tbs/tb0485.pp source.