Explorar o código

* Introduce stInvalid test status

Michaël Van Canneyt hai 4 meses
pai
achega
efe885c446
Modificáronse 3 ficheiros con 72 adicións e 15 borrados
  1. 12 7
      tests/utils/tsdb.pp
  2. 1 0
      tests/utils/tsstring.pp
  3. 59 8
      tests/utils/tstypes.pp

+ 12 - 7
tests/utils/tsdb.pp

@@ -636,10 +636,13 @@ const
 var
 var
   Qry : TSQLQuery;
   Qry : TSQLQuery;
   ST : TTestStatus;
   ST : TTestStatus;
+  S : string;
 
 
 begin
 begin
-  Qry:=CreateQuery(Format(SQLSelectRunData,[aID]));
-  Verbose(V_SQL,'GetRunData: '+Format(SQLSelectRunData,[aID]));
+
+  S:=Format(SQLSelectRunData,[aID]);
+  Qry:=CreateQuery(S);
+  Verbose(V_SQL,'GetRunData: '+s);
   try
   try
     Qry.Open;
     Qry.Open;
     Result:=Not Qry.IsEmpty;
     Result:=Not Qry.IsEmpty;
@@ -666,7 +669,7 @@ begin
         aData.TestsRevision:=FieldByName('TU_TESTSREVISION').AsString;
         aData.TestsRevision:=FieldByName('TU_TESTSREVISION').AsString;
         aData.RTLRevision:=FieldByName('TU_RTLREVISION').AsString;
         aData.RTLRevision:=FieldByName('TU_RTLREVISION').AsString;
         aData.PackagesRevision:=FieldByName('TU_PACKAGESREVISION').AsString;
         aData.PackagesRevision:=FieldByName('TU_PACKAGESREVISION').AsString;
-        for ST in TTestStatus do
+        for ST in TValidTestStatus do
           aData.StatusCount[ST]:=FieldByName(SQLField[ST]).AsInteger;
           aData.StatusCount[ST]:=FieldByName(SQLField[ST]).AsInteger;
         end;
         end;
   finally
   finally
@@ -1017,13 +1020,15 @@ Const
 
 
 var
 var
   Qry : TSQLQuery;
   Qry : TSQLQuery;
+  S : String;
 
 
 begin
 begin
   Result:=Default(TTestResultData);
   Result:=Default(TTestResultData);
   Result.TestID:=aTestID;
   Result.TestID:=aTestID;
   Result.PlatformID:=aPlatformID;
   Result.PlatformID:=aPlatformID;
-  Qry:=CreateQuery(Format(SQLSelect,[aTestID,aPlatformID]));
-  Verbose(V_SQL,'GetLastTestResult: '+Format(SQLSelect,[aTestID,aPlatformID]));
+  S:=Format(SQLSelect,[aTestID,aPlatformID]);
+  Qry:=CreateQuery(S);
+  Verbose(V_SQL,'GetLastTestResult: '+s);
   try
   try
     Qry.Open;
     Qry.Open;
     If not Qry.IsEmpty then
     If not Qry.IsEmpty then
@@ -1084,7 +1089,7 @@ end;
 function TTestSQL.UpdateTestRun(aData: TTestRunData): Boolean;
 function TTestSQL.UpdateTestRun(aData: TTestRunData): Boolean;
 var
 var
   Qry : string;
   Qry : string;
-  I : TTestStatus;
+  I : TValidTestStatus;
 
 
   Procedure AddTo(S : String);
   Procedure AddTo(S : String);
 
 
@@ -1096,7 +1101,7 @@ var
 
 
 begin
 begin
   Qry:='';
   Qry:='';
-  for i:=low(TTestStatus) to high(TTestStatus) do
+  for I in TValidTestStatus do
     AddTo(format('%s=%d',[SQLField[i],aData.StatusCount[i]]));
     AddTo(format('%s=%d',[SQLField[i],aData.StatusCount[i]]));
   qry:='UPDATE TESTRUN SET '+Qry+' WHERE TU_ID='+format('%d',[aData.RunID]);
   qry:='UPDATE TESTRUN SET '+Qry+' WHERE TU_ID='+format('%d',[aData.RunID]);
   ExecuteQuery(Qry,False);
   ExecuteQuery(Qry,False);

+ 1 - 0
tests/utils/tsstring.pp

@@ -23,6 +23,7 @@ const
   Bools : Array[Boolean] of string = ('f','t');
   Bools : Array[Boolean] of string = ('f','t');
 
 
 const
 const
+  invalid_status = 'invalid';
   failed_to_compile = 'Failed to compile ';
   failed_to_compile = 'Failed to compile ';
   success_compilation_failed = 'Success, compilation failed ';
   success_compilation_failed = 'Success, compilation failed ';
   failed_compilation_successful = 'Failed, compilation successful ';
   failed_compilation_successful = 'Failed, compilation successful ';

+ 59 - 8
tests/utils/tstypes.pp

