I found that in E:\Repos\Triton_Unreal\UE5\Engine\Source\Programs\AutomationTool\Gauntlet\Unreal\Base\Gauntlet.UnrealTestNode.cs,
function StopTests,
SaveRoleArtifacts is now deleting the E:\Repos\Triton_Unreal\UE5\GauntletTemp\DeviceCache\Win64\LocalDevice0\UserDir\Saved directory deleted before it is parsed in the CreateRoleResultsFromArtifacts function.
When I debug inside CreateLogSummaryFromArtifacts, I found the ProcessLogFile of the AppInstance had been deleted
(eg. E:\Repos\Triton_Unreal\UE5\GauntletTemp\DeviceCache\Win64\LocalDevice0\UserDir\Saved\Logs\AcousticsGame.log)
The fallback to use the ProcessLogOutput instead is insufficient as the buffer does not contain the required string to validate the EngineInitialized.
public string EngineInitializedPattern = @“LogInit.+Engine is initialized\.”;
The root cause seems to be a change at //UE5/Release-5.7 CL 46399096 to:
E:\Repos\Triton_Unreal\UE5\Engine\Source\Programs\AutomationTool\Gauntlet\Unreal\Base\Gauntlet.UnrealSession.cs,
Function SaveRoleArtifacts
At Line 1155, I believe the refactored logic is incorrect:
if (SkipArchivingAssets && !bRetainArtifacts && SourceDirectory.Exists)
In 5.6, the effect of the nested logic would have yielded the following instead:
if (!SkipArchivingAssets && SourceDirectory.Exists && !bRetainArtifacts)
These are some things that did work for us:
- Modifying this line 1155 to the logic allowed our tests to pass.
- Reverting to Gauntlet.UnrealSession.cs to CL 45349090
- Adding parameter -RetainDeviceArtifacts to RunUAT commandline params (but we didn’t have to do this in previous versions). Is this necessary now?
I also noticed you’ve modified the function at 45733620 on //UE5/Main/; however, these changes don’t address the issue I’m observing. When DirectoryToCleanUp == null, it falls through the same logic.
[Attachment Removed]