Browse Source

+ known bug flag
+ norun flag
+ recompile flag

peter 25 years ago
parent
commit
d6beb890cd
1 changed files with 56 additions and 8 deletions
  1. 56 8
      tests/utils/dotest.pp

+ 56 - 8
tests/utils/dotest.pp

@@ -18,7 +18,10 @@ type
     NeedCPU,
     NeedVersion   : string;
     ResultCode    : longint;
+    NeedRecompile : boolean;
     IsInteractive : boolean;
+    IsKnown       : boolean;
+    NoRun         : boolean;
     UsesGraph     : boolean;
     ShouldFail    : boolean;
     Category      : string;
@@ -40,6 +43,7 @@ const
   DoGraph : boolean = false;
   DoInteractive : boolean = false;
   DoExecute : boolean = false;
+  DoKnown : boolean = false;
 
 procedure Verbose(lvl:TVerboseLevel;const s:string);
 begin
@@ -250,6 +254,7 @@ var
   end;
 
 begin
+  FillChar(r,sizeof(r),0);
   GetConfig:=false;
   Verbose(V_Debug,'Reading '+fn);
   assign(t,fn);
@@ -290,6 +295,15 @@ begin
               else
                if GetEntry('FAIL') then
                 r.ShouldFail:=true
+              else
+               if GetEntry('RECOMPILE') then
+                r.NeedRecompile:=true
+              else
+               if GetEntry('NORUN') then
+                r.NoRun:=true
+              else
+               if GetEntry('KNOWN') then
+                r.IsKnown:=true
               else
                if GetEntry('INTERACTIVE') then
                 r.IsInteractive:=true
@@ -443,7 +457,9 @@ var
     writeln('  -C<compiler>  set compiler to use');
     writeln('  -V            verbose');
     writeln('  -E            execute test also');
+    writeln('  -A            include ALL tests');
     writeln('  -G            include graph tests');
+    writeln('  -G            include known bug tests');
     writeln('  -I            include interactive tests');
     halt(1);
   end;
@@ -462,11 +478,18 @@ begin
         ch:=Upcase(para[2]);
         delete(para,1,2);
         case ch of
+         'A' :
+           begin
+             DoGraph:=true;
+             DoInteractive:=true;
+             DoKnown:=true;
+           end;
          'C' : CompilerBin:=Para;
          'E' : DoExecute:=true;
          'G' : DoGraph:=true;
          'I' : DoInteractive:=true;
          'V' : DoVerbose:=true;
+         'K' : DoKnown:=true;
         end;
      end
     else
@@ -505,6 +528,15 @@ begin
       end;
    end;
 
+  if Res then
+   begin
+     if Config.IsKnown and (not DoKnown) then
+      begin
+        Verbose(V_Abort,'Skipping test because it is a known bug');
+        Res:=false;
+      end;
+   end;
+
   if Res then
    begin
      if Config.NeedVersion<>'' then
@@ -534,17 +566,28 @@ begin
    end;
 
   if Res then
-   Res:=RunCompiler;
+   begin
+     Res:=RunCompiler;
+     if Res and Config.NeedRecompile then
+      Res:=RunCompiler;
+   end;
 
   if Res then
    begin
-     if (not Config.ShouldFail) and DoExecute then
+     if (Config.NoRun) then
       begin
-        if FileExists(ForceExtension(PPFile,'ppu')) or
-           FileExists(ForceExtension(PPFile,'ppw')) then
-         Verbose(V_Debug,'Unit found, skipping run test')
-        else
-         Res:=RunExecutable;
+        Verbose(V_Debug,'Skipping run test');
+      end
+     else
+      begin
+        if (not Config.ShouldFail) and DoExecute then
+         begin
+           if FileExists(ForceExtension(PPFile,'ppu')) or
+              FileExists(ForceExtension(PPFile,'ppw')) then
+            Verbose(V_Debug,'Unit found, skipping run test')
+           else
+            Res:=RunExecutable;
+         end;
       end;
    end;
 end;
@@ -556,7 +599,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.6  2000-12-04 22:06:25  peter
+  Revision 1.7  2000-12-09 16:01:10  peter
+    + known bug flag
+    + norun flag
+    + recompile flag
+
+  Revision 1.6  2000/12/04 22:06:25  peter
     * fixed stupid c&p bug for CPU check
 
   Revision 1.5  2000/12/03 22:59:10  florian