@@ -28,6 +28,7 @@ uses
 
 
 Type
 Type
   TTestStatus = (
   TTestStatus = (
+  stInvalid,
   stFailedToCompile,
   stFailedToCompile,
   stSuccessCompilationFailed,
   stSuccessCompilationFailed,
   stFailedCompilationsuccessful,
   stFailedCompilationsuccessful,
@@ -52,6 +53,7 @@ Const
   LastStatus = stskippingRunTest;
   LastStatus = stskippingRunTest;
 
 
   TestOK : Array[TTestStatus] of Boolean = (
   TestOK : Array[TTestStatus] of Boolean = (
+    False, // stInvalid
     False, // stFailedToCompile,
     False, // stFailedToCompile,
     True,  // stSuccessCompilationFailed,
     True,  // stSuccessCompilationFailed,
     False, // stFailedCompilationsuccessful,
     False, // stFailedCompilationsuccessful,
@@ -70,7 +72,29 @@ Const
     False  // stskippingRunTest
     False  // stskippingRunTest
   );
   );
 
 
+  TestFailed : Array[TTestStatus] of Boolean = (
+      False, // stInvalid
+      True,  // stFailedToCompile,
+      False, // stSuccessCompilationFailed,
+      True,  // stFailedCompilationsuccessful,
+      False, // stSuccessfullyCompiled,
+      True,  // stFailedToRun,
+      False, // stKnownRunProblem,
+      False, // stSuccessFullyRun,
+      False, // stSkippingGraphTest,
+      False, // stSkippingInteractiveTest,
+      False, // stSkippingKnownBug,
+      False, // stSkippingCompilerVersionTooLow,
+      False, // stSkippingCompilerVersionTooHigh,
+      False, // stSkippingOtherCpu,
+      False, // stSkippingOtherTarget,
+      False, // stSkippingRunUnit,
+      False  // stskippingRunTest
+   );
+
+
   TestSkipped : Array[TTestStatus] of Boolean = (
   TestSkipped : Array[TTestStatus] of Boolean = (
+    False,  // stInvalid
     False,  // stFailedToCompile,
     False,  // stFailedToCompile,
     False,  // stSuccessCompilationFailed,
     False,  // stSuccessCompilationFailed,
     False,  // stFailedCompilationsuccessful,
     False,  // stFailedCompilationsuccessful,
@@ -90,6 +114,7 @@ Const
   );
   );
 
 
   ExpectRun : Array[TTestStatus] of Boolean = (
   ExpectRun : Array[TTestStatus] of Boolean = (
+    False,  // stInvalid
     False,  // stFailedToCompile,
     False,  // stFailedToCompile,
     False,  // stSuccessCompilationFailed,
     False,  // stSuccessCompilationFailed,
     False,  // stFailedCompilationsuccessful,
     False,  // stFailedCompilationsuccessful,
@@ -109,6 +134,7 @@ Const
    );
    );
 
 
   StatusText : Array[TTestStatus] of String = (
   StatusText : Array[TTestStatus] of String = (
+    invalid_status,
     failed_to_compile,
     failed_to_compile,
     success_compilation_failed,
     success_compilation_failed,
     failed_compilation_successful ,
     failed_compilation_successful ,
@@ -128,6 +154,7 @@ Const
   );
   );
 
 
   SQLField : Array[TTestStatus] of String = (
   SQLField : Array[TTestStatus] of String = (
+    '',
     'TU_FAILEDTOCOMPILE',
     'TU_FAILEDTOCOMPILE',
     'TU_SUCCESSFULLYFAILED',
     'TU_SUCCESSFULLYFAILED',
     'TU_FAILEDTOFAIL',
     'TU_FAILEDTOFAIL',
@@ -162,6 +189,8 @@ Const
   faction_compare_both_with_next = 10;
   faction_compare_both_with_next = 10;
 
 
 Type
 Type
+
+  TValidTestStatus = FirstStatus .. LastStatus;
   TCharSet = set of char;
   TCharSet = set of char;
 
 
   TVerboseLevel=(V_Abort,V_Error,V_Warning,V_Normal,V_Debug,V_SQL);
   TVerboseLevel=(V_Abort,V_Error,V_Warning,V_Normal,V_Debug,V_SQL);
@@ -258,6 +287,7 @@ Type
     StatusCount : Array[TTestStatus] of Integer;
     StatusCount : Array[TTestStatus] of Integer;
     Function GetField(const aField : String) : String;
     Function GetField(const aField : String) : String;
     function FailedCount: Integer;
     function FailedCount: Integer;
+    function SkippedCount : Integer;
     function OKCount: Integer;
     function OKCount: Integer;
     function TotalCount: Integer;
     function TotalCount: Integer;
   end;
   end;
@@ -282,24 +312,45 @@ uses sysutils;
 { TTestRunData }
 { TTestRunData }
 
 
 function TTestRunData.OKCount : Integer;
 function TTestRunData.OKCount : Integer;
+
+var
+  TS : TTestStatus;
+
 begin
 begin
-  Result:=StatusCount[stSuccessCompilationFailed] +
-          StatusCount[stSUCCESSFULLYCOMPILED] +
-          StatusCount[stSUCCESSFULLYRUN]
+  Result:=0;
+  for TS:=FirstStatus to LastStatus do
+    if TestOK[TS] then
+      Inc(Result,StatusCount[TS]);
 end;
 end;
 
 
-
 function TTestRunData.FailedCount : Integer;
 function TTestRunData.FailedCount : Integer;
 
 
+var
+  TS : TTestStatus;
+begin
+  Result:=0;
+  for TS:=FirstStatus to LastStatus do
+    if TestFailed[TS] then
+      Inc(Result,StatusCount[TS]);
+end;
+
+function TTestRunData.SkippedCount: Integer;
+var
+  TS : TTestStatus;
 begin
 begin
-  Result:=StatusCount[stFAILEDTOCOMPILE] +
-          StatusCount[stFAILEDTORUN] +
-          StatusCount[stFailedCompilationsuccessful];
+  Result:=0;
+  for TS:=FirstStatus to LastStatus do
+    if TestSkipped[TS] then
+      Inc(Result,StatusCount[TS]);
 end;
 end;
 
 
 function TTestRunData.TotalCount: Integer;
 function TTestRunData.TotalCount: Integer;
+var
+  TS : TTestStatus;
 begin
 begin
-  Result:=OKCount+FailedCount;
+  Result:=0;
+  for TS:=FirstStatus to LastStatus do
+    Result:=Result+StatusCount[TS];
 end;
 end;