Forráskód Böngészése

Add some delay and a maximum attempt number in GenerateTempDir to avoid getting oversized execution log files

Pierre Muller 3 éve
szülő
commit
52cc8df079
1 módosított fájl, 11 hozzáadás és 1 törlés
  1. 11 1
      tests/utils/dosbox/dosbox_wrapper.pas

+ 11 - 1
tests/utils/dosbox/dosbox_wrapper.pas

@@ -30,14 +30,19 @@ var
   TmpFileList : TStringList;
 
 function GenerateTempDir: string;
+const
+  max_attempts = 10;
 var
   TempDirName: string;
   BaseTempDir: string;
   Done: Boolean = False;
+  attempt: longint;
 begin
   BaseTempDir := GetTempDir(False);
   Result := no_temp_dir_generated;
+  attempt := 0;
   repeat
+    inc(attempt);
     try
       TempDirName := BaseTempDir + 'dosboxwrappertmp_' + IntToStr(Random(100000));
       if verbose then
@@ -56,8 +61,13 @@ begin
             raise;
           end;
       end;
+      on E: Exception do
+      begin
+        Writeln('Exception ',E.Message);
+        Sleep(1000);
+      end;
     end;
-  until Done;
+  until Done or (attempt > max_attempts);
   Result := TempDirName + DirectorySeparator;
 end;