git-svn-id: trunk@9 -

This commit is contained in:
florian 2005-05-17 20:39:18 +00:00
parent b68af1b0e3
commit 8caa0877d8
2 changed files with 144 additions and 0 deletions

1
.gitattributes vendored
View File

@ -6128,6 +6128,7 @@ tests/webtbs/tw3893.pp -text
tests/webtbs/tw3898.pp -text tests/webtbs/tw3898.pp -text
tests/webtbs/tw3899.pp -text tests/webtbs/tw3899.pp -text
tests/webtbs/tw3900.pp -text tests/webtbs/tw3900.pp -text
tests/webtbs/tw3973.pp -text
tests/webtbs/ub1873.pp -text tests/webtbs/ub1873.pp -text
tests/webtbs/ub1883.pp -text tests/webtbs/ub1883.pp -text
tests/webtbs/uw0555.pp -text tests/webtbs/uw0555.pp -text

143
tests/webtbs/tw3973.pp Normal file
View File

@ -0,0 +1,143 @@
{ Source provided for Free Pascal Bug Report 3973 }
{ Submitted by "alphax" on 2005-05-16 }
{ e-mail: graphcoloring@yahoo.com.cn }
program fpc_test_3;
{$APPTYPE CONSOLE}
{$IFDEF FPC}
{$MODE objfpc}
{$ENDIF}
uses
SysUtils, Variants;
var
FailureCount: Integer;
procedure TestOpenArray;
procedure p(const a: array of const);
procedure Check(
const TypeName: string;
const aVarRec: TVarRec;
const aExpectedVType: Byte
);
begin
Write('VType of ', TypeName, ' element is: ', aVarRec.VType, '--------');
if aVarRec.VType = aExpectedVType then
WriteLn('Ok')
else
begin
Inc(FailureCount);
WriteLn('Failure');
end;
end;
begin
Check('Currency', a[0], vtCurrency);
Check('Interface(nil)', a[1], vtInterface);
Check('Interface', a[2], vtInterface);
Check('Class Object(nil)', a[3], vtObject);
Check('Class', a[4], vtClass);
{$IFDEF FPC}
Check('QWord', a[5], vtQWord);
{$ENDIF}
{ I WISH FPC Introduce a vtDateTime for the TDatetime parameter }
end;
var
C: Currency;
DT: TDateTime;
IntfNil, Intf: IInterface;
Obj: TObject;
{$IFDEF FPC}
Quad: QWord;
{$ENDIF}
begin
C := 0;
IntfNil := nil;
Intf := TInterfacedObject.Create();
Obj := nil;
{$IFDEF FPC}
Quad := 0;
p([C, IntfNil, Intf, Obj, TObject, Quad]);
{$ELSE}
p([C, IntfNil, Intf, Obj, TObject]);
{$ENDIF}
end;
procedure TestVarType;
procedure Check(
const aTypeName: string;
const V: Variant;
const aExpectedVarType: TVarType);
var
VT: TVarType;
begin
VT := VarType(V);
Write('VarType of ', aTypeName, ' variant is: ', VT, '--------');
if VT = aExpectedVarType then
Writeln('Ok')
else
begin
WriteLn('Failure');
Inc(FailureCount);
end;
end;
var
C: Currency;
DT: TDateTime;
Intf: IInterface;
{$IFDEF FPC}
Quad: QWord;
{$ENDIF}
begin
C := 0;
DT := 0;
Intf := TInterfacedObject.Create();
{$IFDEF FPC}
Quad := 0;
{$ENDIF}
Check('Currency', C, varCurrency);
Check('Datetime', DT, varDate);
Check('Interface', Intf, varUnknown);
{$IFDEF FPC}
Check('QWord', Quad, varQWord);
{$ENDIF}
end;
procedure TestFormat;
var
uLong: Longword;
Longlong: Int64;
{$IFDEF FPC}
Quad: QWord;
{$ENDIF}
begin
uLong := High(uLong);
Writeln(Format('high of longword is: %u', [uLong]), ' ', IntToHex(ulong, 8));
Longlong := High(Longlong);
Writeln(Format('high of int64 is: %d', [Longlong]), ' ', IntToHex(Longlong, 16));
{$IFDEF FPC}
Quad := High(Quad);
Writeln(Format('high of quadword is: %u', [Quad]), ' ', IntToHex(Quad, 16));
{$ENDIF}
end;
begin
TestOpenArray();
TestVarType();
TestFormat();
WriteLn;
if FailureCount = 0 then
WriteLn('All passed')
else WriteLn(FailureCount, 'Failures');
ReadLn;
end.