Prechádzať zdrojové kódy

Add a new feature "unimplemented". Tests with that flag will be compiled and run normally, but they will always be counted as part of a set of "unimplemented" counters (failed to compile, successfully compiled, successfully run, failed to run).
Also the digest utility is adjusted to output the unimplemented counters as well (as third part of the "x:y" tuples or in brackets after the single counters).
The unimplemented count is currently not written to the database.

git-svn-id: branches/svenbarth/misc@19717 -

svenbarth 13 rokov pred
rodič
commit
3a10158735
4 zmenil súbory, kde vykonal 127 pridanie a 37 odobranie
  1. 82 12
      tests/utils/digest.pp
  2. 34 25
      tests/utils/dotest.pp
  3. 7 0
      tests/utils/teststr.pp
  4. 4 0
      tests/utils/testu.pp

+ 82 - 12
tests/utils/digest.pp

@@ -22,12 +22,18 @@ uses
 
 
 const
 const
   failed_to_compile_count : longint = 0;
   failed_to_compile_count : longint = 0;
+  failed_to_compile_unimplemented_count : longint = 0;
   success_compilation_failed_count : longint = 0;
   success_compilation_failed_count : longint = 0;
+  success_compilation_failed_unimplemented_count : longint = 0;
   failed_compilation_successful_count : longint = 0;
   failed_compilation_successful_count : longint = 0;
+  failed_compilation_successful_unimplemented_count : longint = 0;
   successfully_compiled_count : longint = 0;
   successfully_compiled_count : longint = 0;
+  successfully_compiled_unimplemented_count : longint = 0;
   failed_to_run_count : longint = 0;
   failed_to_run_count : longint = 0;
+  failed_to_run_unimplemented_count : longint = 0;
   known_run_problem : longint = 0;
   known_run_problem : longint = 0;
   successfully_run_count : longint = 0;
   successfully_run_count : longint = 0;
+  successfully_run_unimplemented_count : longint = 0;
   skipping_graph_test_count : longint = 0;
   skipping_graph_test_count : longint = 0;
   skipping_interactive_test_count : longint = 0;
   skipping_interactive_test_count : longint = 0;
   skipping_known_bug_count : longint = 0;
   skipping_known_bug_count : longint = 0;
@@ -53,7 +59,9 @@ begin
   should_be_run:=next_should_be_run;
   should_be_run:=next_should_be_run;
   if next_should_be_run and
   if next_should_be_run and
      (pos(failed_to_run,st)<>1) and
      (pos(failed_to_run,st)<>1) and
+     (pos(failed_to_run_unimplemented,st)<>1) and
      (pos(successfully_run,st)<>1) and
      (pos(successfully_run,st)<>1) and
+     (pos(successfully_run_unimplemented,st)<>1) and
      (pos(skipping_known_bug,st)<>1) and
      (pos(skipping_known_bug,st)<>1) and
      (pos(skipping_run_test,st)<>1) and
      (pos(skipping_run_test,st)<>1) and
      (pos(skipping_run_unit,st)<>1) then
      (pos(skipping_run_unit,st)<>1) then
@@ -65,19 +73,36 @@ begin
     begin
     begin
       inc(failed_to_compile_count);
       inc(failed_to_compile_count);
     end
     end
+  else if pos(failed_to_compile_unimplemented,st)=1 then
+    begin
+      inc(failed_to_compile_unimplemented_count);
+    end
   else if pos(success_compilation_failed,st)=1 then
   else if pos(success_compilation_failed,st)=1 then
     begin
     begin
       inc(success_compilation_failed_count);
       inc(success_compilation_failed_count);
     end
     end
+  else if pos(success_compilation_failed_unimplemented,st)=1 then
+    begin
+      inc(success_compilation_failed_unimplemented_count);
+    end
   else if pos(failed_compilation_successful,st)=1 then
   else if pos(failed_compilation_successful,st)=1 then
     begin
     begin
       inc(failed_compilation_successful_count);
       inc(failed_compilation_successful_count);
     end
     end
