After running the tests, APT will try to invoke PerfReportTool.dll to generate reports. The generated command surrounds most arguments by quote but not the PerfReportTool.dll path so if the engine installation contains spaces (e.g. the default directory in “C:\Program Files” used by the launcher) the command will fail.
Steps to Reproduce
- Add AutomatedPerfTest to project
- Add at least a valid test to run
- Run the test (`RunUAT.bat RunUnreal -Test="AutomatedPerfTest…`) passing the `-LocalReports` option.
Hi Filippo, thank you for flagging this issue. Meanwhile, if you have access to the source code, in file AutomatedPerfTestNode.cs in the following function, you should see the line where the tool is invoked.
private bool GenerateLocalPerfReport(UnrealTargetPlatform Platform, string OutputPath)
{
// ...
RunAndLog(CmdEnv, CmdEnv.DotnetMsbuildPath, PerfReportToolArgs, out int ErrorCode);
// ...
}
Above that, the arguments to the invoke the DLL can be found - where you can surround the ToolPath argument string with escaped quotes. There should be two instances of this in the function
Args = new[]
{
$"{ToolPath.FullName}", // Change this to -> $"\"{ToolPath.FullName}\"",
...
};
Rebuilding AutomationTool after above changes ideally should fix the command failure you’re seeing. We will try to get a fix in for this soon as well.
Hi Nitish, you’ll see that I have already made a PR with the same fix: https://github.com/EpicGames/UnrealEngine/pull/13843\. Thanks for confirming that this is the right fix!
Thanks for the PR Filippo! I will go ahead and close this ticket for now and the team can follow up on this with the PR