DBG: Tests

git-svn-id: trunk@34988 -
This commit is contained in:
martin 2012-01-28 15:30:45 +00:00
parent 59befe35c2
commit e70ecef532
5 changed files with 344 additions and 215 deletions

View File

@ -757,6 +757,10 @@
GlobAStatDualArrayTRec2: array [3..5, 3..5] of TRecForArray2; GlobAStatDualArrayTRec2: array [3..5, 3..5] of TRecForArray2;
// TODO
GlobAStatDynDynArrayTRec2 : array [3..5] of array of array of TRecForArray2;
GlobADynDynStatArrayTRec2 : array of array of array [3..5] of TRecForArray2;
{$ENDIF} {$ENDIF}
{%endregion} {%endregion}
@ -853,8 +857,8 @@
// dyn arrays // dyn arrays
//GlobTDynArrayTRec1: TDynArrayTRec1; //GlobTDynArrayTRec1: TDynArrayTRec1;
SetLength(GlobTDynArrayTRec1, 3); SetLength(GlobTDynArrayTRec1, 3);
GlobTDynArrayTRec1[0].a := 90; globtdynarraytrec1[0].a := 90; globtdynarraytrec1[0].b := 243;
GlobTDynArrayTRec1[1].a := 91; globtdynarraytrec1[1].a := 91; globtdynarraytrec1[1].b := 243;
//GlobTDynArrayPRec1: TDynArrayPRec1; //GlobTDynArrayPRec1: TDynArrayPRec1;
SetLength(GlobTDynArrayPRec1, 3); SetLength(GlobTDynArrayPRec1, 3);
GlobTDynArrayPRec1[0] := @GlobTDynArrayTRec1[0]; GlobTDynArrayPRec1[0] := @GlobTDynArrayTRec1[0];
@ -862,11 +866,11 @@
//GlobTDynDynArrayTRec1: TDynDynArrayTRec1; //GlobTDynDynArrayTRec1: TDynDynArrayTRec1;
SetLength(GlobTDynDynArrayTRec1, 3); SetLength(GlobTDynDynArrayTRec1, 3);
SetLength(GlobTDynDynArrayTRec1[0], 3); SetLength(GlobTDynDynArrayTRec1[0], 3);
GlobTDynDynArrayTRec1[0][0].a := 80; globtdyndynarraytrec1[0][0].a := 80; globtdyndynarraytrec1[0][0].b := 243;
GlobTDynDynArrayTRec1[0][1].a := 81; globtdyndynarraytrec1[0][1].a := 81; globtdyndynarraytrec1[0][1].b := 243;
SetLength(GlobTDynDynArrayTRec1[1], 3); SetLength(GlobTDynDynArrayTRec1[1], 3);
GlobTDynDynArrayTRec1[1][0].a := 85; globtdyndynarraytrec1[1][0].a := 85; globtdyndynarraytrec1[1][0].b := 243;
GlobTDynDynArrayTRec1[1][1].a := 86; globtdyndynarraytrec1[1][1].a := 86; globtdyndynarraytrec1[1][1].b := 243;
//GlobTDynDynArrayPRec1: TDynDynArrayPRec1; //GlobTDynDynArrayPRec1: TDynDynArrayPRec1;
SetLength(GlobTDynDynArrayPRec1, 3); SetLength(GlobTDynDynArrayPRec1, 3);
SetLength(GlobTDynDynArrayPRec1[0], 3); SetLength(GlobTDynDynArrayPRec1[0], 3);
@ -877,10 +881,10 @@
GlobTDynDynArrayPRec1[1][1] := @GlobTDynDynArrayTRec1[1][1]; GlobTDynDynArrayPRec1[1][1] := @GlobTDynDynArrayTRec1[1][1];
//GlobTDynStatArrayTRec1: TDynStatArrayTRec1; //GlobTDynStatArrayTRec1: TDynStatArrayTRec1;
SetLength(GlobTDynStatArrayTRec1, 3); SetLength(GlobTDynStatArrayTRec1, 3);
GlobTDynStatArrayTRec1[0][3].a := 70; globtdynstatarraytrec1[0][3].a := 70; globtdynstatarraytrec1[0][3].b := 243;
GlobTDynStatArrayTRec1[0][4].a := 71; globtdynstatarraytrec1[0][4].a := 71; globtdynstatarraytrec1[0][4].b := 243;
GlobTDynStatArrayTRec1[1][3].a := 75; globtdynstatarraytrec1[1][3].a := 75; globtdynstatarraytrec1[1][3].b := 243;
GlobTDynStatArrayTRec1[1][4].a := 76; globtdynstatarraytrec1[1][4].a := 76; globtdynstatarraytrec1[1][4].b := 243;
//GlobTDynStatArrayPRec1: TDynStatArrayPRec1; //GlobTDynStatArrayPRec1: TDynStatArrayPRec1;
SetLength(GlobTDynStatArrayPRec1, 3); SetLength(GlobTDynStatArrayPRec1, 3);
GlobTDynStatArrayPRec1[0][3] := @GlobTDynStatArrayTRec1[0][3]; GlobTDynStatArrayPRec1[0][3] := @GlobTDynStatArrayTRec1[0][3];
@ -890,8 +894,8 @@
//GlobTDynArrayTRec2: TDynArrayTRec2; //GlobTDynArrayTRec2: TDynArrayTRec2;
SetLength(GlobTDynArrayTRec2, 3); SetLength(GlobTDynArrayTRec2, 3);
GlobTDynArrayTRec2[0].c := 90; globtdynarraytrec2[0].c := 90; globtdynarraytrec2[0].recs := nil;
GlobTDynArrayTRec2[1].c := 91; globtdynarraytrec2[1].c := 91; globtdynarraytrec2[1].recs := nil;
//GlobTDynArrayPRec2: TDynArrayPRec2; //GlobTDynArrayPRec2: TDynArrayPRec2;
SetLength(GlobTDynArrayPRec2, 3); SetLength(GlobTDynArrayPRec2, 3);
GlobTDynArrayPRec2[0] := @GlobTDynArrayTRec2[0]; GlobTDynArrayPRec2[0] := @GlobTDynArrayTRec2[0];
@ -899,11 +903,11 @@
//GlobTDynDynArrayTRec2: TDynDynArrayTRec2; //GlobTDynDynArrayTRec2: TDynDynArrayTRec2;
SetLength(GlobTDynDynArrayTRec2, 3); SetLength(GlobTDynDynArrayTRec2, 3);
SetLength(GlobTDynDynArrayTRec2[0], 3); SetLength(GlobTDynDynArrayTRec2[0], 3);
GlobTDynDynArrayTRec2[0][0].c := 80; globtdyndynarraytrec2[0][0].c := 80; globtdyndynarraytrec2[0][0].recs := nil;
GlobTDynDynArrayTRec2[0][1].c := 81; globtdyndynarraytrec2[0][1].c := 81; globtdyndynarraytrec2[0][1].recs := nil;
SetLength(GlobTDynDynArrayTRec2[1], 3); SetLength(GlobTDynDynArrayTRec2[1], 3);
GlobTDynDynArrayTRec2[1][0].c := 85; globtdyndynarraytrec2[1][0].c := 85; globtdyndynarraytrec2[1][0].recs := nil;
GlobTDynDynArrayTRec2[1][1].c := 86; globtdyndynarraytrec2[1][1].c := 86; globtdyndynarraytrec2[1][1].recs := nil;
//GlobTDynDynArrayPRec2: TDynDynArrayPRec2; //GlobTDynDynArrayPRec2: TDynDynArrayPRec2;
SetLength(GlobTDynDynArrayPRec2, 3); SetLength(GlobTDynDynArrayPRec2, 3);
SetLength(GlobTDynDynArrayPRec2[0], 3); SetLength(GlobTDynDynArrayPRec2[0], 3);
@ -914,10 +918,10 @@
GlobTDynDynArrayPRec2[1][1] := @GlobTDynDynArrayTRec2[1][1]; GlobTDynDynArrayPRec2[1][1] := @GlobTDynDynArrayTRec2[1][1];
//GlobTDynStatArrayTRec2: TDynStatArrayTRec2; //GlobTDynStatArrayTRec2: TDynStatArrayTRec2;
SetLength(GlobTDynStatArrayTRec2, 3); SetLength(GlobTDynStatArrayTRec2, 3);
GlobTDynStatArrayTRec2[0][3].c := 70; globtdynstatarraytrec2[0][3].c := 70; globtdynstatarraytrec2[0][3].recs := nil;
GlobTDynStatArrayTRec2[0][4].c := 71; globtdynstatarraytrec2[0][4].c := 71; globtdynstatarraytrec2[0][4].recs := nil;
GlobTDynStatArrayTRec2[1][3].c := 75; globtdynstatarraytrec2[1][3].c := 75; globtdynstatarraytrec2[1][3].recs := nil;
GlobTDynStatArrayTRec2[1][4].c := 76; globtdynstatarraytrec2[1][4].c := 76; globtdynstatarraytrec2[1][4].recs := nil;
//GlobTDynStatArrayPRec2: TDynStatArrayPRec2; //GlobTDynStatArrayPRec2: TDynStatArrayPRec2;
SetLength(GlobTDynStatArrayPRec2, 3); SetLength(GlobTDynStatArrayPRec2, 3);
GlobTDynStatArrayPRec2[0][3] := @GlobTDynStatArrayTRec2[0][3]; GlobTDynStatArrayPRec2[0][3] := @GlobTDynStatArrayTRec2[0][3];
@ -928,18 +932,18 @@
// stat arrays // stat arrays
//GlobTStatArrayTRec1: TStatArrayTRec1; //GlobTStatArrayTRec1: TStatArrayTRec1;
GlobTStatArrayTRec1[3].a := 50; globtstatarraytrec1[3].a := 50; globtstatarraytrec1[3].b := 243;
GlobTStatArrayTRec1[4].a := 51; globtstatarraytrec1[4].a := 51; globtstatarraytrec1[4].b := 243;
//GlobTStatArrayPRec1: TStatArrayPRec1; //GlobTStatArrayPRec1: TStatArrayPRec1;
GlobTStatArrayPRec1[3] := @GlobTStatArrayTRec1[3]; GlobTStatArrayPRec1[3] := @GlobTStatArrayTRec1[3];
GlobTStatArrayPRec1[4] := @GlobTStatArrayTRec1[4]; GlobTStatArrayPRec1[4] := @GlobTStatArrayTRec1[4];
//GlobTStatDynArrayTRec1: TStatDynArrayTRec1; //GlobTStatDynArrayTRec1: TStatDynArrayTRec1;
SetLength(GlobTStatDynArrayTRec1[3], 3); SetLength(GlobTStatDynArrayTRec1[3], 3);
GlobTStatDynArrayTRec1[3][0].a := 40; globtstatdynarraytrec1[3][0].a := 40; globtstatdynarraytrec1[3][0].b := 243;
GlobTStatDynArrayTRec1[3][1].a := 41; globtstatdynarraytrec1[3][1].a := 41; globtstatdynarraytrec1[3][1].b := 243;
SetLength(GlobTStatDynArrayTRec1[4], 3); SetLength(GlobTStatDynArrayTRec1[4], 3);
GlobTStatDynArrayTRec1[4][0].a := 45; globtstatdynarraytrec1[4][0].a := 45; globtstatdynarraytrec1[4][0].b := 243;
GlobTStatDynArrayTRec1[4][1].a := 46; globtstatdynarraytrec1[4][1].a := 46; globtstatdynarraytrec1[4][1].b := 243;
//GlobTStatDynArrayPRec1: TStatDynArrayPRec1; //GlobTStatDynArrayPRec1: TStatDynArrayPRec1;
SetLength(GlobTStatDynArrayPRec1[3], 3); SetLength(GlobTStatDynArrayPRec1[3], 3);
GlobTStatDynArrayPRec1[3][0] := @GlobTDynDynArrayTRec1[3][0]; GlobTStatDynArrayPRec1[3][0] := @GlobTDynDynArrayTRec1[3][0];
@ -948,10 +952,10 @@
GlobTStatDynArrayPRec1[4][0] := @GlobTDynDynArrayTRec1[4][0]; GlobTStatDynArrayPRec1[4][0] := @GlobTDynDynArrayTRec1[4][0];
GlobTStatDynArrayPRec1[4][1] := @GlobTDynDynArrayTRec1[4][1]; GlobTStatDynArrayPRec1[4][1] := @GlobTDynDynArrayTRec1[4][1];
//GlobTStatStatArrayTRec1: TStatStatArrayTRec1; //GlobTStatStatArrayTRec1: TStatStatArrayTRec1;
GlobTStatStatArrayTRec1[3][3].a := 30; globtstatstatarraytrec1[3][3].a := 30; globtstatstatarraytrec1[3][3].b := 243;
GlobTStatStatArrayTRec1[3][4].a := 31; globtstatstatarraytrec1[3][4].a := 31; globtstatstatarraytrec1[3][4].b := 243;
GlobTStatStatArrayTRec1[4][3].a := 35; globtstatstatarraytrec1[4][3].a := 35; globtstatstatarraytrec1[4][3].b := 243;
GlobTStatStatArrayTRec1[4][4].a := 36; globtstatstatarraytrec1[4][4].a := 36; globtstatstatarraytrec1[4][4].b := 243;
//GlobTStatStatArrayPRec1: TStatStatArrayPRec1; //GlobTStatStatArrayPRec1: TStatStatArrayPRec1;
GlobTStatStatArrayPRec1[3][3] := @GlobTStatStatArrayTRec1[3][3]; GlobTStatStatArrayPRec1[3][3] := @GlobTStatStatArrayTRec1[3][3];
GlobTStatStatArrayPRec1[3][4] := @GlobTStatStatArrayTRec1[3][4]; GlobTStatStatArrayPRec1[3][4] := @GlobTStatStatArrayTRec1[3][4];
@ -959,18 +963,18 @@
GlobTStatStatArrayPRec1[4][4] := @GlobTStatStatArrayTRec1[4][4]; GlobTStatStatArrayPRec1[4][4] := @GlobTStatStatArrayTRec1[4][4];
//GlobTStatArrayTRec2: TStatArrayTRec2; //GlobTStatArrayTRec2: TStatArrayTRec2;
GlobTStatArrayTRec2[3].c := 50; globtstatarraytrec2[3].c := 50; globtstatarraytrec2[3].recs := nil;
GlobTStatArrayTRec2[4].c := 51; globtstatarraytrec2[4].c := 51; globtstatarraytrec2[4].recs := nil;
//GlobTStatArrayPRec2: TStatArrayPRec2; //GlobTStatArrayPRec2: TStatArrayPRec2;
GlobTStatArrayPRec2[3] := @GlobTStatArrayTRec2[3]; GlobTStatArrayPRec2[3] := @GlobTStatArrayTRec2[3];
GlobTStatArrayPRec2[4] := @GlobTStatArrayTRec2[4]; GlobTStatArrayPRec2[4] := @GlobTStatArrayTRec2[4];
//GlobTStatDynArrayTRec2: TStatDynArrayTRec2; //GlobTStatDynArrayTRec2: TStatDynArrayTRec2;
SetLength(GlobTStatDynArrayTRec2[3], 3); SetLength(GlobTStatDynArrayTRec2[3], 3);
GlobTStatDynArrayTRec2[3][0].c := 40; globtstatdynarraytrec2[3][0].c := 40; globtstatdynarraytrec2[3][0].recs := nil;
GlobTStatDynArrayTRec2[3][1].c := 41; globtstatdynarraytrec2[3][1].c := 41; globtstatdynarraytrec2[3][1].recs := nil;
SetLength(GlobTStatDynArrayTRec2[4], 3); SetLength(GlobTStatDynArrayTRec2[4], 3);
GlobTStatDynArrayTRec2[4][0].c := 45; globtstatdynarraytrec2[4][0].c := 45; globtstatdynarraytrec2[4][0].recs := nil;
GlobTStatDynArrayTRec2[4][1].c := 46; globtstatdynarraytrec2[4][1].c := 46; globtstatdynarraytrec2[4][1].recs := nil;
//GlobTStatDynArrayPRec2: TStatDynArrayPRec2; //GlobTStatDynArrayPRec2: TStatDynArrayPRec2;
SetLength(GlobTStatDynArrayPRec2[3], 3); SetLength(GlobTStatDynArrayPRec2[3], 3);
GlobTStatDynArrayPRec2[3][0] := @GlobTDynDynArrayTRec2[3][0]; GlobTStatDynArrayPRec2[3][0] := @GlobTDynDynArrayTRec2[3][0];
@ -979,10 +983,10 @@
GlobTStatDynArrayPRec2[4][0] := @GlobTDynDynArrayTRec2[4][0]; GlobTStatDynArrayPRec2[4][0] := @GlobTDynDynArrayTRec2[4][0];
GlobTStatDynArrayPRec2[4][1] := @GlobTDynDynArrayTRec2[4][1]; GlobTStatDynArrayPRec2[4][1] := @GlobTDynDynArrayTRec2[4][1];
//GlobTStatStatArrayTRec2: TStatStatArrayTRec2; //GlobTStatStatArrayTRec2: TStatStatArrayTRec2;
GlobTStatStatArrayTRec2[3][3].c := 30; globtstatstatarraytrec2[3][3].c := 30; globtstatstatarraytrec2[3][3].recs := nil;
GlobTStatStatArrayTRec2[3][4].c := 31; globtstatstatarraytrec2[3][4].c := 31; globtstatstatarraytrec2[3][4].recs := nil;
GlobTStatStatArrayTRec2[4][3].c := 35; globtstatstatarraytrec2[4][3].c := 35; globtstatstatarraytrec2[4][3].recs := nil;
GlobTStatStatArrayTRec2[4][4].c := 36; globtstatstatarraytrec2[4][4].c := 36; globtstatstatarraytrec2[4][4].recs := nil;
//GlobTStatStatArrayPRec2: TStatStatArrayPRec2; //GlobTStatStatArrayPRec2: TStatStatArrayPRec2;
GlobTStatStatArrayPRec2[3][3] := @GlobTStatStatArrayTRec2[3][3]; GlobTStatStatArrayPRec2[3][3] := @GlobTStatStatArrayTRec2[3][3];
GlobTStatStatArrayPRec2[3][4] := @GlobTStatStatArrayTRec2[3][4]; GlobTStatStatArrayPRec2[3][4] := @GlobTStatStatArrayTRec2[3][4];
@ -995,11 +999,11 @@
//GlobTDynDynTRec1Array: TDynDynTRec1Array; //GlobTDynDynTRec1Array: TDynDynTRec1Array;
SetLength(GlobTDynDynTRec1Array, 3); SetLength(GlobTDynDynTRec1Array, 3);
SetLength(GlobTDynDynTRec1Array[0], 3); SetLength(GlobTDynDynTRec1Array[0], 3);
GlobTDynDynTRec1Array[0][0].a := 80; globtdyndyntrec1array[0][0].a := 80; globtdyndyntrec1array[0][0].b := 243;
GlobTDynDynTRec1Array[0][1].a := 81; globtdyndyntrec1array[0][1].a := 81; globtdyndyntrec1array[0][1].b := 243;
SetLength(GlobTDynDynTRec1Array[1], 3); SetLength(GlobTDynDynTRec1Array[1], 3);
GlobTDynDynTRec1Array[1][0].a := 85; globtdyndyntrec1array[1][0].a := 85; globtdyndyntrec1array[1][0].b := 243;
GlobTDynDynTRec1Array[1][1].a := 86; globtdyndyntrec1array[1][1].a := 86; globtdyndyntrec1array[1][1].b := 243;
//GlobTDynDynPrec1Array: TDynDynPrec1Array; //GlobTDynDynPrec1Array: TDynDynPrec1Array;
SetLength(GlobTDynDynPrec1Array, 3); SetLength(GlobTDynDynPrec1Array, 3);
SetLength(GlobTDynDynPrec1Array[0], 3); SetLength(GlobTDynDynPrec1Array[0], 3);
@ -1010,10 +1014,10 @@
GlobTDynDynPrec1Array[1][1] := @GlobTDynDynTRec1Array[1][1]; GlobTDynDynPrec1Array[1][1] := @GlobTDynDynTRec1Array[1][1];
//GlobTDynStatTRec1Array: TDynStatTRec1Array; //GlobTDynStatTRec1Array: TDynStatTRec1Array;
SetLength(GlobTDynStatTRec1Array, 3); SetLength(GlobTDynStatTRec1Array, 3);
GlobTDynStatTRec1Array[0][3].a := 70; globtdynstattrec1array[0][3].a := 70; globtdynstattrec1array[0][3].b := 243;
GlobTDynStatTRec1Array[0][4].a := 71; globtdynstattrec1array[0][4].a := 71; globtdynstattrec1array[0][4].b := 243;
GlobTDynStatTRec1Array[1][3].a := 75; globtdynstattrec1array[1][3].a := 75; globtdynstattrec1array[1][3].b := 243;
GlobTDynStatTRec1Array[1][4].a := 76; globtdynstattrec1array[1][4].a := 76; globtdynstattrec1array[1][4].b := 243;
//GlobTDynStatPRec1Array: TDynStatPRec1Array; //GlobTDynStatPRec1Array: TDynStatPRec1Array;
SetLength(GlobTDynStatPRec1Array, 3); SetLength(GlobTDynStatPRec1Array, 3);
GlobTDynStatPRec1Array[0][3] := @GlobTDynStatTRec1Array[0][3]; GlobTDynStatPRec1Array[0][3] := @GlobTDynStatTRec1Array[0][3];
@ -1041,11 +1045,11 @@
//GlobTDynDynTRec2Array: TDynDynTRec2Array; //GlobTDynDynTRec2Array: TDynDynTRec2Array;
SetLength(GlobTDynDynTRec2Array, 3); SetLength(GlobTDynDynTRec2Array, 3);
SetLength(GlobTDynDynTRec2Array[0], 3); SetLength(GlobTDynDynTRec2Array[0], 3);
GlobTDynDynTRec2Array[0][0].c := 80; globtdyndyntrec2array[0][0].c := 80; globtdyndyntrec2array[0][0].recs := nil;
GlobTDynDynTRec2Array[0][1].c := 81; globtdyndyntrec2array[0][1].c := 81; globtdyndyntrec2array[0][1].recs := nil;
SetLength(GlobTDynDynTRec2Array[1], 3); SetLength(GlobTDynDynTRec2Array[1], 3);
GlobTDynDynTRec2Array[1][0].c := 85; globtdyndyntrec2array[1][0].c := 85; globtdyndyntrec2array[1][0].recs := nil;
GlobTDynDynTRec2Array[1][1].c := 86; globtdyndyntrec2array[1][1].c := 86; globtdyndyntrec2array[1][1].recs := nil;
//GlobTDynDynPRec2Array: TDynDynPRec2Array; //GlobTDynDynPRec2Array: TDynDynPRec2Array;
SetLength(GlobTDynDynPRec2Array, 3); SetLength(GlobTDynDynPRec2Array, 3);
SetLength(GlobTDynDynPRec2Array[0], 3); SetLength(GlobTDynDynPRec2Array[0], 3);
@ -1064,10 +1068,10 @@
GlobTDynDynPPrec2Array[1][1] := @GlobTDynDynPRec2Array[1][1]; GlobTDynDynPPrec2Array[1][1] := @GlobTDynDynPRec2Array[1][1];
//GlobTDynStatTRec2Array: TDynStatTRec2Array; //GlobTDynStatTRec2Array: TDynStatTRec2Array;
SetLength(GlobTDynStatTRec2Array, 3); SetLength(GlobTDynStatTRec2Array, 3);
GlobTDynStatTRec2Array[0][3].c := 70; globtdynstattrec2array[0][3].c := 70; globtdynstattrec2array[0][3].recs := nil;
GlobTDynStatTRec2Array[0][4].c := 71; globtdynstattrec2array[0][4].c := 71; globtdynstattrec2array[0][4].recs := nil;
GlobTDynStatTRec2Array[1][3].c := 75; globtdynstattrec2array[1][3].c := 75; globtdynstattrec2array[1][3].recs := nil;
GlobTDynStatTRec2Array[1][4].c := 76; globtdynstattrec2array[1][4].c := 76; globtdynstattrec2array[1][4].recs := nil;
//GlobTDynStatPRec2Array: TDynStatPRec2Array; //GlobTDynStatPRec2Array: TDynStatPRec2Array;
SetLength(GlobTDynStatPRec2Array, 3); SetLength(GlobTDynStatPRec2Array, 3);
GlobTDynStatPRec2Array[0][3] := @GlobTDynStatTRec2Array[0][3]; GlobTDynStatPRec2Array[0][3] := @GlobTDynStatTRec2Array[0][3];
@ -1086,11 +1090,11 @@
// stat arrays of named arrays // stat arrays of named arrays
//GlobTStatDynTRec1Array: TStatDynTRec1Array; //GlobTStatDynTRec1Array: TStatDynTRec1Array;
SetLength(GlobTStatDynTRec1Array[3], 3); SetLength(GlobTStatDynTRec1Array[3], 3);
GlobTStatDynTRec1Array[3][0].a := 80; globtstatdyntrec1array[3][0].a := 80; globtstatdyntrec1array[3][0].b := 243;
GlobTStatDynTRec1Array[3][1].a := 81; globtstatdyntrec1array[3][1].a := 81; globtstatdyntrec1array[3][1].b := 243;
SetLength(GlobTStatDynTRec1Array[4], 3); SetLength(GlobTStatDynTRec1Array[4], 3);
GlobTStatDynTRec1Array[4][0].a := 85; globtstatdyntrec1array[4][0].a := 85; globtstatdyntrec1array[4][0].b := 243;
GlobTStatDynTRec1Array[4][1].a := 86; globtstatdyntrec1array[4][1].a := 86; globtstatdyntrec1array[4][1].b := 243;
//GlobTStatDynPrec1Array: TStatDynPrec1Array; //GlobTStatDynPrec1Array: TStatDynPrec1Array;
SetLength(GlobTStatDynPrec1Array[3], 3); SetLength(GlobTStatDynPrec1Array[3], 3);
GlobTStatDynPrec1Array[3][0] := @GlobTStatDynTRec1Array[3][0]; GlobTStatDynPrec1Array[3][0] := @GlobTStatDynTRec1Array[3][0];
@ -1099,10 +1103,10 @@
GlobTStatDynPrec1Array[4][0] := @GlobTStatDynTRec1Array[4][0]; GlobTStatDynPrec1Array[4][0] := @GlobTStatDynTRec1Array[4][0];
GlobTStatDynPrec1Array[4][1] := @GlobTStatDynTRec1Array[4][1]; GlobTStatDynPrec1Array[4][1] := @GlobTStatDynTRec1Array[4][1];
//GlobTStatStatTRec1Array: TStatStatTRec1Array; //GlobTStatStatTRec1Array: TStatStatTRec1Array;
GlobTStatStatTRec1Array[3][3].a := 70; globtstatstattrec1array[3][3].a := 70; globtstatstattrec1array[3][3].b := 243;
GlobTStatStatTRec1Array[3][4].a := 71; globtstatstattrec1array[3][4].a := 71; globtstatstattrec1array[3][4].b := 243;
GlobTStatStatTRec1Array[4][3].a := 75; globtstatstattrec1array[4][3].a := 75; globtstatstattrec1array[4][3].b := 243;
GlobTStatStatTRec1Array[4][4].a := 76; globtstatstattrec1array[4][4].a := 76; globtstatstattrec1array[4][4].b := 243;
//GlobTStatStatPRec1Array: TStatStatPRec1Array; //GlobTStatStatPRec1Array: TStatStatPRec1Array;
GlobTStatStatPRec1Array[3][3] := @GlobTStatStatTRec1Array[3][3]; GlobTStatStatPRec1Array[3][3] := @GlobTStatStatTRec1Array[3][3];
GlobTStatStatPRec1Array[3][4] := @GlobTStatStatTRec1Array[3][4]; GlobTStatStatPRec1Array[3][4] := @GlobTStatStatTRec1Array[3][4];
@ -1118,11 +1122,11 @@
//GlobTStatDynTRec2Array: TStatDynTRec2Array; //GlobTStatDynTRec2Array: TStatDynTRec2Array;
SetLength(GlobTStatDynTRec2Array[3], 3); SetLength(GlobTStatDynTRec2Array[3], 3);
GlobTStatDynTRec2Array[3][0].c := 80; globtstatdyntrec2array[3][0].c := 80; globtstatdyntrec2array[3][0].recs := nil;
GlobTStatDynTRec2Array[3][1].c := 81; globtstatdyntrec2array[3][1].c := 81; globtstatdyntrec2array[3][1].recs := nil;
SetLength(GlobTStatDynTRec2Array[4], 3); SetLength(GlobTStatDynTRec2Array[4], 3);
GlobTStatDynTRec2Array[4][0].c := 85; globtstatdyntrec2array[4][0].c := 85; globtstatdyntrec2array[4][0].recs := nil;
GlobTStatDynTRec2Array[4][1].c := 86; globtstatdyntrec2array[4][1].c := 86; globtstatdyntrec2array[4][1].recs := nil;
//GlobTStatDynPRec2Array: TStatDynPRec2Array; //GlobTStatDynPRec2Array: TStatDynPRec2Array;
SetLength(GlobTStatDynPRec2Array[3], 3); SetLength(GlobTStatDynPRec2Array[3], 3);
GlobTStatDynPRec2Array[3][0] := @GlobTStatDynTRec2Array[3][0]; GlobTStatDynPRec2Array[3][0] := @GlobTStatDynTRec2Array[3][0];
@ -1138,10 +1142,10 @@
GlobTStatDynPPrec2Array[4][0] := @GlobTStatDynPRec2Array[4][0]; GlobTStatDynPPrec2Array[4][0] := @GlobTStatDynPRec2Array[4][0];
GlobTStatDynPPrec2Array[4][1] := @GlobTStatDynPRec2Array[4][1]; GlobTStatDynPPrec2Array[4][1] := @GlobTStatDynPRec2Array[4][1];
//GlobTStatStatTRec2Array: TStatStatTRec2Array; //GlobTStatStatTRec2Array: TStatStatTRec2Array;
GlobTStatStatTRec2Array[3][3].c := 70; globtstatstattrec2array[3][3].c := 70; globtstatstattrec2array[3][3].recs := nil;
GlobTStatStatTRec2Array[3][4].c := 71; globtstatstattrec2array[3][4].c := 71; globtstatstattrec2array[3][4].recs := nil;
GlobTStatStatTRec2Array[4][3].c := 75; globtstatstattrec2array[4][3].c := 75; globtstatstattrec2array[4][3].recs := nil;
GlobTStatStatTRec2Array[4][4].c := 76; globtstatstattrec2array[4][4].c := 76; globtstatstattrec2array[4][4].recs := nil;
//GlobTStatStatPRec2Array: TStatStatPRec2Array; //GlobTStatStatPRec2Array: TStatStatPRec2Array;
GlobTStatStatPRec2Array[3][3] := @GlobTStatStatTRec2Array[3][3]; GlobTStatStatPRec2Array[3][3] := @GlobTStatStatTRec2Array[3][3];
GlobTStatStatPRec2Array[3][4] := @GlobTStatStatTRec2Array[3][4]; GlobTStatStatPRec2Array[3][4] := @GlobTStatStatTRec2Array[3][4];
@ -1154,14 +1158,14 @@
GlobTStatStatPPRec2Array[4][4] := @GlobTStatStatPRec2Array[4][4]; GlobTStatStatPPRec2Array[4][4] := @GlobTStatStatPRec2Array[4][4];
GlobTEnumArrayTRec1[eaOne].a := 200; globtenumarraytrec1[eaone].a := 200; globtenumarraytrec1[eaone].b := 243;
GlobTEnumArrayTRec1[eaTwo].a := 201; globtenumarraytrec1[eatwo].a := 201; globtenumarraytrec1[eatwo].b := 243;
GlobTSubEnumArrayTRec1[eaTwo].a := 205; globtsubenumarraytrec1[eatwo].a := 205; globtsubenumarraytrec1[eatwo].b := 243;
GlobTSubEnumArrayTRec1[eaThree].a := 205; globtsubenumarraytrec1[eathree].a := 205; globtsubenumarraytrec1[eathree].b := 243;
GlobTStatDualArrayTRec2[3,3].c := 300; globtstatdualarraytrec2[3,3].c := 300; globtstatdualarraytrec2[3,3].recs := nil;
GlobTStatDualArrayTRec2[3,4].c := 301; globtstatdualarraytrec2[3,4].c := 301; globtstatdualarraytrec2[3,4].recs := nil;
GlobTStatDualArrayTRec2[4,5].c := 302; globtstatdualarraytrec2[4,5].c := 302; globtstatdualarraytrec2[4,5].recs := nil;
// POINTER // POINTER
@ -1239,8 +1243,8 @@
// dyn arrays // dyn arrays
//GlobADynArrayTRec1: TDynArrayTRec1; //GlobADynArrayTRec1: TDynArrayTRec1;
SetLength(GlobADynArrayTRec1, 3); SetLength(GlobADynArrayTRec1, 3);
GlobADynArrayTRec1[0].a := 90; globadynarraytrec1[0].a := 90; globadynarraytrec1[0].b := 243;
GlobADynArrayTRec1[1].a := 91; globadynarraytrec1[1].a := 91; globadynarraytrec1[1].b := 243;
//GlobADynArrayPRec1: TDynArrayPRec1; //GlobADynArrayPRec1: TDynArrayPRec1;
SetLength(GlobADynArrayPRec1, 3); SetLength(GlobADynArrayPRec1, 3);
GlobADynArrayPRec1[0] := @GlobADynArrayTRec1[0]; GlobADynArrayPRec1[0] := @GlobADynArrayTRec1[0];
@ -1248,11 +1252,11 @@
//GlobADynDynArrayTRec1: TDynDynArrayTRec1; //GlobADynDynArrayTRec1: TDynDynArrayTRec1;
SetLength(GlobADynDynArrayTRec1, 3); SetLength(GlobADynDynArrayTRec1, 3);
SetLength(GlobADynDynArrayTRec1[0], 3); SetLength(GlobADynDynArrayTRec1[0], 3);
GlobADynDynArrayTRec1[0][0].a := 80; globadyndynarraytrec1[0][0].a := 80; globadyndynarraytrec1[0][0].b := 243;
GlobADynDynArrayTRec1[0][1].a := 81; globadyndynarraytrec1[0][1].a := 81; globadyndynarraytrec1[0][1].b := 243;
SetLength(GlobADynDynArrayTRec1[1], 3); SetLength(GlobADynDynArrayTRec1[1], 3);
GlobADynDynArrayTRec1[1][0].a := 85; globadyndynarraytrec1[1][0].a := 85; globadyndynarraytrec1[1][0].b := 243;
GlobADynDynArrayTRec1[1][1].a := 86; globadyndynarraytrec1[1][1].a := 86; globadyndynarraytrec1[1][1].b := 243;
//GlobADynDynArrayPRec1: TDynDynArrayPRec1; //GlobADynDynArrayPRec1: TDynDynArrayPRec1;
SetLength(GlobADynDynArrayPRec1, 3); SetLength(GlobADynDynArrayPRec1, 3);
SetLength(GlobADynDynArrayPRec1[0], 3); SetLength(GlobADynDynArrayPRec1[0], 3);
@ -1263,10 +1267,10 @@
GlobADynDynArrayPRec1[1][1] := @GlobADynDynArrayTRec1[1][1]; GlobADynDynArrayPRec1[1][1] := @GlobADynDynArrayTRec1[1][1];
//GlobADynStatArrayTRec1: TDynStatArrayTRec1; //GlobADynStatArrayTRec1: TDynStatArrayTRec1;
SetLength(GlobADynStatArrayTRec1, 3); SetLength(GlobADynStatArrayTRec1, 3);
GlobADynStatArrayTRec1[0][3].a := 70; globadynstatarraytrec1[0][3].a := 70; globadynstatarraytrec1[0][3].b := 243;
GlobADynStatArrayTRec1[0][4].a := 71; globadynstatarraytrec1[0][4].a := 71; globadynstatarraytrec1[0][4].b := 243;
GlobADynStatArrayTRec1[1][3].a := 75; globadynstatarraytrec1[1][3].a := 75; globadynstatarraytrec1[1][3].b := 243;
GlobADynStatArrayTRec1[1][4].a := 76; globadynstatarraytrec1[1][4].a := 76; globadynstatarraytrec1[1][4].b := 243;
//GlobADynStatArrayPRec1: TDynStatArrayPRec1; //GlobADynStatArrayPRec1: TDynStatArrayPRec1;
SetLength(GlobADynStatArrayPRec1, 3); SetLength(GlobADynStatArrayPRec1, 3);
GlobADynStatArrayPRec1[0][3] := @GlobADynStatArrayTRec1[0][3]; GlobADynStatArrayPRec1[0][3] := @GlobADynStatArrayTRec1[0][3];
@ -1276,8 +1280,8 @@
//GlobADynArrayTRec2: TDynArrayTRec2; //GlobADynArrayTRec2: TDynArrayTRec2;
SetLength(GlobADynArrayTRec2, 3); SetLength(GlobADynArrayTRec2, 3);
GlobADynArrayTRec2[0].c := 90; globadynarraytrec2[0].c := 90; globadynarraytrec2[0].recs := nil;
GlobADynArrayTRec2[1].c := 91; globadynarraytrec2[1].c := 91; globadynarraytrec2[1].recs := nil;
//GlobADynArrayPRec2: TDynArrayPRec2; //GlobADynArrayPRec2: TDynArrayPRec2;
SetLength(GlobADynArrayPRec2, 3); SetLength(GlobADynArrayPRec2, 3);
GlobADynArrayPRec2[0] := @GlobADynArrayTRec2[0]; GlobADynArrayPRec2[0] := @GlobADynArrayTRec2[0];
@ -1285,11 +1289,11 @@
//GlobADynDynArrayTRec2: TDynDynArrayTRec2; //GlobADynDynArrayTRec2: TDynDynArrayTRec2;
SetLength(GlobADynDynArrayTRec2, 3); SetLength(GlobADynDynArrayTRec2, 3);
SetLength(GlobADynDynArrayTRec2[0], 3); SetLength(GlobADynDynArrayTRec2[0], 3);
GlobADynDynArrayTRec2[0][0].c := 80; globadyndynarraytrec2[0][0].c := 80; globadyndynarraytrec2[0][0].recs := nil;
GlobADynDynArrayTRec2[0][1].c := 81; globadyndynarraytrec2[0][1].c := 81; globadyndynarraytrec2[0][1].recs := nil;
SetLength(GlobADynDynArrayTRec2[1], 3); SetLength(GlobADynDynArrayTRec2[1], 3);
GlobADynDynArrayTRec2[1][0].c := 85; globadyndynarraytrec2[1][0].c := 85; globadyndynarraytrec2[1][0].recs := nil;
GlobADynDynArrayTRec2[1][1].c := 86; globadyndynarraytrec2[1][1].c := 86; globadyndynarraytrec2[1][1].recs := nil;
//GlobADynDynArrayPRec2: TDynDynArrayPRec2; //GlobADynDynArrayPRec2: TDynDynArrayPRec2;
SetLength(GlobADynDynArrayPRec2, 3); SetLength(GlobADynDynArrayPRec2, 3);
SetLength(GlobADynDynArrayPRec2[0], 3); SetLength(GlobADynDynArrayPRec2[0], 3);
@ -1300,10 +1304,10 @@
GlobADynDynArrayPRec2[1][1] := @GlobADynDynArrayTRec2[1][1]; GlobADynDynArrayPRec2[1][1] := @GlobADynDynArrayTRec2[1][1];
//GlobADynStatArrayTRec2: TDynStatArrayTRec2; //GlobADynStatArrayTRec2: TDynStatArrayTRec2;
SetLength(GlobADynStatArrayTRec2, 3); SetLength(GlobADynStatArrayTRec2, 3);
GlobADynStatArrayTRec2[0][3].c := 70; globadynstatarraytrec2[0][3].c := 70; globadynstatarraytrec2[0][3].recs := nil;
GlobADynStatArrayTRec2[0][4].c := 71; globadynstatarraytrec2[0][4].c := 71; globadynstatarraytrec2[0][4].recs := nil;
GlobADynStatArrayTRec2[1][3].c := 75; globadynstatarraytrec2[1][3].c := 75; globadynstatarraytrec2[1][3].recs := nil;
GlobADynStatArrayTRec2[1][4].c := 76; globadynstatarraytrec2[1][4].c := 76; globadynstatarraytrec2[1][4].recs := nil;
//GlobADynStatArrayPRec2: TDynStatArrayPRec2; //GlobADynStatArrayPRec2: TDynStatArrayPRec2;
SetLength(GlobADynStatArrayPRec2, 3); SetLength(GlobADynStatArrayPRec2, 3);
GlobADynStatArrayPRec2[0][3] := @GlobADynStatArrayTRec2[0][3]; GlobADynStatArrayPRec2[0][3] := @GlobADynStatArrayTRec2[0][3];
@ -1314,18 +1318,18 @@
// stat arrays // stat arrays
//GlobAStatArrayTRec1: TStatArrayTRec1; //GlobAStatArrayTRec1: TStatArrayTRec1;
GlobAStatArrayTRec1[3].a := 50; globastatarraytrec1[3].a := 50; globastatarraytrec1[3].b := 243;
GlobAStatArrayTRec1[4].a := 51; globastatarraytrec1[4].a := 51; globastatarraytrec1[4].b := 243;
//GlobAStatArrayPRec1: TStatArrayPRec1; //GlobAStatArrayPRec1: TStatArrayPRec1;
GlobAStatArrayPRec1[3] := @GlobAStatArrayTRec1[3]; GlobAStatArrayPRec1[3] := @GlobAStatArrayTRec1[3];
GlobAStatArrayPRec1[4] := @GlobAStatArrayTRec1[4]; GlobAStatArrayPRec1[4] := @GlobAStatArrayTRec1[4];
//GlobAStatDynArrayTRec1: TStatDynArrayTRec1; //GlobAStatDynArrayTRec1: TStatDynArrayTRec1;
SetLength(GlobAStatDynArrayTRec1[3], 3); SetLength(GlobAStatDynArrayTRec1[3], 3);
GlobAStatDynArrayTRec1[3][0].a := 40; globastatdynarraytrec1[3][0].a := 40; globastatdynarraytrec1[3][0].b := 243;
GlobAStatDynArrayTRec1[3][1].a := 41; globastatdynarraytrec1[3][1].a := 41; globastatdynarraytrec1[3][1].b := 243;
SetLength(GlobAStatDynArrayTRec1[4], 3); SetLength(GlobAStatDynArrayTRec1[4], 3);
GlobAStatDynArrayTRec1[4][0].a := 45; globastatdynarraytrec1[4][0].a := 45; globastatdynarraytrec1[4][0].b := 243;
GlobAStatDynArrayTRec1[4][1].a := 46; globastatdynarraytrec1[4][1].a := 46; globastatdynarraytrec1[4][1].b := 243;
//GlobAStatDynArrayPRec1: TStatDynArrayPRec1; //GlobAStatDynArrayPRec1: TStatDynArrayPRec1;
SetLength(GlobAStatDynArrayPRec1[3], 3); SetLength(GlobAStatDynArrayPRec1[3], 3);
GlobAStatDynArrayPRec1[3][0] := @GlobADynDynArrayTRec1[3][0]; GlobAStatDynArrayPRec1[3][0] := @GlobADynDynArrayTRec1[3][0];
@ -1334,10 +1338,10 @@
GlobAStatDynArrayPRec1[4][0] := @GlobADynDynArrayTRec1[4][0]; GlobAStatDynArrayPRec1[4][0] := @GlobADynDynArrayTRec1[4][0];
GlobAStatDynArrayPRec1[4][1] := @GlobADynDynArrayTRec1[4][1]; GlobAStatDynArrayPRec1[4][1] := @GlobADynDynArrayTRec1[4][1];
//GlobAStatStatArrayTRec1: TStatStatArrayTRec1; //GlobAStatStatArrayTRec1: TStatStatArrayTRec1;
GlobAStatStatArrayTRec1[3][3].a := 30; globastatstatarraytrec1[3][3].a := 30; globastatstatarraytrec1[3][3].b := 243;
GlobAStatStatArrayTRec1[3][4].a := 31; globastatstatarraytrec1[3][4].a := 31; globastatstatarraytrec1[3][4].b := 243;
GlobAStatStatArrayTRec1[4][3].a := 35; globastatstatarraytrec1[4][3].a := 35; globastatstatarraytrec1[4][3].b := 243;
GlobAStatStatArrayTRec1[4][4].a := 36; globastatstatarraytrec1[4][4].a := 36; globastatstatarraytrec1[4][4].b := 243;
//GlobAStatStatArrayPRec1: TStatStatArrayPRec1; //GlobAStatStatArrayPRec1: TStatStatArrayPRec1;
GlobAStatStatArrayPRec1[3][3] := @GlobAStatStatArrayTRec1[3][3]; GlobAStatStatArrayPRec1[3][3] := @GlobAStatStatArrayTRec1[3][3];
GlobAStatStatArrayPRec1[3][4] := @GlobAStatStatArrayTRec1[3][4]; GlobAStatStatArrayPRec1[3][4] := @GlobAStatStatArrayTRec1[3][4];
@ -1345,18 +1349,18 @@
GlobAStatStatArrayPRec1[4][4] := @GlobAStatStatArrayTRec1[4][4]; GlobAStatStatArrayPRec1[4][4] := @GlobAStatStatArrayTRec1[4][4];
//GlobAStatArrayTRec2: TStatArrayTRec2; //GlobAStatArrayTRec2: TStatArrayTRec2;
GlobAStatArrayTRec2[3].c := 50; globastatarraytrec2[3].c := 50; globastatarraytrec2[3].recs := nil;
GlobAStatArrayTRec2[4].c := 51; globastatarraytrec2[4].c := 51; globastatarraytrec2[4].recs := nil;
//GlobAStatArrayPRec2: TStatArrayPRec2; //GlobAStatArrayPRec2: TStatArrayPRec2;
GlobAStatArrayPRec2[3] := @GlobAStatArrayTRec2[3]; GlobAStatArrayPRec2[3] := @GlobAStatArrayTRec2[3];
GlobAStatArrayPRec2[4] := @GlobAStatArrayTRec2[4]; GlobAStatArrayPRec2[4] := @GlobAStatArrayTRec2[4];
//GlobAStatDynArrayTRec2: TStatDynArrayTRec2; //GlobAStatDynArrayTRec2: TStatDynArrayTRec2;
SetLength(GlobAStatDynArrayTRec2[3], 3); SetLength(GlobAStatDynArrayTRec2[3], 3);
GlobAStatDynArrayTRec2[3][0].c := 40; globastatdynarraytrec2[3][0].c := 40; globastatdynarraytrec2[3][0].recs := nil;
GlobAStatDynArrayTRec2[3][1].c := 41; globastatdynarraytrec2[3][1].c := 41; globastatdynarraytrec2[3][1].recs := nil;
SetLength(GlobAStatDynArrayTRec2[4], 3); SetLength(GlobAStatDynArrayTRec2[4], 3);
GlobAStatDynArrayTRec2[4][0].c := 45; globastatdynarraytrec2[4][0].c := 45; globastatdynarraytrec2[4][0].recs := nil;
GlobAStatDynArrayTRec2[4][1].c := 46; globastatdynarraytrec2[4][1].c := 46; globastatdynarraytrec2[4][1].recs := nil;
//GlobAStatDynArrayPRec2: TStatDynArrayPRec2; //GlobAStatDynArrayPRec2: TStatDynArrayPRec2;
SetLength(GlobAStatDynArrayPRec2[3], 3); SetLength(GlobAStatDynArrayPRec2[3], 3);
GlobAStatDynArrayPRec2[3][0] := @GlobADynDynArrayTRec2[3][0]; GlobAStatDynArrayPRec2[3][0] := @GlobADynDynArrayTRec2[3][0];
@ -1365,10 +1369,10 @@
GlobAStatDynArrayPRec2[4][0] := @GlobADynDynArrayTRec2[4][0]; GlobAStatDynArrayPRec2[4][0] := @GlobADynDynArrayTRec2[4][0];
GlobAStatDynArrayPRec2[4][1] := @GlobADynDynArrayTRec2[4][1]; GlobAStatDynArrayPRec2[4][1] := @GlobADynDynArrayTRec2[4][1];
//GlobAStatStatArrayTRec2: TStatStatArrayTRec2; //GlobAStatStatArrayTRec2: TStatStatArrayTRec2;
GlobAStatStatArrayTRec2[3][3].c := 30; globastatstatarraytrec2[3][3].c := 30; globastatstatarraytrec2[3][3].recs := nil;
GlobAStatStatArrayTRec2[3][4].c := 31; globastatstatarraytrec2[3][4].c := 31; globastatstatarraytrec2[3][4].recs := nil;
GlobAStatStatArrayTRec2[4][3].c := 35; globastatstatarraytrec2[4][3].c := 35; globastatstatarraytrec2[4][3].recs := nil;
GlobAStatStatArrayTRec2[4][4].c := 36; globastatstatarraytrec2[4][4].c := 36; globastatstatarraytrec2[4][4].recs := nil;
//GlobAStatStatArrayPRec2: TStatStatArrayPRec2; //GlobAStatStatArrayPRec2: TStatStatArrayPRec2;
GlobAStatStatArrayPRec2[3][3] := @GlobAStatStatArrayTRec2[3][3]; GlobAStatStatArrayPRec2[3][3] := @GlobAStatStatArrayTRec2[3][3];
GlobAStatStatArrayPRec2[3][4] := @GlobAStatStatArrayTRec2[3][4]; GlobAStatStatArrayPRec2[3][4] := @GlobAStatStatArrayTRec2[3][4];
@ -1381,11 +1385,11 @@
//GlobADynDynTRec1Array: TDynDynTRec1Array; //GlobADynDynTRec1Array: TDynDynTRec1Array;
SetLength(GlobADynDynTRec1Array, 3); SetLength(GlobADynDynTRec1Array, 3);
SetLength(GlobADynDynTRec1Array[0], 3); SetLength(GlobADynDynTRec1Array[0], 3);
GlobADynDynTRec1Array[0][0].a := 80; globadyndyntrec1array[0][0].a := 80; globadyndyntrec1array[0][0].b := 243;
GlobADynDynTRec1Array[0][1].a := 81; globadyndyntrec1array[0][1].a := 81; globadyndyntrec1array[0][1].b := 243;
SetLength(GlobADynDynTRec1Array[1], 3); SetLength(GlobADynDynTRec1Array[1], 3);
GlobADynDynTRec1Array[1][0].a := 85; globadyndyntrec1array[1][0].a := 85; globadyndyntrec1array[1][0].b := 243;
GlobADynDynTRec1Array[1][1].a := 86; globadyndyntrec1array[1][1].a := 86; globadyndyntrec1array[1][1].b := 243;
//GlobADynDynPrec1Array: TDynDynPrec1Array; //GlobADynDynPrec1Array: TDynDynPrec1Array;
SetLength(GlobADynDynPrec1Array, 3); SetLength(GlobADynDynPrec1Array, 3);
SetLength(GlobADynDynPrec1Array[0], 3); SetLength(GlobADynDynPrec1Array[0], 3);
@ -1396,10 +1400,10 @@
GlobADynDynPrec1Array[1][1] := @GlobADynDynTRec1Array[1][1]; GlobADynDynPrec1Array[1][1] := @GlobADynDynTRec1Array[1][1];
//GlobADynStatTRec1Array: TDynStatTRec1Array; //GlobADynStatTRec1Array: TDynStatTRec1Array;
SetLength(GlobADynStatTRec1Array, 3); SetLength(GlobADynStatTRec1Array, 3);
GlobADynStatTRec1Array[0][3].a := 70; globadynstattrec1array[0][3].a := 70; globadynstattrec1array[0][3].b := 243;
GlobADynStatTRec1Array[0][4].a := 71; globadynstattrec1array[0][4].a := 71; globadynstattrec1array[0][4].b := 243;
GlobADynStatTRec1Array[1][3].a := 75; globadynstattrec1array[1][3].a := 75; globadynstattrec1array[1][3].b := 243;
GlobADynStatTRec1Array[1][4].a := 76; globadynstattrec1array[1][4].a := 76; globadynstattrec1array[1][4].b := 243;
//GlobADynStatPRec1Array: TDynStatPRec1Array; //GlobADynStatPRec1Array: TDynStatPRec1Array;
SetLength(GlobADynStatPRec1Array, 3); SetLength(GlobADynStatPRec1Array, 3);
GlobADynStatPRec1Array[0][3] := @GlobADynStatTRec1Array[0][3]; GlobADynStatPRec1Array[0][3] := @GlobADynStatTRec1Array[0][3];
@ -1423,11 +1427,11 @@
//GlobADynDynTRec2Array: TDynDynTRec2Array; //GlobADynDynTRec2Array: TDynDynTRec2Array;
SetLength(GlobADynDynTRec2Array, 3); SetLength(GlobADynDynTRec2Array, 3);
SetLength(GlobADynDynTRec2Array[0], 3); SetLength(GlobADynDynTRec2Array[0], 3);
GlobADynDynTRec2Array[0][0].c := 80; globadyndyntrec2array[0][0].c := 80; globadyndyntrec2array[0][0].recs := nil;
GlobADynDynTRec2Array[0][1].c := 81; globadyndyntrec2array[0][1].c := 81; globadyndyntrec2array[0][1].recs := nil;
SetLength(GlobADynDynTRec2Array[1], 3); SetLength(GlobADynDynTRec2Array[1], 3);
GlobADynDynTRec2Array[1][0].c := 85; globadyndyntrec2array[1][0].c := 85; globadyndyntrec2array[1][0].recs := nil;
GlobADynDynTRec2Array[1][1].c := 86; globadyndyntrec2array[1][1].c := 86; globadyndyntrec2array[1][1].recs := nil;
//GlobADynDynPRec2Array: TDynDynPRec2Array; //GlobADynDynPRec2Array: TDynDynPRec2Array;
SetLength(GlobADynDynPRec2Array, 3); SetLength(GlobADynDynPRec2Array, 3);
SetLength(GlobADynDynPRec2Array[0], 3); SetLength(GlobADynDynPRec2Array[0], 3);
@ -1446,10 +1450,10 @@
GlobADynDynPPrec2Array[1][1] := @GlobADynDynPRec2Array[1][1]; GlobADynDynPPrec2Array[1][1] := @GlobADynDynPRec2Array[1][1];
//GlobADynStatTRec2Array: TDynStatTRec2Array; //GlobADynStatTRec2Array: TDynStatTRec2Array;
SetLength(GlobADynStatTRec2Array, 3); SetLength(GlobADynStatTRec2Array, 3);
GlobADynStatTRec2Array[0][3].c := 70; globadynstattrec2array[0][3].c := 70; globadynstattrec2array[0][3].recs := nil;
GlobADynStatTRec2Array[0][4].c := 71; globadynstattrec2array[0][4].c := 71; globadynstattrec2array[0][4].recs := nil;
GlobADynStatTRec2Array[1][3].c := 75; globadynstattrec2array[1][3].c := 75; globadynstattrec2array[1][3].recs := nil;
GlobADynStatTRec2Array[1][4].c := 76; globadynstattrec2array[1][4].c := 76; globadynstattrec2array[1][4].recs := nil;
//GlobADynStatPRec2Array: TDynStatPRec2Array; //GlobADynStatPRec2Array: TDynStatPRec2Array;
SetLength(GlobADynStatPRec2Array, 3); SetLength(GlobADynStatPRec2Array, 3);
GlobADynStatPRec2Array[0][3] := @GlobADynStatTRec2Array[0][3]; GlobADynStatPRec2Array[0][3] := @GlobADynStatTRec2Array[0][3];
@ -1469,11 +1473,11 @@
//GlobAStatDynTRec1Array: TStatDynTRec1Array; //GlobAStatDynTRec1Array: TStatDynTRec1Array;
SetLength(GlobAStatDynTRec1Array, 3); SetLength(GlobAStatDynTRec1Array, 3);
SetLength(GlobAStatDynTRec1Array[0], 3); SetLength(GlobAStatDynTRec1Array[0], 3);
GlobAStatDynTRec1Array[0][0].a := 80; globastatdyntrec1array[0][0].a := 80; globastatdyntrec1array[0][0].b := 243;
GlobAStatDynTRec1Array[0][1].a := 81; globastatdyntrec1array[0][1].a := 81; globastatdyntrec1array[0][1].b := 243;
SetLength(GlobAStatDynTRec1Array[1], 3); SetLength(GlobAStatDynTRec1Array[1], 3);
GlobAStatDynTRec1Array[1][0].a := 85; globastatdyntrec1array[1][0].a := 85; globastatdyntrec1array[1][0].b := 243;
GlobAStatDynTRec1Array[1][1].a := 86; globastatdyntrec1array[1][1].a := 86; globastatdyntrec1array[1][1].b := 243;
//GlobAStatDynPrec1Array: TStatDynPrec1Array; //GlobAStatDynPrec1Array: TStatDynPrec1Array;
SetLength(GlobAStatDynPrec1Array, 3); SetLength(GlobAStatDynPrec1Array, 3);
SetLength(GlobAStatDynPrec1Array[0], 3); SetLength(GlobAStatDynPrec1Array[0], 3);
@ -1484,10 +1488,10 @@
GlobAStatDynPrec1Array[1][1] := @GlobAStatDynTRec1Array[1][1]; GlobAStatDynPrec1Array[1][1] := @GlobAStatDynTRec1Array[1][1];
//GlobAStatStatTRec1Array: TStatStatTRec1Array; //GlobAStatStatTRec1Array: TStatStatTRec1Array;
SetLength(GlobAStatStatTRec1Array, 3); SetLength(GlobAStatStatTRec1Array, 3);
GlobAStatStatTRec1Array[0][3].a := 70; globastatstattrec1array[0][3].a := 70; globastatstattrec1array[0][3].b := 243;
GlobAStatStatTRec1Array[0][4].a := 71; globastatstattrec1array[0][4].a := 71; globastatstattrec1array[0][4].b := 243;
GlobAStatStatTRec1Array[1][3].a := 75; globastatstattrec1array[1][3].a := 75; globastatstattrec1array[1][3].b := 243;
GlobAStatStatTRec1Array[1][4].a := 76; globastatstattrec1array[1][4].a := 76; globastatstattrec1array[1][4].b := 243;
//GlobAStatStatPRec1Array: TStatStatPRec1Array; //GlobAStatStatPRec1Array: TStatStatPRec1Array;
SetLength(GlobAStatStatPRec1Array, 3); SetLength(GlobAStatStatPRec1Array, 3);
GlobAStatStatPRec1Array[0][3] := @GlobAStatStatTRec1Array[0][3]; GlobAStatStatPRec1Array[0][3] := @GlobAStatStatTRec1Array[0][3];
@ -1507,11 +1511,11 @@
//GlobAStatDynTRec2Array: TStatDynTRec2Array; //GlobAStatDynTRec2Array: TStatDynTRec2Array;
SetLength(GlobAStatDynTRec2Array, 3); SetLength(GlobAStatDynTRec2Array, 3);
SetLength(GlobAStatDynTRec2Array[0], 3); SetLength(GlobAStatDynTRec2Array[0], 3);
GlobAStatDynTRec2Array[0][0].c := 80; globastatdyntrec2array[0][0].c := 80; globastatdyntrec2array[0][0].recs := nil;
GlobAStatDynTRec2Array[0][1].c := 81; globastatdyntrec2array[0][1].c := 81; globastatdyntrec2array[0][1].recs := nil;
SetLength(GlobAStatDynTRec2Array[1], 3); SetLength(GlobAStatDynTRec2Array[1], 3);
GlobAStatDynTRec2Array[1][0].c := 85; globastatdyntrec2array[1][0].c := 85; globastatdyntrec2array[1][0].recs := nil;
GlobAStatDynTRec2Array[1][1].c := 86; globastatdyntrec2array[1][1].c := 86; globastatdyntrec2array[1][1].recs := nil;
//GlobAStatDynPRec2Array: TStatDynPRec2Array; //GlobAStatDynPRec2Array: TStatDynPRec2Array;
SetLength(GlobAStatDynPRec2Array, 3); SetLength(GlobAStatDynPRec2Array, 3);
SetLength(GlobAStatDynPRec2Array[0], 3); SetLength(GlobAStatDynPRec2Array[0], 3);
@ -1530,10 +1534,10 @@
GlobAStatDynPPrec2Array[1][1] := @GlobAStatDynPRec2Array[1][1]; GlobAStatDynPPrec2Array[1][1] := @GlobAStatDynPRec2Array[1][1];
//GlobAStatStatTRec2Array: TStatStatTRec2Array; //GlobAStatStatTRec2Array: TStatStatTRec2Array;
SetLength(GlobAStatStatTRec2Array, 3); SetLength(GlobAStatStatTRec2Array, 3);
GlobAStatStatTRec2Array[0][3].c := 70; globastatstattrec2array[0][3].c := 70; globastatstattrec2array[0][3].recs := nil;
GlobAStatStatTRec2Array[0][4].c := 71; globastatstattrec2array[0][4].c := 71; globastatstattrec2array[0][4].recs := nil;
GlobAStatStatTRec2Array[1][3].c := 75; globastatstattrec2array[1][3].c := 75; globastatstattrec2array[1][3].recs := nil;
GlobAStatStatTRec2Array[1][4].c := 76; globastatstattrec2array[1][4].c := 76; globastatstattrec2array[1][4].recs := nil;
//GlobAStatStatPRec2Array: TStatStatPRec2Array; //GlobAStatStatPRec2Array: TStatStatPRec2Array;
SetLength(GlobAStatStatPRec2Array, 3); SetLength(GlobAStatStatPRec2Array, 3);
GlobAStatStatPRec2Array[0][3] := @GlobAStatStatTRec2Array[0][3]; GlobAStatStatPRec2Array[0][3] := @GlobAStatStatTRec2Array[0][3];
@ -1556,24 +1560,31 @@
GlobADynDynDynDynArrayTRec1[1] := GlobADynDynDynArrayTRec1; GlobADynDynDynDynArrayTRec1[1] := GlobADynDynDynArrayTRec1;
SetLength(GlobADynArrayTRec5, 3); SetLength(GlobADynArrayTRec5, 3);
GlobADynArrayTRec5[0].a := 10; globadynarraytrec5[0].a := 10;
GlobADynArrayTRec5[0].c := 12; globadynarraytrec5[0].c := 12;
GlobADynArrayTRec5[1].a := 11; globadynarraytrec5[1].a := 11;
GlobADynArrayTRec5[1].c := 13; globadynarraytrec5[1].c := 13;
GlobAStatArrayTRec5[3].a := 15; globastatarraytrec5[3].a := 15;
GlobAStatArrayTRec5[3].c := 17; globastatarraytrec5[3].c := 17;
GlobAStatArrayTRec5[4].a := 16; globastatarraytrec5[4].a := 16;
GlobAStatArrayTRec5[4].c := 18; globastatarraytrec5[4].c := 18;
GlobAEnumArrayTRec1[eaOne].a := 200; globaenumarraytrec1[eaone].a := 200; globaenumarraytrec1[eaone].b := 243;
GlobAEnumArrayTRec1[eaTwo].a := 201; globaenumarraytrec1[eatwo].a := 201; globaenumarraytrec1[eatwo].b := 243;
GlobASubEnumArrayTRec1[eaTwo].a := 205; globasubenumarraytrec1[eatwo].a := 205; globasubenumarraytrec1[eatwo].b := 243;
GlobASubEnumArrayTRec1[eaThree].a := 205; globasubenumarraytrec1[eathree].a := 205; globasubenumarraytrec1[eathree].b := 243;
globastatdualarraytrec2[3,3].c := 300; globastatdualarraytrec2[3,3].recs := nil;
globastatdualarraytrec2[3,4].c := 301; globastatdualarraytrec2[3,4].recs := nil;
globastatdualarraytrec2[4,3].c := 302; globastatdualarraytrec2[4,3].recs := nil;
SetLength(GlobAStatDynDynArrayTRec2[3], 3);
SetLength(GlobAStatDynDynArrayTRec2[4], 3);
SetLength(GlobADynDynStatArrayTRec2, 3);
GlobAStatDualArrayTRec2[3,3].c := 300;
GlobAStatDualArrayTRec2[3,4].c := 301;
GlobAStatDualArrayTRec2[4,3].c := 302;
{$ENDIF} {$ENDIF}
{$IFDEF Global_Body_NIL} {$IFDEF Global_Body_NIL}