+  else if pos(failed_compilation_successful_unimplemented,st)=1 then
+    begin
+      inc(failed_compilation_successful_unimplemented_count);
+    end
   else if pos(successfully_compiled,st)=1 then
   else if pos(successfully_compiled,st)=1 then
     begin
     begin
       inc(successfully_compiled_count);
       inc(successfully_compiled_count);
       next_should_be_run:=true;
       next_should_be_run:=true;
     end
     end
+  else if pos(successfully_compiled_unimplemented,st)=1 then
+    begin
+      inc(successfully_compiled_unimplemented_count);
+      next_should_be_run:=true;
+    end
   else if (pos(failed_to_run,st)=1) then
   else if (pos(failed_to_run,st)=1) then
     begin
     begin
       inc(failed_to_run_count);
       inc(failed_to_run_count);
@@ -86,12 +111,28 @@ begin
       if pos(known_problem,st)>0 then
       if pos(known_problem,st)>0 then
         inc(known_run_problem);
         inc(known_run_problem);
     end
     end
+  else if (pos(failed_to_run_unimplemented,st)=1) then
+    begin
+      inc(failed_to_run_unimplemented_count);
+      { Increase these as well? }
+      {if not should_be_run then
+        inc(unexpected_run);
+      if pos(known_problem,st)>0 then
+        inc(known_run_problem);}
+    end
   else if pos(successfully_run,st)=1 then
   else if pos(successfully_run,st)=1 then
     begin
     begin
       inc(successfully_run_count);
       inc(successfully_run_count);
       if not should_be_run then
       if not should_be_run then
         inc(unexpected_run);
         inc(unexpected_run);
     end
     end
+  else if pos(successfully_run_unimplemented,st)=1 then
+    begin
+      inc(successfully_run_unimplemented_count);
+      { Increase this, too? }
+      {if not should_be_run then
+        inc(unexpected_run);}
+    end
   else if pos(skipping_graph_test,st)=1 then
   else if pos(skipping_graph_test,st)=1 then
     begin
     begin
       inc(skipping_graph_test_count);
       inc(skipping_graph_test_count);
@@ -138,10 +179,13 @@ end;
 procedure display_results;
 procedure display_results;
 var
 var
   number_compilations : longint;
   number_compilations : longint;
+  number_compilations_unimplemented : longint;
   number_skipped : longint;
   number_skipped : longint;
   number_runs : longint;
   number_runs : longint;
+  number_runs_unimplemented : longint;
   all_errors : longint;
   all_errors : longint;
   all_success : longint;
   all_success : longint;
+  all_unimplemented : longint;
 
 
 begin
 begin
   all_errors:=failed_to_compile_count
   all_errors:=failed_to_compile_count
@@ -150,36 +194,62 @@ begin
   all_success:=success_compilation_failed_count
   all_success:=success_compilation_failed_count
     +successfully_compiled_count
     +successfully_compiled_count
     +successfully_run_count;
     +successfully_run_count;
+  all_unimplemented:=failed_to_compile_unimplemented_count
+    +failed_compilation_successful_unimplemented_count
+    +failed_to_run_unimplemented_count
+    +success_compilation_failed_unimplemented_count
+    +successfully_compiled_unimplemented_count
+    +successfully_run_unimplemented_count;
   { about compilations }
   { about compilations }
+  number_compilations_unimplemented:=failed_to_compile_unimplemented_count
+    +success_compilation_failed_unimplemented_count
+    +failed_compilation_successful_unimplemented_count
+    +successfully_compiled_unimplemented_count;
   number_compilations:=failed_to_compile_count
   number_compilations:=failed_to_compile_count
     +success_compilation_failed_count
     +success_compilation_failed_count
     +failed_compilation_successful_count
     +failed_compilation_successful_count
-    +successfully_compiled_count;
+    +successfully_compiled_count
+    +number_compilations_unimplemented;
   { about runs }
   { about runs }
