ShaderMetricsSystem spawns a lot of warnings (#5661)
* ShaderMetricsSystem spawns a lot of warnings when run Atom_RPI.Tests Added @user@ path alias definition. * When running unit tests, using AZ::Utils::GetProjectPath() will resolve to something like: "/data/workspace/o3de/build/linux/External/Atom-9a4d112b/RPI/Code/Cache" The ShaderMetricSystem.cpp writes to the @user@ folder and the following runtime error occurs: "You may not alter data inside the asset cache. Please check the call stack and consider writing into the source asset folder instead." "Attempted write location: /data/workspace/o3de/build/linux/External/Atom-9a4d112b/RPI/Code/Cache/user/shadermetrics.json" To avoid the error We use AZ::Test::GetEngineRootPath(); Signed-off-by: galibzon <66021303+galibzon@users.noreply.github.com>
This commit is contained in:
@@ -69,6 +69,19 @@ namespace UnitTest
|
||||
assetPath /= "Cache";
|
||||
AZ::IO::FileIOBase::GetInstance()->SetAlias("@products@", assetPath.c_str());
|
||||
|
||||
// Remark, AZ::Utils::GetProjectPath() is not used when defining "user" folder,
|
||||
// instead We use AZ::Test::GetEngineRootPath();.
|
||||
// Reason:
|
||||
// When running unit tests, using AZ::Utils::GetProjectPath() will resolve to something like:
|
||||
// "/data/workspace/o3de/build/linux/External/Atom-9a4d112b/RPI/Code/Cache"
|
||||
// The ShaderMetricSystem.cpp writes to the @user@ folder and the following runtime error occurs:
|
||||
// "You may not alter data inside the asset cache. Please check the call stack and consider writing into the source asset folder instead."
|
||||
// "Attempted write location: /data/workspace/o3de/build/linux/External/Atom-9a4d112b/RPI/Code/Cache/user/shadermetrics.json"
|
||||
// To avoid the error We use AZ::Test::GetEngineRootPath();
|
||||
AZ::IO::Path userPath = AZ::Test::GetEngineRootPath();
|
||||
userPath /= "user";
|
||||
AZ::IO::FileIOBase::GetInstance()->SetAlias("@user@", userPath.c_str());
|
||||
|
||||
m_jsonRegistrationContext = AZStd::make_unique<AZ::JsonRegistrationContext>();
|
||||
m_jsonSystemComponent = AZStd::make_unique<AZ::JsonSystemComponent>();
|
||||
m_jsonSystemComponent->Reflect(m_jsonRegistrationContext.get());
|
||||
|
||||
Reference in New Issue
Block a user