Test suite results for test file tbs/tb0485.pp

Test run data :

Free Pascal Compiler Test Suite Results

View Test suite results

Please specify search criteria:
File:
Operating system:
Processor:
Version
Date
Submitter
Machine
Comment
Limit
Cond
Category
Only failed tests
Hide skipped tests
List all 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:

Record count: 50

Total = 50

OK=50 Percentage= 100.00

Result type Cat. Count Percentage First date Last Date
Successfully run 50 100.0 2024/10/19 07:29:00 50 2024/10/19 13:36:00 24
i386 4 8.0 2024/10/19 09:39:00 55 2024/10/19 11:13:00 63
m68k 3 6.0 2024/10/19 07:29:00 50 2024/10/19 10:22:00 40
sparc 4 8.0 2024/10/19 08:05:00 45 2024/10/19 11:16:00 40
powerpc 6 12.0 2024/10/19 08:40:00 51 2024/10/19 13:26:00 65
arm 2 4.0 2024/10/19 09:36:00 32 2024/10/19 10:03:00 32
x86_64 9 18.0 2024/10/19 08:27:00 30 2024/10/19 13:36:00 24
powerpc64 9 18.0 2024/10/19 08:43:00 65 2024/10/19 10:59:00 68
mips 2 4.0 2024/10/19 09:54:00 35 2024/10/19 10:28:00 38
mipsel 2 4.0 2024/10/19 09:59:00 38 2024/10/19 10:35:00 142
aarch64 4 8.0 2024/10/19 08:15:00 27 2024/10/19 09:57:00 26
sparc64 2 4.0 2024/10/19 09:25:00 118 2024/10/19 10:46:00 141
riscv64 2 4.0 2024/10/19 10:25:00 33 2024/10/19 11:10:00 26
loongarch64 1 2.0 2024/10/19 09:45:00 25 2024/10/19 09:45:00 25
linux 34 68.0 2024/10/19 07:29:00 50 2024/10/19 11:38:00 25
go32v2 3 6.0 2024/10/19 09:39:00 55 2024/10/19 11:13:00 63
solaris 5 10.0 2024/10/19 13:22:00 24 2024/10/19 13:36:00 24
aix 8 16.0 2024/10/19 08:40:00 51 2024/10/19 13:26:00 65
3.3.1 32 64.0 2024/10/19 08:05:00 45 2024/10/19 13:26:00 65
3.2.3 18 36.0 2024/10/19 07:29:00 50 2024/10/19 13:36:00 24

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.