-  number_runs:=failed_to_run_count+successfully_run_count;
+  number_runs_unimplemented:=failed_to_run_unimplemented_count
+    +successfully_run_unimplemented_count;
+  number_runs:=failed_to_run_count
+    +successfully_run_count
+    +number_runs_unimplemented;
 
 
   Writeln('Total = ',number_compilations+number_runs,' (',
   Writeln('Total = ',number_compilations+number_runs,' (',
     all_errors,':',
     all_errors,':',
-    all_success,')');
+    all_success,':',
+    all_unimplemented,')');
 
 
   Writeln('Total number of compilations = ', number_compilations,' (',
   Writeln('Total number of compilations = ', number_compilations,' (',
     failed_to_compile_count+failed_compilation_successful_count,':',
     failed_to_compile_count+failed_compilation_successful_count,':',
-    successfully_compiled_count+success_compilation_failed_count,')');
-  Writeln('Successfully compiled = ', successfully_compiled_count);
-  Writeln('Successfully failed = ', success_compilation_failed_count);
-  Writeln('Compilation failures = ', failed_to_compile_count);
-  Writeln('Compilation that did not fail while they should = ', failed_compilation_successful_count);
+    successfully_compiled_count+success_compilation_failed_count,':',
+    number_compilations_unimplemented,')');
+  Writeln('Successfully compiled = ', successfully_compiled_count, ' (', successfully_compiled_unimplemented_count, ')');
+  Writeln('Successfully failed = ', success_compilation_failed_count, ' (', success_compilation_failed_unimplemented_count, ')');
+  Writeln('Compilation failures = ', failed_to_compile_count, ' (', failed_to_compile_unimplemented_count, ')');
+  Writeln('Compilation that did not fail while they should = ', failed_compilation_successful_count, ' (', failed_compilation_successful_unimplemented_count, ')');
 
 
   Writeln('Total number of runs = ', number_runs,' (',
   Writeln('Total number of runs = ', number_runs,' (',
     failed_to_run_count,':',
     failed_to_run_count,':',
-    successfully_run_count,')');
-  Writeln('Successful runs = ', successfully_run_count);
-  Writeln('Failed runs = ', failed_to_run_count);
+    successfully_run_count,':',
+    number_runs_unimplemented,')');
+  Writeln('Successful runs = ', successfully_run_count, ' (', successfully_run_unimplemented_count, ')');
+  Writeln('Failed runs = ', failed_to_run_count, ' (', failed_to_run_unimplemented_count, ')');
   if known_run_problem>0 then
   if known_run_problem>0 then
     Writeln('From these ',known_run_problem,' known problems');
     Writeln('From these ',known_run_problem,' known problems');
 
 
+  Writeln('Number of unimplemented tests = ', all_unimplemented,' (',
+    failed_to_compile_unimplemented_count
+    +failed_compilation_successful_unimplemented_count
+    +failed_to_run_unimplemented_count,':',
+    success_compilation_failed_unimplemented_count
+    +successfully_compiled_unimplemented_count
+    +successfully_run_unimplemented_count,')');
+
   if successfully_compiled_count <>
   if successfully_compiled_count <>
-     number_runs+skipping_run_unit_count+skipping_run_test_count then
+     number_runs+skipping_run_unit_count+skipping_run_test_count-number_runs_unimplemented then
     begin
     begin
       Writeln('Number units compiled = ',skipping_run_unit_count);
       Writeln('Number units compiled = ',skipping_run_unit_count);
       Writeln('Number program that should not be run = ',skipping_run_test_count);
       Writeln('Number program that should not be run = ',skipping_run_test_count);

+ 34 - 25
tests/utils/dotest.pp

@@ -681,6 +681,15 @@ begin
 end;
 end;
 
 
 
 
+function MaybePrependUnimplemented(const LogStr:string):string;
+begin
+  if Config.NotImplemented then
+    MaybePrependUnimplemented:=strunimplemented+LogStr
+  else
+    MaybePrependUnimplemented:=LogStr;
+end;
+
+
 function ExitWithInternalError(const OutName:string):boolean;
 function ExitWithInternalError(const OutName:string):boolean;
 var
 var
   t : text;
   t : text;