View File

@ -32,6 +32,7 @@ type
procedure DoCurrent(Sender: TObject; const ALocation: TDBGLocationRec); procedure DoCurrent(Sender: TObject; const ALocation: TDBGLocationRec);
published published
// Due to a linker error breakpoints can point to invalid addresses // Due to a linker error breakpoints can point to invalid addresses
procedure TestStartMethod;
procedure TestBadAddrBreakpoint; procedure TestBadAddrBreakpoint;
procedure TestInteruptWhilePaused; procedure TestInteruptWhilePaused;
end; end;
@ -54,6 +55,45 @@ begin
FCurLine := ALocation.SrcLine; FCurLine := ALocation.SrcLine;
end; end;
procedure TTestBreakPoint.TestStartMethod;
var
dbg: TGDBMIDebugger;
TestExeName, s: string;
i: TGDBMIDebuggerStartBreak;
begin
if SkipTest then exit;
if not TestControlForm.CheckListBox1.Checked[TestControlForm.CheckListBox1.Items.IndexOf('TTestBreakPoint')] then exit;
if not TestControlForm.CheckListBox1.Checked[TestControlForm.CheckListBox1.Items.IndexOf(' TTestBreakPoint.StartMethod')] then exit;
ClearTestErrors;
FBrkErr := nil;
TestCompile(AppDir + 'WatchesPrg.pas', TestExeName);
for i := Low(TGDBMIDebuggerStartBreak) to high(TGDBMIDebuggerStartBreak) do begin
WriteStr(s, i);
try
dbg := StartGDB(AppDir, TestExeName);
dbg.OnCurrent := @DoCurrent;
TGDBMIDebuggerProperties(dbg.GetProperties).InternalStartBreak := i;
with dbg.BreakPoints.Add('WatchesPrg.pas', BREAK_LINE_FOOFUNC) do begin
InitialEnabled := True;
Enabled := True;
end;
dbg.Run;
TestTrue(s+' not in error state 1', dbg.State <> dsError);
TestTrue(s+' at break', FCurLine = BREAK_LINE_FOOFUNC);
finally
dbg.Done;
CleanGdb;
dbg.Free;
end;
end;
AssertTestErrors;
end;
function TTestBreakPoint.DoGetFeedBack(Sender: TObject; const AText, AInfo: String; function TTestBreakPoint.DoGetFeedBack(Sender: TObject; const AText, AInfo: String;
AType: TDBGFeedbackType; AButtons: TDBGFeedbackResults): TDBGFeedbackResult; AType: TDBGFeedbackType; AButtons: TDBGFeedbackResults): TDBGFeedbackResult;
begin begin

