소스 검색

pastojs: test precompiled local types

git-svn-id: trunk@40715 -
Mattias Gaertner 6 년 전
부모
커밋
3099c4db18
2개의 변경된 파일56개의 추가작업 그리고 5개의 파일을 삭제
  1. 49 2
      packages/pastojs/tests/tcfiler.pas
  2. 7 3
      packages/pastojs/tests/tcmodules.pas

+ 49 - 2
packages/pastojs/tests/tcfiler.pas

@@ -139,12 +139,14 @@ type
     procedure TestPC_Var;
     procedure TestPC_Enum;
     procedure TestPC_Set;
+    procedure TestPC_Set_InFunction;
     procedure TestPC_SetOfAnonymousEnumType;
     procedure TestPC_Record;
-    procedure TestPC_Record_Local;
+    procedure TestPC_Record_InFunction;
     procedure TestPC_JSValue;
     procedure TestPC_Array;
     procedure TestPC_ArrayOfAnonymous;
+    procedure TestPC_Array_InFunction;
     procedure TestPC_Proc;
     procedure TestPC_Proc_Nested;
     procedure TestPC_Proc_LocalConst;
@@ -1674,6 +1676,32 @@ begin
   WriteReadUnit;
 end;
 
+procedure TTestPrecompile.TestPC_Set_InFunction;
+begin
+  StartUnit(false);
+  Add([
+  'interface',
+  'procedure DoIt;',
+  'implementation',
+  'procedure DoIt;',
+  'type',
+  '  TEnum = (red,green,blue);',
+  '  TEnumRg = green..blue;',
+  '  TEnumAlias = TEnum;', // alias
+  '  TSetOfEnum = set of TEnum;',
+  '  TSetOfEnumRg = set of TEnumRg;',
+  '  TSetOfDir = set of (west,east);',
+  'var',
+  '  Empty: TSetOfEnum = [];', // empty set lit
+  '  All: TSetOfEnum = [low(TEnum)..pred(high(TEnum)),high(TEnum)];', // full set lit, range in set
+  '  Dirs: TSetOfDir;',
+  'begin',
+  '  Dirs:=[east];',
+  'end;',
+  '']);
+  WriteReadUnit;
+end;
+
 procedure TTestPrecompile.TestPC_SetOfAnonymousEnumType;
 begin
   StartUnit(false);
@@ -1703,7 +1731,7 @@ begin
   WriteReadUnit;
 end;
 
-procedure TTestPrecompile.TestPC_Record_Local;
+procedure TTestPrecompile.TestPC_Record_InFunction;
 begin
   StartUnit(false);
   Add([
@@ -1763,6 +1791,25 @@ begin
   WriteReadUnit;
 end;
 
+procedure TTestPrecompile.TestPC_Array_InFunction;
+begin
+  StartUnit(false);
+  Add([
+  'interface',
+  'procedure DoIt;',
+  'implementation',
+  'procedure DoIt;',
+  'type',
+  '  TArr = array[1..2] of word;',
+  'var',
+  '  arr: TArr;',
+  'begin',
+  '  arr[2]:=arr[1];',
+  'end;',
+  '']);
+  WriteReadUnit;
+end;
+
 procedure TTestPrecompile.TestPC_Proc;
 begin
   StartUnit(false);

+ 7 - 3
packages/pastojs/tests/tcmodules.pas

@@ -447,11 +447,15 @@ type
     Procedure TestRecord_Const;
     Procedure TestRecord_TypecastFail;
     Procedure TestRecord_InFunction;
-    // Test RTTI of local record
-    // Test pcu local record, name clash and rtti
+    // ToDo: RTTI of local record
+    // ToDo: pcu local record, name clash and rtti
 
     // advanced record
-    // ToDo: TestRecord_InFunction;
+    // ToDo: TestAdvRecord_Function;
+    // ToDo: TestAdvRecord_Property;
+    // ToDo: TestAdvRecord_PropertyDefault;
+    // ToDo: TestAdvRecord_InFunction;
+    // ToDo: pcu: record default property
 
     // classes
     Procedure TestClass_TObjectDefaultConstructor;