@@ -777,13 +786,13 @@ begin
       if (not execres) and (ExecuteResult=0) then
       if (not execres) and (ExecuteResult=0) then
         begin
         begin
           AddLog(FailLogFile,TestName);
           AddLog(FailLogFile,TestName);
-          AddLog(ResLogFile,failed_to_compile+PPFileInfo[current]);
+          AddLog(ResLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]);
           AddLog(LongLogFile,line_separation);
           AddLog(LongLogFile,line_separation);
-          AddLog(LongLogFile,failed_to_compile+PPFileInfo[current]);
+          AddLog(LongLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]);
           if CopyFile(CompilerLogFile,LongLogFile,true)=0 then
           if CopyFile(CompilerLogFile,LongLogFile,true)=0 then
             AddLog(LongLogFile,'IOStatus'+ToStr(IOStatus));
             AddLog(LongLogFile,'IOStatus'+ToStr(IOStatus));
           { avoid to try again }
           { avoid to try again }
-          AddLog(ExeLogFile,failed_to_compile+PPFileInfo[current]);
+          AddLog(ExeLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]);
           Verbose(V_Warning,'IOStatus: '+ToStr(IOStatus));
           Verbose(V_Warning,'IOStatus: '+ToStr(IOStatus));
           exit;
           exit;
         end;
         end;
@@ -794,15 +803,15 @@ begin
          AddLog(FailLogFile,TestName);
          AddLog(FailLogFile,TestName);
          if Config.Note<>'' then
          if Config.Note<>'' then
           AddLog(FailLogFile,Config.Note);
           AddLog(FailLogFile,Config.Note);
-         AddLog(ResLogFile,failed_to_compile+PPFileInfo[current]+' internalerror generated');
+         AddLog(ResLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]+' internalerror generated');
          AddLog(LongLogFile,line_separation);
          AddLog(LongLogFile,line_separation);
-         AddLog(LongLogFile,failed_to_compile+PPFileInfo[current]);
+         AddLog(LongLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]);
          if Config.Note<>'' then
          if Config.Note<>'' then
           AddLog(LongLogFile,Config.Note);
           AddLog(LongLogFile,Config.Note);
          if CopyFile(CompilerLogFile,LongLogFile,true)=0 then
          if CopyFile(CompilerLogFile,LongLogFile,true)=0 then
            AddLog(LongLogFile,'Internal error in compiler');
            AddLog(LongLogFile,'Internal error in compiler');
          { avoid to try again }
          { avoid to try again }
-         AddLog(ExeLogFile,failed_to_compile+PPFileInfo[current]);
+         AddLog(ExeLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]);
          Verbose(V_Warning,'Internal error in compiler');
          Verbose(V_Warning,'Internal error in compiler');
          exit;
          exit;
        end;
        end;
@@ -813,9 +822,9 @@ begin
    begin
    begin
      if ExecuteResult<>0 then
      if ExecuteResult<>0 then
       begin
       begin
-        AddLog(ResLogFile,success_compilation_failed+PPFileInfo[current]);
+        AddLog(ResLogFile,MaybePrependUnimplemented(success_compilation_failed)+PPFileInfo[current]);
         { avoid to try again }
         { avoid to try again }
-        AddLog(ExeLogFile,success_compilation_failed+PPFileInfo[current]);
+        AddLog(ExeLogFile,MaybePrependUnimplemented(success_compilation_failed)+PPFileInfo[current]);
         RunCompiler:=true;
         RunCompiler:=true;
       end
       end
      else
      else
@@ -823,11 +832,11 @@ begin
         AddLog(FailLogFile,TestName);
         AddLog(FailLogFile,TestName);
         if Config.Note<>'' then
         if Config.Note<>'' then
           AddLog(FailLogFile,Config.Note);
           AddLog(FailLogFile,Config.Note);
-        AddLog(ResLogFile,failed_compilation_successful+PPFileInfo[current]);
+        AddLog(ResLogFile,MaybePrependUnimplemented(failed_compilation_successful)+PPFileInfo[current]);
         AddLog(LongLogFile,line_separation);
         AddLog(LongLogFile,line_separation);