View File

@ -78,6 +78,8 @@ begin
CheckListBox1.Checked[j] := True; CheckListBox1.Checked[j] := True;
j := CheckListBox1.Items.Add('TTestBreakPoint'); j := CheckListBox1.Items.Add('TTestBreakPoint');
CheckListBox1.Checked[j] := True; CheckListBox1.Checked[j] := True;
j := CheckListBox1.Items.Add(' TTestBreakPoint.StartMethod');
CheckListBox1.Checked[j] := True;
j := CheckListBox1.Items.Add(' TTestBreakPoint.BadAddr'); j := CheckListBox1.Items.Add(' TTestBreakPoint.BadAddr');
CheckListBox1.Checked[j] := True; CheckListBox1.Checked[j] := True;
j := CheckListBox1.Items.Add(' TTestBreakPoint.BadInterrupt'); j := CheckListBox1.Items.Add(' TTestBreakPoint.BadInterrupt');

View File

@ -126,7 +126,8 @@ const
ExpSubKind: TGDBPTypeResultKind = ptprkSimple; ExpSubKind: TGDBPTypeResultKind = ptprkSimple;
ExpSubHasFlags: TGDBPTypeResultFlags = []; ExpSubHasFlags: TGDBPTypeResultFlags = [];
ExpSubIgnoreFlags: TGDBPTypeResultFlags = []; ExpSubIgnoreFlags: TGDBPTypeResultFlags = [];
ExpNestCount: Integer = 0 ExpNestCount: Integer = 0;
ExpPointerCnt: Integer = 0
): TGDBPTypeResult; ): TGDBPTypeResult;
var var
TestRes: TGDBPTypeResult; TestRes: TGDBPTypeResult;
@ -135,6 +136,7 @@ const
ExpSubName, ExpLow, ExpHigh, ExpBaseDecl, ExpSubKind, ExpSubHasFlags, ExpSubName, ExpLow, ExpHigh, ExpBaseDecl, ExpSubKind, ExpSubHasFlags,
ExpSubIgnoreFlags); ExpSubIgnoreFlags);
AssertEquals(TestName + ' NestCount', ExpNestCount, Result.NestArrayCount); AssertEquals(TestName + ' NestCount', ExpNestCount, Result.NestArrayCount);
AssertEquals(TestName + ' PointerCount', ExpPointerCnt, Result.PointerCount);
end; end;
var var
@ -213,15 +215,18 @@ begin
CheckArrayResult('type = ^(array [0..-1] of LONGINT)'+LN, // <whatis VarDynIntArrayA> type = ^(array [0..-1] of LONGINT) CheckArrayResult('type = ^(array [0..-1] of LONGINT)'+LN, // <whatis VarDynIntArrayA> type = ^(array [0..-1] of LONGINT)
[ptprfPointer, ptprfDynArray], [], [ptprfPointer, ptprfDynArray], [],
'', 'array [0..-1] of LONGINT', 'LONGINT', '0', '-1'); '', 'array [0..-1] of LONGINT', 'LONGINT', '0', '-1',
'', ptprkSimple, [], [], 0, 1);
CheckArrayResult('type = ^(array [0..1] of LONGINT)'+LN, CheckArrayResult('type = ^(array [0..1] of LONGINT)'+LN,
[ptprfPointer], [], '', [ptprfPointer], [], '',
'array [0..1] of LONGINT', 'LONGINT', '0', '1'); 'array [0..1] of LONGINT', 'LONGINT', '0', '1',
'', ptprkSimple, [], [], 0, 1);
CheckArrayResult('type = ^(array of LONGINT)'+LN, CheckArrayResult('type = ^(array of LONGINT)'+LN,
[ptprfPointer, ptprfDynArray, ptprfNoBounds], [], [ptprfPointer, ptprfDynArray, ptprfNoBounds], [],
'', 'array of LONGINT', 'LONGINT', '', ''); '', 'array of LONGINT', 'LONGINT', '', '',
'', ptprkSimple, [], [], 0, 1);
//// Element type => pointer //// Element type => pointer
@ -255,17 +260,17 @@ begin
CheckArrayResult('type = ^(array [0..-1] of ^LONGINT)'+LN, CheckArrayResult('type = ^(array [0..-1] of ^LONGINT)'+LN,
[ptprfPointer, ptprfDynArray], [], [ptprfPointer, ptprfDynArray], [],
'', 'array [0..-1] of ^LONGINT', '^LONGINT', '0', '-1', '', 'array [0..-1] of ^LONGINT', '^LONGINT', '0', '-1',
'', ptprkSimple, [ptprfPointer],[]); '', ptprkSimple, [ptprfPointer],[], 0, 1);
CheckArrayResult('type = ^(array [0..1] of ^LONGINT)'+LN, CheckArrayResult('type = ^(array [0..1] of ^LONGINT)'+LN,
[ptprfPointer], [], '', [ptprfPointer], [], '',
'array [0..1] of ^LONGINT', '^LONGINT', '0', '1', 'array [0..1] of ^LONGINT', '^LONGINT', '0', '1',
'', ptprkSimple, [ptprfPointer],[]); '', ptprkSimple, [ptprfPointer],[], 0, 1);
CheckArrayResult('type = ^(array of ^LONGINT)'+LN, CheckArrayResult('type = ^(array of ^LONGINT)'+LN,
[ptprfPointer, ptprfDynArray, ptprfNoBounds], [], [ptprfPointer, ptprfDynArray, ptprfNoBounds], [],
'', 'array of ^LONGINT', '^LONGINT', '', '', '', 'array of ^LONGINT', '^LONGINT', '', '',
'', ptprkSimple, [ptprfPointer],[]); '', ptprkSimple, [ptprfPointer],[], 0, 1);
//// Element type => RECORD //// Element type => RECORD
@ -300,17 +305,17 @@ begin
CheckArrayResult('type = ^(array [0..-1] of '+T+')'+LN, CheckArrayResult('type = ^(array [0..-1] of '+T+')'+LN,
[ptprfPointer, ptprfDynArray], [], [ptprfPointer, ptprfDynArray], [],
'', 'array [0..-1] of record', '', '0', '-1', '', 'array [0..-1] of record', '', '0', '-1',
'', ptprkRecord, [],[]); '', ptprkRecord, [],[],0 ,1);
CheckArrayResult('type = ^(array [0..1] of '+T+')'+LN, CheckArrayResult('type = ^(array [0..1] of '+T+')'+LN,
[ptprfPointer], [], '', [ptprfPointer], [], '',
'array [0..1] of record', '', '0', '1', 'array [0..1] of record', '', '0', '1',
'', ptprkRecord, [],[]); '', ptprkRecord, [],[], 0, 1);
CheckArrayResult('type = ^(array of '+T+')'+LN, CheckArrayResult('type = ^(array of '+T+')'+LN,
[ptprfPointer, ptprfDynArray, ptprfNoBounds], [], [ptprfPointer, ptprfDynArray, ptprfNoBounds], [],
'', 'array of record', '', '', '', '', 'array of record', '', '', '',
'', ptprkRecord, [],[]); '', ptprkRecord, [],[], 0, 1);
// nested array // nested array
R := CheckArrayResult('type = ^(array [0..-1] of ^(array [0..-1] of ^(array [0..-1] of TRECFORARRAY1)))'+LN, R := CheckArrayResult('type = ^(array [0..-1] of ^(array [0..-1] of ^(array [0..-1] of TRECFORARRAY1)))'+LN,
@ -320,7 +325,7 @@ begin
'array [0..-1] of ^(array [0..-1] of ^(array [0..-1] of TRECFORARRAY1))', 'array [0..-1] of ^(array [0..-1] of ^(array [0..-1] of TRECFORARRAY1))',
//'', 'array of record', '', '', '', //'', 'array of record', '', '', '',
ptprkSimple, [],[], ptprkSimple, [],[],
2); 2, 1);
CheckFlags('NestArr1 :[1]' , R.NestArray[1].Flags, [ptprfPointer, ptprfDynArray], []); CheckFlags('NestArr1 :[1]' , R.NestArray[1].Flags, [ptprfPointer, ptprfDynArray], []);
CheckPCharWLen('NestArr1 :[1] low' , R.NestArray[1].BoundLow, '0'); CheckPCharWLen('NestArr1 :[1] low' , R.NestArray[1].BoundLow, '0');
@ -338,7 +343,7 @@ begin
'array [0..-1] of array [0..3] of ^(array [0..-1] of TRECFORARRAY1)', 'array [0..-1] of array [0..3] of ^(array [0..-1] of TRECFORARRAY1)',
//'', 'array of record', '', '', '', //'', 'array of record', '', '', '',
ptprkSimple, [],[], ptprkSimple, [],[],
2); 2, 1);
CheckFlags('NestArr2 :[1]' , R.NestArray[1].Flags, [], []); CheckFlags('NestArr2 :[1]' , R.NestArray[1].Flags, [], []);
CheckPCharWLen('NestArr2 :[1] low' , R.NestArray[1].BoundLow, '0'); CheckPCharWLen('NestArr2 :[1] low' , R.NestArray[1].BoundLow, '0');
@ -349,11 +354,25 @@ begin
CheckPCharWLen('NestArr2 :[0] high' , R.NestArray[0].BoundHigh, '-1'); CheckPCharWLen('NestArr2 :[0] high' , R.NestArray[0].BoundHigh, '-1');
//CheckArrayResult( R := CheckArrayResult('type = array [3..5] of ^(array of TRECFORARRAY1)'+LN,
//CheckArrayResult( [], [],
//CheckArrayResult( '', 'array [3..5] of ^(array of TRECFORARRAY1)',
//CheckArrayResult( 'TRECFORARRAY1', '3', '5',
//CheckArrayResult( 'array [3..5] of ^(array of TRECFORARRAY1)',
ptprkSimple, [],[],
1, 0);
CheckFlags('NestArr3 :[0]' , R.NestArray[0].Flags, [ptprfPointer, ptprfDynArray, ptprfNoBounds], []);
CheckPCharWLen('NestArr3 :[0] low' , R.NestArray[0].BoundLow, '');
CheckPCharWLen('NestArr3 :[0] high' , R.NestArray[0].BoundHigh, '');
AssertEquals('NestArr3 : PointerCount', 1, R.NestArray[0].PointerCount);
CheckArrayResult('type = ^^(array [0..-1] of TRECFORARRAY1)'+LN,
[ptprfPointer, ptprfDynArray], [],
'', 'array [0..-1] of TRECFORARRAY1', 'TRECFORARRAY1', '0', '-1',
'array [0..-1] of TRECFORARRAY1', ptprkSimple, [],[], 0, 2);
(* enum *) (* enum *)
@ -715,6 +734,40 @@ begin
//TODO
//CheckArrayResult('type = ^^(array [0..-1] of TRECFORARRAY1)'+LN,
n := 'qwe[1][2]';
InitExpr(n, b, r, v);
r^.Result := ParseTypeFromGdb('type = &^(array [0..-1] of TRECFORARRAY1)');
ContinueExpr(b, r, v);
AssertTrue(n + 'Need expr, after ^^ dyn array 1', v);
r^.Result := ParseTypeFromGdb('type = ^^(array [0..-1] of TRECFORARRAY1)');
ContinueExpr(b, r, v);
AssertTrue(n + 'No Need expr, after ^^ dyn array 1', not v);
AssertEquals(n + ' text after ^^ dyn array', '^^TRECFORARRAY1(qwe)[1][2]', b.Text);
n := 'qwe[3][2].a';
InitExpr(n, b, r, v);
AssertTrue(n + 'Need expr, after stat dyn array 1', v);
r^.Result := ParseTypeFromGdb('type = array [3..5] of ^(array of TRECFORARRAY1)');
ContinueExpr(b, r, v);
AssertTrue(n + 'No Need expr, after stat dyn array 1', not v);
AssertEquals(n + ' text after stat dyn array', 'TRECFORARRAY1(qwe[3]^[2]).a', b.Text);
n := 'qwe[3]';
InitExpr(n, b, r, v);
AssertTrue(n + 'Need expr 1', v);
r^.Result := ParseTypeFromGdb('type = ^char');
ContinueExpr(b, r, v);
AssertTrue(n + 'Need expr 2', v);
r^.Result := ParseTypeFromGdb('type = char');
ContinueExpr(b, r, v);
AssertTrue(n + 'No Need expr', not v);
AssertEquals(n + ' text after', 'qwe[3]', b.Text);
AssertEquals(n + ' maybe string ', True, b.MayNeedStringFix);
AssertEquals(n + ' text after as string', 'qwe[3-1]', b.TextStrFixed);
n := 'abc()[123]'; n := 'abc()[123]';
InitExpr(n, b, r, v); InitExpr(n, b, r, v);
@ -741,6 +794,7 @@ begin
AssertTrue(n + ' ptype', (r <> nil) and ((r^.Request = 'ptype abc()') or (r2^.Request = 'ptype abc()'))); AssertTrue(n + ' ptype', (r <> nil) and ((r^.Request = 'ptype abc()') or (r2^.Request = 'ptype abc()')));
AssertTrue(n + ' ptype2', (r <> nil) and ((r^.Request = 'ptype x') or (r2^.Request = 'ptype x'))); AssertTrue(n + ' ptype2', (r <> nil) and ((r^.Request = 'ptype x') or (r2^.Request = 'ptype x')));
n := 'Cast(foo^.bar[1][foo[2]]+Call[x()]((f+1)^))+bar(1).z.x[1](m)(n)'; n := 'Cast(foo^.bar[1][foo[2]]+Call[x()]((f+1)^))+bar(1).z.x[1](m)(n)';
InitExpr(n, b, r, v); InitExpr(n, b, r, v);
b.Free; b.Free;

