Merge commit '155fe77f5d0de7288d8b57fff83bff0f17b08a94' into puvvadar/gitflow_211118_o3de

This commit is contained in:
puvvadar
2021-11-18 09:36:47 -08:00
@@ -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());