-        AddLog(LongLogFile,failed_compilation_successful+PPFileInfo[current]);
+        AddLog(LongLogFile,MaybePrependUnimplemented(failed_compilation_successful)+PPFileInfo[current]);
         { avoid to try again }
         { avoid to try again }
-        AddLog(ExeLogFile,failed_compilation_successful+PPFileInfo[current]);
+        AddLog(ExeLogFile,MaybePrependUnimplemented(failed_compilation_successful)+PPFileInfo[current]);
         if Config.Note<>'' then
         if Config.Note<>'' then
           AddLog(LongLogFile,Config.Note);
           AddLog(LongLogFile,Config.Note);
         CopyFile(CompilerLogFile,LongLogFile,true);
         CopyFile(CompilerLogFile,LongLogFile,true);
@@ -840,10 +849,10 @@ begin
          ((Config.KnownCompileError<>0) and (ExecuteResult=Config.KnownCompileError))) then
          ((Config.KnownCompileError<>0) and (ExecuteResult=Config.KnownCompileError))) then
       begin
       begin
         AddLog(FailLogFile,TestName+known_problem+Config.KnownCompileNote);
         AddLog(FailLogFile,TestName+known_problem+Config.KnownCompileNote);
-        AddLog(ResLogFile,failed_to_compile+PPFileInfo[current]+known_problem+Config.KnownCompileNote);
+        AddLog(ResLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]+known_problem+Config.KnownCompileNote);
         AddLog(LongLogFile,line_separation);
         AddLog(LongLogFile,line_separation);
         AddLog(LongLogFile,known_problem+Config.KnownCompileNote);
         AddLog(LongLogFile,known_problem+Config.KnownCompileNote);
-        AddLog(LongLogFile,failed_to_compile+PPFileInfo[current]+' ('+ToStr(ExecuteResult)+')');
+        AddLog(LongLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]+' ('+ToStr(ExecuteResult)+')');
         if Copyfile(CompilerLogFile,LongLogFile,true)=0 then
         if Copyfile(CompilerLogFile,LongLogFile,true)=0 then
           AddLog(LongLogFile,known_problem+'exitcode: '+ToStr(ExecuteResult));
           AddLog(LongLogFile,known_problem+'exitcode: '+ToStr(ExecuteResult));
         Verbose(V_Warning,known_problem+'exitcode: '+ToStr(ExecuteResult));
         Verbose(V_Warning,known_problem+'exitcode: '+ToStr(ExecuteResult));
@@ -853,20 +862,20 @@ begin
         AddLog(FailLogFile,TestName);
         AddLog(FailLogFile,TestName);
         if Config.Note<>'' then
         if Config.Note<>'' then
           AddLog(FailLogFile,Config.Note);
           AddLog(FailLogFile,Config.Note);
-        AddLog(ResLogFile,failed_to_compile+PPFileInfo[current]);
+        AddLog(ResLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]);
         AddLog(LongLogFile,line_separation);
         AddLog(LongLogFile,line_separation);
-        AddLog(LongLogFile,failed_to_compile+PPFileInfo[current]);
+        AddLog(LongLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]);
         if Config.Note<>'' then
         if Config.Note<>'' then
           AddLog(LongLogFile,Config.Note);
           AddLog(LongLogFile,Config.Note);
         if CopyFile(CompilerLogFile,LongLogFile,true)=0 then
         if CopyFile(CompilerLogFile,LongLogFile,true)=0 then
           AddLog(LongLogFile,'Exitcode: '+ToStr(ExecuteResult)+' (expected 0)');
           AddLog(LongLogFile,'Exitcode: '+ToStr(ExecuteResult)+' (expected 0)');
         { avoid to try again }
         { avoid to try again }
