diff --git a/tests/utils/dosbox/dosbox_wrapper.pas b/tests/utils/dosbox/dosbox_wrapper.pas index d567a9f66c..0cfad9538e 100644 --- a/tests/utils/dosbox/dosbox_wrapper.pas +++ b/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;