View File

@ -1192,6 +1192,11 @@ procedure TTestWatches.AddExpectBreakFooArray;
3: Result := Add(AnExpr, wdfDefault, MatchRecord('TRecForArray3', ' a = '+IntToStr(AValue)), skRecord, 'TRecForArray3', AFlgs ); 3: Result := Add(AnExpr, wdfDefault, MatchRecord('TRecForArray3', ' a = '+IntToStr(AValue)), skRecord, 'TRecForArray3', AFlgs );
4: Result := Add(AnExpr, wdfDefault, MatchRecord('TRecForArray4', ' c = '+IntToStr(AValue)), skRecord, 'TRecForArray4', AFlgs ); 4: Result := Add(AnExpr, wdfDefault, MatchRecord('TRecForArray4', ' c = '+IntToStr(AValue)), skRecord, 'TRecForArray4', AFlgs );
end; end;
case ARecSuffix of
1,3: Add(AnExpr+'.a', wdfDefault, '^'+IntToStr(AValue)+'$', skSimple, M_Int, AFlgs+[fTpMtch] );
2,4: Add(AnExpr+'.c', wdfDefault, '^'+IntToStr(AValue)+'$', skSimple, M_Int, AFlgs+[fTpMtch] );
end;
end; end;
function AddArrayFmtDef (AnExpr, AMtch, ATpNm: string; AFlgs: TWatchExpectationFlags=[]): PWatchExpectation; function AddArrayFmtDef (AnExpr, AMtch, ATpNm: string; AFlgs: TWatchExpectationFlags=[]): PWatchExpectation;
@ -1201,6 +1206,8 @@ procedure TTestWatches.AddExpectBreakFooArray;
var var
r: PWatchExpectation; r: PWatchExpectation;
v: string;
i: integer;
begin begin
if not TestControlForm.CheckListBox1.Checked[TestControlForm.CheckListBox1.Items.IndexOf(' TTestWatch.All')] then exit; if not TestControlForm.CheckListBox1.Checked[TestControlForm.CheckListBox1.Items.IndexOf(' TTestWatch.All')] then exit;
FCurrentExpArray := @ExpectBreakFooArray; FCurrentExpArray := @ExpectBreakFooArray;
@ -1250,41 +1257,54 @@ begin
[fTpMtch]); [fTpMtch]);
{%endregion * Array * } {%endregion * Array * }
{%region DYN ARRAY} for i := 0 to 1 do begin
{%region DYN ARRAY (norm)} if i = 0
//TDynArrayTRec1 = array of TRecForArray3; then v := ''
r := AddArrayFmtDef('ArgTDynArrayTRec1', '.', 'TDynArrayTRec1', []); else v := 'V';
r := AddRecForArrFmtDef('ArgTDynArrayTRec1[0]', 3, 90, []);
r := AddRecForArrFmtDef('ArgTDynArrayTRec1[1]', 3, 91, []); {%region DYN ARRAY}
//TDynArrayPRec1 = array of ^TRecForArray3; {%region DYN ARRAY (norm)}
r := AddArrayFmtDef('ArgTDynArrayPRec1', '.', 'TDynArrayPRec1', []); //TDynArrayTRec1 = array of TRecForArray3;
r := AddPointerFmtDef ('ArgTDynArrayPRec1[0]', '\^TRecForArray3', '^TRecForArray3', []); r := AddArrayFmtDef(v+'ArgTDynArrayTRec1', '.', 'TDynArrayTRec1', []);
r := AddRecForArrFmtDef('ArgTDynArrayPRec1[0]^', 3, 90, []); if v = 'V' then UpdResMinFpc(r, stDwarf2All, 020600);
r := AddPointerFmtDef ('ArgTDynArrayPRec1[1]', '\^TRecForArray3', '^TRecForArray3', []); r := AddRecForArrFmtDef(v+'ArgTDynArrayTRec1[0]', 3, 90, []);
r := AddRecForArrFmtDef('ArgTDynArrayPRec1[1]^', 3, 91, []); r := AddRecForArrFmtDef(v+'ArgTDynArrayTRec1[1]', 3, 91, []);
//TDynDynArrayTRec1 = array of array of TRecForArray1; //TDynArrayPRec1 = array of ^TRecForArray3;
r := AddArrayFmtDef('ArgTDynDynArrayTRec1', '.', 'TDynDynArrayTRec1', []); r := AddArrayFmtDef(v+'ArgTDynArrayPRec1', '.', 'TDynArrayPRec1', []);
r := AddArrayFmtDef('ArgTDynDynArrayTRec1[0]', '.', '', []); // TODO? typename = array of ... if v = 'V' then UpdResMinFpc(r, stDwarf2All, 020600);
r := AddRecForArrFmtDef('ArgTDynDynArrayTRec1[0][0]', 1, 80, []); r := AddPointerFmtDef (v+'ArgTDynArrayPRec1[0]', '\^TRecForArray3', '^TRecForArray3', []);
r := AddRecForArrFmtDef('ArgTDynDynArrayTRec1[0][1]', 1, 81, []); r := AddRecForArrFmtDef(v+'ArgTDynArrayPRec1[0]^', 3, 90, []);
r := AddArrayFmtDef('ArgTDynDynArrayTRec1[1]', '.', '', []); // TODO? typename = array of ... r := AddPointerFmtDef (v+'ArgTDynArrayPRec1[1]', '\^TRecForArray3', '^TRecForArray3', []);
r := AddRecForArrFmtDef('ArgTDynDynArrayTRec1[1][0]', 1, 85, []); r := AddRecForArrFmtDef(v+'ArgTDynArrayPRec1[1]^', 3, 91, []);
r := AddRecForArrFmtDef('ArgTDynDynArrayTRec1[1][1]', 1, 86, []); //TDynDynArrayTRec1 = array of array of TRecForArray1;
//TDynDynArrayPRec1 = array of array of ^TRecForArray1; r := AddArrayFmtDef(v+'ArgTDynDynArrayTRec1', '.', 'TDynDynArrayTRec1', []);
//TDynStatArrayTRec1 = array of array [3..5] of TRecForArray1; if v = 'V' then UpdResMinFpc(r, stDwarf2All, 020600);
//TDynStatArrayPRec1 = array of array [3..5] of ^TRecForArray1; r := AddArrayFmtDef(v+'ArgTDynDynArrayTRec1[0]', '.', '', []); // TODO? typename = array of ...
// r := AddRecForArrFmtDef(v+'ArgTDynDynArrayTRec1[0][0]', 1, 80, []);
//TDynArrayTRec2 = array of TRecForArray4; //if v = 'V' then UpdResMinFpc(r, stDwarf2All, 020600);
//TDynArrayPRec2 = array of ^TRecForArray4; r := AddRecForArrFmtDef(v+'ArgTDynDynArrayTRec1[0][1]', 1, 81, []);
//TDynArrayPPRec2 = array of ^PRecForArray4; // double pointer //if v = 'V' then UpdResMinFpc(r, stDwarf2All, 020600);
//TDynDynArrayTRec2 = array of array of TRecForArray2; r := AddArrayFmtDef(v+'ArgTDynDynArrayTRec1[1]', '.', '', []); // TODO? typename = array of ...
//TDynDynArrayPRec2 = array of array of ^TRecForArray2; r := AddRecForArrFmtDef(v+'ArgTDynDynArrayTRec1[1][0]', 1, 85, []);
//TDynStatArrayTRec2 = array of array [3..5] of TRecForArray2; //if v = 'V' then UpdResMinFpc(r, stDwarf2All, 020600);
//TDynStatArrayPRec2 = array of array [3..5] of ^TRecForArray2; r := AddRecForArrFmtDef(v+'ArgTDynDynArrayTRec1[1][1]', 1, 86, []);
{%endregion DYN ARRAY (norm)} //if v = 'V' then UpdResMinFpc(r, stDwarf2All, 020600);
//TDynDynArrayPRec1 = array of array of ^TRecForArray1;
//TDynStatArrayTRec1 = array of array [3..5] of TRecForArray1;
//TDynStatArrayPRec1 = array of array [3..5] of ^TRecForArray1;
//
//TDynArrayTRec2 = array of TRecForArray4;
//TDynArrayPRec2 = array of ^TRecForArray4;
//TDynArrayPPRec2 = array of ^PRecForArray4; // double pointer
//TDynDynArrayTRec2 = array of array of TRecForArray2;
//TDynDynArrayPRec2 = array of array of ^TRecForArray2;
//TDynStatArrayTRec2 = array of array [3..5] of TRecForArray2;
//TDynStatArrayPRec2 = array of array [3..5] of ^TRecForArray2;
{%endregion DYN ARRAY (norm)}
{%region DYN ARRAY (VAR)} {%region DYN ARRAY (VAR)}
// dyn arrays VAR // dyn arrays VAR
(*
//TDynArrayTRec1 = array of TRecForArray3; //TDynArrayTRec1 = array of TRecForArray3;
r := AddArrayFmtDef('VArgTDynArrayTRec1', '.', 'TDynArrayTRec1', []); r := AddArrayFmtDef('VArgTDynArrayTRec1', '.', 'TDynArrayTRec1', []);
UpdResMinFpc(r, stDwarf2All, 020600); UpdResMinFpc(r, stDwarf2All, 020600);
@ -1321,8 +1341,10 @@ begin
//TDynDynArrayPRec2 = array of array of ^TRecForArray2; //TDynDynArrayPRec2 = array of array of ^TRecForArray2;
//TDynStatArrayTRec2 = array of array [3..5] of TRecForArray2; //TDynStatArrayTRec2 = array of array [3..5] of TRecForArray2;
//TDynStatArrayPRec2 = array of array [3..5] of ^TRecForArray2; //TDynStatArrayPRec2 = array of array [3..5] of ^TRecForArray2;
*)
{%endregion DYN ARRAY (VAR)} {%endregion DYN ARRAY (VAR)}
{%endregion DYN ARRAY} {%endregion DYN ARRAY}
end;
{%region STAT ARRAY} {%region STAT ARRAY}