-        AddLog(ExeLogFile,failed_to_compile+PPFileInfo[current]);
+        AddLog(ExeLogFile,MaybePrependUnimplemented(failed_to_compile)+PPFileInfo[current]);
         Verbose(V_Warning,'Exitcode: '+ToStr(ExecuteResult)+' (expected 0)');
         Verbose(V_Warning,'Exitcode: '+ToStr(ExecuteResult)+' (expected 0)');
       end
       end
      else
      else
       begin
       begin
-        AddLog(ResLogFile,successfully_compiled+PPFileInfo[current]);
+        AddLog(ResLogFile,MaybePrependUnimplemented(successfully_compiled)+PPFileInfo[current]);
         RunCompiler:=true;
         RunCompiler:=true;
       end;
       end;
    end;
    end;
@@ -1174,13 +1183,13 @@ begin
   if (not execres) and (ExecuteResult=0) then
   if (not execres) and (ExecuteResult=0) then
     begin
     begin
       AddLog(FailLogFile,TestName);
       AddLog(FailLogFile,TestName);
-      AddLog(ResLogFile,failed_to_run+PPFileInfo[current]);
+      AddLog(ResLogFile,MaybePrependUnimplemented(failed_to_run)+PPFileInfo[current]);
       AddLog(LongLogFile,line_separation);
       AddLog(LongLogFile,line_separation);
-      AddLog(LongLogFile,failed_to_run+PPFileInfo[current]);
+      AddLog(LongLogFile,MaybePrependUnimplemented(failed_to_run)+PPFileInfo[current]);
       if CopyFile(EXELogFile,LongLogFile,true)=0 then
       if CopyFile(EXELogFile,LongLogFile,true)=0 then
         AddLog(LongLogFile,'IOStatus: '+ToStr(IOStatus));
         AddLog(LongLogFile,'IOStatus: '+ToStr(IOStatus));
       { avoid to try again }
       { avoid to try again }
-      AddLog(ExeLogFile,failed_to_run+PPFileInfo[current]);
+      AddLog(ExeLogFile,MaybePrependUnimplemented(failed_to_run)+PPFileInfo[current]);
       Verbose(V_Warning,'IOStatus: '+ToStr(IOStatus));
       Verbose(V_Warning,'IOStatus: '+ToStr(IOStatus));
       exit;
       exit;
     end;
     end;
@@ -1191,10 +1200,10 @@ begin
         (ExecuteResult=Config.KnownRunError) then
         (ExecuteResult=Config.KnownRunError) then
        begin
        begin
          AddLog(FailLogFile,TestName+known_problem+Config.KnownRunNote);
          AddLog(FailLogFile,TestName+known_problem+Config.KnownRunNote);
-         AddLog(ResLogFile,failed_to_run+PPFileInfo[current]+known_problem+Config.KnownRunNote);
+         AddLog(ResLogFile,MaybePrependUnimplemented(failed_to_run)+PPFileInfo[current]+known_problem+Config.KnownRunNote);
          AddLog(LongLogFile,line_separation);
          AddLog(LongLogFile,line_separation);
          AddLog(LongLogFile,known_problem+Config.KnownRunNote);
          AddLog(LongLogFile,known_problem+Config.KnownRunNote);
-         AddLog(LongLogFile,failed_to_run+PPFileInfo[current]+' ('+ToStr(ExecuteResult)+')');
+         AddLog(LongLogFile,MaybePrependUnimplemented(failed_to_run)+PPFileInfo[current]+' ('+ToStr(ExecuteResult)+')');
          if Copyfile(EXELogFile,LongLogFile,true)=0 then
          if Copyfile(EXELogFile,LongLogFile,true)=0 then
            begin
            begin
              AddLog(LongLogFile,known_problem+'exitcode: '+ToStr(ExecuteResult)+' (expected '+ToStr(Config.ResultCode)+')');
              AddLog(LongLogFile,known_problem+'exitcode: '+ToStr(ExecuteResult)+' (expected '+ToStr(Config.ResultCode)+')');
@@ -1205,9 +1214,9 @@ begin
      else
      else
        begin
        begin
          AddLog(FailLogFile,TestName);
          AddLog(FailLogFile,TestName);
