From d230df984e31c45ee3e4442c95d35e7c48ba4964 Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 25 Feb 1999 14:31:26 +0000 Subject: [PATCH] Added Array of const test. --- tests/README | 1 + tests/testaoc.pp | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 tests/testaoc.pp diff --git a/tests/README b/tests/README index 4396842774..2fbadb0251 100644 --- a/tests/README +++ b/tests/README @@ -46,3 +46,4 @@ testdos.pp test dos unit functions testset.pp test set functions testheap.pp test heap functions teststr.pp test string functions and speed +testaoc.pp test Array of construct. diff --git a/tests/testaoc.pp b/tests/testaoc.pp new file mode 100644 index 0000000000..dc6e848e64 --- /dev/null +++ b/tests/testaoc.pp @@ -0,0 +1,97 @@ +Program TestAOC; + +{ Program to test array of const } + +{ All elements of the following record must be tested : + Elements not yet tested are commented out. + + Type + PVarRec = ^TVarRec; + TVarRec = record + case vType: Byte of + vtInteger : (VInteger: Integer; VType:Longint); + vtBoolean : (VBoolean: Boolean); + vtChar : (VChar: Char); + vtExtended : (VExtended: PExtended); + vtString : (VString: PShortString); + vtPointer : (VPointer: Pointer); + vtPChar : (VPChar: PChar); + vtObject : (VObject: TObject); + vtClass : (VClass: TClass); + // vtWideChar : (VWideChar: WideChar); + // vtPWideChar : (VPWideChar: PWideChar); + vtAnsiString : (VAnsiString: Pointer); + // vtCurrency : (VCurrency: PCurrency); + // vtVariant : (VVariant: PVariant); + // vtInterface : (VInterface: Pointer); + // vtWideString : (VWideString: Pointer); + // vtInt64 : (VInt64: PInt64); + end; +} + +Procedure Testit (Args: Array of const); + +Var I : longint; + +begin + If High(Args)<0 then + begin + Writeln ('No aguments'); + exit; + end; + Writeln ('Got ',High(Args)+1,' arguments :'); + For i:=0 to High(Args) do + begin + write ('Argument ',i,' has type '); + case Args[i].vtype of + vtinteger : Writeln ('Integer, Value :',args[i].vinteger); + vtboolean : Writeln ('Boolean, Value :',args[i].vboolean); + vtchar : Writeln ('Char, value : ',args[i].vchar); + vtextended : Writeln ('Extended, value : ',args[i].VExtended^); + vtString : Writeln ('ShortString, value :',args[i].VString^); + vtPointer : Writeln ('Pointer, value : ',Longint(Args[i].VPointer)); + vtPChar : Writeln ('PCHar, value : ',Args[i].VPChar); + vtObject : Writeln ('Object, name : ',Args[i].VObject.Classname); + vtClass : Writeln ('Class reference, name : ',Args[i].VClass.Classname); + vtAnsiString : Writeln ('AnsiString, value :',AnsiString(Args[I].VAnsiString)); + +{ + vtWideChar : (VWideChar: WideChar); + vtPWideChar : (VPWideChar: PWideChar); + vtCurrency : (VCurrency: PCurrency); + vtVariant : (VVariant: PVariant); + vtInterface : (VInterface: Pointer); + vtWideString : (VWideString: Pointer); + vtInt64 : (VInt64: PInt64); +} + else + Writeln ('(Unknown) : ',args[i].vtype); + end; + end; +end; + +Const P1 : Pchar = 'Eerste Pchar'; + p2 : Pchar = 'Tweede pchar'; + +Var ObjA,ObjB : TObject; + ACLass,BClass : TClass; + S,T : AnsiString; + +begin + ObjA:=TObject.Create; + ObjB:=TObject.Create; + AClass:=TObject; + S:='Ansistring 1'; + T:='AnsiString 2'; + writeln ('Size of VarRec : ',Sizeof(TVarRec)); + Testit ([1,2]); + Testit (['A','B']); + Testit ([TRUE,FALSE,TRUE]); + Testit (['String','Another string']); + Testit ([S,T]) ; + Testit ([P1,P2]); + Testit ([@testit,Nil]); + Testit ([ObjA,ObjB]); + Testit ([1.234,1.234]); + TestIt ([AClass]); +end.