-         AddLog(ResLogFile,failed_to_run+PPFileInfo[current]);
+         AddLog(ResLogFile,MaybePrependUnimplemented(failed_to_run)+PPFileInfo[current]);
          AddLog(LongLogFile,line_separation);
          AddLog(LongLogFile,line_separation);
-         AddLog(LongLogFile,failed_to_run+PPFileInfo[current]+' ('+ToStr(ExecuteResult)+')');
+         AddLog(LongLogFile,MaybePrependUnimplemented(failed_to_run)+PPFileInfo[current]+' ('+ToStr(ExecuteResult)+')');
          if Copyfile(EXELogFile,LongLogFile,true)=0 then
          if Copyfile(EXELogFile,LongLogFile,true)=0 then
            begin
            begin
              AddLog(LongLogFile,'Exitcode: '+ToStr(ExecuteResult)+' (expected '+ToStr(Config.ResultCode)+')');
              AddLog(LongLogFile,'Exitcode: '+ToStr(ExecuteResult)+' (expected '+ToStr(Config.ResultCode)+')');
@@ -1218,7 +1227,7 @@ begin
    end
    end
   else
   else
    begin
    begin
-     AddLog(ResLogFile,successfully_run+PPFileInfo[current]);
+     AddLog(ResLogFile,MaybePrependUnimplemented(successfully_run)+PPFileInfo[current]);
      RunExecutable:=true;
      RunExecutable:=true;
    end;
    end;
 
 

+ 7 - 0
tests/utils/teststr.pp

@@ -20,12 +20,19 @@ unit teststr;
 interface
 interface
 
 
 const
 const
+  strunimplemented = '(unimplemented) ';
   failed_to_compile = 'Failed to compile ';
   failed_to_compile = 'Failed to compile ';
+  failed_to_compile_unimplemented = strunimplemented + failed_to_compile;
   success_compilation_failed = 'Success, compilation failed ';
   success_compilation_failed = 'Success, compilation failed ';
+  success_compilation_failed_unimplemented = strunimplemented + success_compilation_failed;
   failed_compilation_successful = 'Failed, compilation successful ';
   failed_compilation_successful = 'Failed, compilation successful ';
+  failed_compilation_successful_unimplemented = strunimplemented + failed_compilation_successful;
   successfully_compiled = 'Successfully compiled ';
   successfully_compiled = 'Successfully compiled ';
+  successfully_compiled_unimplemented = strunimplemented + successfully_compiled;
   failed_to_run = 'Failed to run ';
   failed_to_run = 'Failed to run ';
+  failed_to_run_unimplemented = strunimplemented + failed_to_run;
   successfully_run = 'Successfully run ';
   successfully_run = 'Successfully run ';
+  successfully_run_unimplemented = strunimplemented + successfully_run;
   skipping_graph_test = 'Skipping test because it uses graph ';
   skipping_graph_test = 'Skipping test because it uses graph ';
   skipping_interactive_test = 'Skipping test because it is interactive ';
   skipping_interactive_test = 'Skipping test because it is interactive ';
   skipping_known_bug = 'Skipping test because it is a known bug ';
   skipping_known_bug = 'Skipping test because it is a known bug ';

+ 4 - 0
tests/utils/testu.pp

@@ -41,6 +41,7 @@ type
     Files         : string;
     Files         : string;
     WpoParas      : string;
     WpoParas      : string;
     WpoPasses     : longint;
     WpoPasses     : longint;
+    NotImplemented: boolean;
   end;
   end;
 
 
 Const
 Const
@@ -275,6 +276,9 @@ begin
               else
               else
                 if GetEntry('WPOPASSES') then
                 if GetEntry('WPOPASSES') then
                  val(res,r.wpopasses,code)
                  val(res,r.wpopasses,code)
+              else
+                if GetEntry('UNIMPLEMENTED') then
+                 r.NotImplemented:=true
               else
               else
                Verbose(V_Error,'Unknown entry: '+s);
                Verbose(V_Error,'Unknown entry: '+s);
             end;
             end;