From 2b9d1ca8132085b6bda548bdefb5a49bd3e63340 Mon Sep 17 00:00:00 2001 From: Vincent Liu <5900509+onecent1101@users.noreply.github.com> Date: Tue, 4 Jan 2022 12:45:51 -0800 Subject: [PATCH] Update to use AWSNativeSDK 1.9.50 (#6618) * Update to use AWSNativeSDK 1.9.50 * After SDK upgrade, some AWS objects are bound to SDK allocator, init AWS SDK for unit test --- .../AWSNativeSDKInit/AWSLogSystemInterface.h | 2 +- .../AWSNativeSDKInit/AWSMemoryInterface.h | 1 + .../AWSNativeSDKInit/AWSNativeSDKInit.h | 2 +- Gems/AWSCore/Code/CMakeLists.txt | 1 + .../Platform/Windows/AWSCore_Traits_Windows.h | 2 +- .../Code/Tests/AWSCoreSystemComponentTest.cpp | 4 + .../AWSCoreConfigurationTest.cpp | 87 +++----------- .../AWSCVarCredentialHandlerTest.cpp | 5 + .../Tests/Credential/AWSCredentialBusTest.cpp | 20 ++-- .../AWSDefaultCredentialHandlerTest.cpp | 16 ++- .../AWSAttributionServiceApiTest.cpp | 4 +- .../AWSCoreAttributionManagerTest.cpp | 21 ++-- .../Framework/AWSApiClientJobConfigTest.cpp | 13 +-- .../Tests/Framework/AWSApiJobConfigTest.cpp | 7 +- .../Tests/Framework/HttpRequestJobTest.cpp | 6 +- .../Tests/Framework/JsonObjectHandlerTest.cpp | 4 +- .../Code/Tests/Framework/JsonWriterTest.cpp | 4 +- .../Tests/Framework/RequestBuilderTest.cpp | 4 +- .../Framework/ServiceClientJobConfigTest.cpp | 8 +- .../Tests/Framework/ServiceJobUtilTest.cpp | 4 +- .../Tests/Framework/ServiceRequestJobTest.cpp | 4 +- .../AWSCore/Code/Tests/Framework/UtilTest.cpp | 4 +- .../AWSResourceMappingManagerTest.cpp | 110 +++++------------- .../AWSResourceMappingUtilsTest.cpp | 4 +- .../AWSScriptBehaviorDynamoDBTest.cpp | 3 +- .../AWSScriptBehaviorLambdaTest.cpp | 6 +- .../ScriptCanvas/AWSScriptBehaviorS3Test.cpp | 13 ++- .../AWSScriptBehaviorsComponentTest.cpp | 5 +- .../Code/Tests/TestFramework/AWSCoreFixture.h | 15 ++- .../Windows/BuiltInPackages_windows.cmake | 2 +- 30 files changed, 143 insertions(+), 238 deletions(-) diff --git a/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSLogSystemInterface.h b/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSLogSystemInterface.h index 4982d3efbd..901e37cd7b 100644 --- a/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSLogSystemInterface.h +++ b/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSLogSystemInterface.h @@ -10,7 +10,7 @@ #if defined(PLATFORM_SUPPORTS_AWS_NATIVE_SDK) -#include +#include AZ_PUSH_DISABLE_WARNING(4251 4996, "-Wunknown-warning-option") #include diff --git a/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSMemoryInterface.h b/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSMemoryInterface.h index 805088563f..26126057e2 100644 --- a/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSMemoryInterface.h +++ b/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSMemoryInterface.h @@ -8,6 +8,7 @@ #pragma once +#include #if defined(PLATFORM_SUPPORTS_AWS_NATIVE_SDK) #include #else diff --git a/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSNativeSDKInit.h b/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSNativeSDKInit.h index 32bf02a247..f50d7002eb 100644 --- a/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSNativeSDKInit.h +++ b/Code/Tools/AWSNativeSDKInit/include/AWSNativeSDKInit/AWSNativeSDKInit.h @@ -13,7 +13,7 @@ #include #if defined(PLATFORM_SUPPORTS_AWS_NATIVE_SDK) - +#include // The AWS Native SDK AWSAllocator triggers a warning due to accessing members of std::allocator directly. // AWSAllocator.h(70): warning C4996: 'std::allocator::pointer': warning STL4010: Various members of std::allocator are deprecated in C++17. // Use std::allocator_traits instead of accessing these members directly. diff --git a/Gems/AWSCore/Code/CMakeLists.txt b/Gems/AWSCore/Code/CMakeLists.txt index 974f3f03bf..877696e26c 100644 --- a/Gems/AWSCore/Code/CMakeLists.txt +++ b/Gems/AWSCore/Code/CMakeLists.txt @@ -202,6 +202,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) 3rdParty::Qt::Gui 3rdParty::Qt::Widgets AZ::AzTest + AZ::AWSNativeSDKInit Gem::AWSCore.Static Gem::AWSCore.Editor.Static ) diff --git a/Gems/AWSCore/Code/Platform/Windows/AWSCore_Traits_Windows.h b/Gems/AWSCore/Code/Platform/Windows/AWSCore_Traits_Windows.h index d7b1f32461..2cacfb0d34 100644 --- a/Gems/AWSCore/Code/Platform/Windows/AWSCore_Traits_Windows.h +++ b/Gems/AWSCore/Code/Platform/Windows/AWSCore_Traits_Windows.h @@ -7,4 +7,4 @@ */ #pragma once -#define AWSCORE_BACKWARD_INCOMPATIBLE_CHANGE 0 +#define AWSCORE_BACKWARD_INCOMPATIBLE_CHANGE 1 diff --git a/Gems/AWSCore/Code/Tests/AWSCoreSystemComponentTest.cpp b/Gems/AWSCore/Code/Tests/AWSCoreSystemComponentTest.cpp index 648648e945..b66b43f735 100644 --- a/Gems/AWSCore/Code/Tests/AWSCoreSystemComponentTest.cpp +++ b/Gems/AWSCore/Code/Tests/AWSCoreSystemComponentTest.cpp @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -103,6 +104,9 @@ public: TEST_F(AWSCoreSystemComponentTest, ComponentActivateTest) { + // Shutdown SDK which is init in fixture setup step + AWSNativeSDKInit::InitializationManager::Shutdown(); + EXPECT_FALSE(m_coreSystemsComponent->IsAWSApiInitialized()); // activate component diff --git a/Gems/AWSCore/Code/Tests/Configuration/AWSCoreConfigurationTest.cpp b/Gems/AWSCore/Code/Tests/Configuration/AWSCoreConfigurationTest.cpp index e54a55f728..696dfd25d3 100644 --- a/Gems/AWSCore/Code/Tests/Configuration/AWSCoreConfigurationTest.cpp +++ b/Gems/AWSCore/Code/Tests/Configuration/AWSCoreConfigurationTest.cpp @@ -8,7 +8,6 @@ #include #include -#include #include #include @@ -39,12 +38,11 @@ class AWSCoreConfigurationTest : public AWSCoreFixture { public: - void CreateTestSetRegFile(const AZStd::string& setregContent) + AWSCoreConfigurationTest() { - m_normalizedSetRegFilePath = AZStd::string::format("%s/%s", - m_normalizedSetRegFolderPath.c_str(), AWSCore::AWSCoreConfiguration::AWSCoreConfigurationFileName); - AzFramework::StringFunc::Path::Normalize(m_normalizedSetRegFilePath); - CreateTestFile(m_normalizedSetRegFilePath, setregContent); + m_setRegFilePath = (GetTestTempDirectoryPath() / + AZ::SettingsRegistryInterface::RegistryFolder / + AWSCore::AWSCoreConfiguration::AWSCoreConfigurationFileName).LexicallyNormal(); } void SetUp() override @@ -53,22 +51,13 @@ public: m_awsCoreConfiguration = AZStd::make_unique(); - m_normalizedSourceProjectFolder = AZStd::string::format("%s/%s%s/", AZ::Test::GetCurrentExecutablePath().c_str(), - "AWSResourceMappingManager", AZ::Uuid::CreateRandom().ToString(false, false).c_str()); - AzFramework::StringFunc::Path::Normalize(m_normalizedSourceProjectFolder); - m_normalizedSetRegFolderPath = AZStd::string::format("%s/%s/", - m_normalizedSourceProjectFolder.c_str(), AZ::SettingsRegistryInterface::RegistryFolder); - AzFramework::StringFunc::Path::Normalize(m_normalizedSetRegFolderPath); - - m_localFileIO->SetAlias("@projectroot@", m_normalizedSourceProjectFolder.c_str()); - - CreateTestSetRegFile(TEST_VALID_RESOURCE_MAPPING_SETREG); + CreateFile(m_setRegFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_SETREG); + m_localFileIO->SetAlias("@projectroot@", GetTestTempDirectoryPath().Native().c_str()); } void TearDown() override { - RemoveTestFile(); - RemoveTestDirectory(); + RemoveFile(m_setRegFilePath.Native()); m_awsCoreConfiguration.reset(); @@ -76,52 +65,12 @@ public: } AZStd::unique_ptr m_awsCoreConfiguration; - AZStd::string m_normalizedSetRegFilePath; - -private: - AZStd::string m_normalizedSourceProjectFolder; - AZStd::string m_normalizedSetRegFolderPath; - - void CreateTestFile(const AZStd::string& filePath, const AZStd::string& fileContent) - { - AZ::IO::SystemFile file; - if (!file.Open(filePath.c_str(), - AZ::IO::SystemFile::OpenMode::SF_OPEN_CREATE | AZ::IO::SystemFile::SF_OPEN_CREATE_PATH | AZ::IO::SystemFile::SF_OPEN_WRITE_ONLY)) - { - AZ_Assert(false, "Failed to open test file"); - } - - if (file.Write(fileContent.c_str(), fileContent.size()) != fileContent.size()) - { - AZ_Assert(false, "Failed to write test file"); - } - file.Close(); - } - - void RemoveTestFile() - { - if (!m_normalizedSetRegFilePath.empty()) - { - AZ_Assert(AZ::IO::SystemFile::Delete(m_normalizedSetRegFilePath.c_str()), - "Failed to delete test settings registry file at %s", m_normalizedSetRegFilePath.c_str()); - } - } - - void RemoveTestDirectory() - { - if (!m_normalizedSetRegFilePath.empty()) - { - AZ_Assert(AZ::IO::SystemFile::DeleteDir(m_normalizedSetRegFolderPath.c_str()), - "Failed to delete test settings registry folder at %s", m_normalizedSetRegFolderPath.c_str()); - AZ_Assert(AZ::IO::SystemFile::DeleteDir(m_normalizedSourceProjectFolder.c_str()), - "Failed to delete test folder at %s", m_normalizedSourceProjectFolder.c_str()); - } - } + AZ::IO::Path m_setRegFilePath; }; TEST_F(AWSCoreConfigurationTest, InitConfig_NoSourceProjectFolderFound_ReturnEmptyConfigFilePath) { - m_settingsRegistry->MergeSettingsFile(m_normalizedSetRegFilePath, AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); + m_settingsRegistry->MergeSettingsFile(m_setRegFilePath.Native(), AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); m_localFileIO->ClearAlias("@projectroot@"); AZ_TEST_START_TRACE_SUPPRESSION; @@ -134,8 +83,8 @@ TEST_F(AWSCoreConfigurationTest, InitConfig_NoSourceProjectFolderFound_ReturnEmp TEST_F(AWSCoreConfigurationTest, InitConfig_SettingsRegistryIsEmpty_ReturnEmptyConfigFilePath) { - CreateTestSetRegFile(TEST_INVALID_RESOURCE_MAPPING_SETREG); - m_settingsRegistry->MergeSettingsFile(m_normalizedSetRegFilePath, AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); + CreateFile(m_setRegFilePath.Native(), TEST_INVALID_RESOURCE_MAPPING_SETREG); + m_settingsRegistry->MergeSettingsFile(m_setRegFilePath.Native(), AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); m_awsCoreConfiguration->InitConfig(); auto actualConfigFilePath = m_awsCoreConfiguration->GetResourceMappingConfigFilePath(); @@ -144,7 +93,7 @@ TEST_F(AWSCoreConfigurationTest, InitConfig_SettingsRegistryIsEmpty_ReturnEmptyC TEST_F(AWSCoreConfigurationTest, InitConfig_LoadValidSettingsRegistry_ReturnNonEmptyConfigFilePath) { - m_settingsRegistry->MergeSettingsFile(m_normalizedSetRegFilePath, AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); + m_settingsRegistry->MergeSettingsFile(m_setRegFilePath.Native(), AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); m_awsCoreConfiguration->InitConfig(); auto actualConfigFilePath = m_awsCoreConfiguration->GetResourceMappingConfigFilePath(); @@ -153,7 +102,7 @@ TEST_F(AWSCoreConfigurationTest, InitConfig_LoadValidSettingsRegistry_ReturnNonE TEST_F(AWSCoreConfigurationTest, ReloadConfiguration_NoSourceProjectFolderFound_ReturnEmptyConfigFilePath) { - m_settingsRegistry->MergeSettingsFile(m_normalizedSetRegFilePath, AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); + m_settingsRegistry->MergeSettingsFile(m_setRegFilePath.Native(), AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); m_localFileIO->ClearAlias("@projectroot@"); m_awsCoreConfiguration->ReloadConfiguration(); @@ -163,8 +112,8 @@ TEST_F(AWSCoreConfigurationTest, ReloadConfiguration_NoSourceProjectFolderFound_ TEST_F(AWSCoreConfigurationTest, ReloadConfiguration_LoadValidSettingsRegistryAfterInvalidOne_ReturnNonEmptyConfigFilePath) { - CreateTestSetRegFile(TEST_INVALID_RESOURCE_MAPPING_SETREG); - m_settingsRegistry->MergeSettingsFile(m_normalizedSetRegFilePath, AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); + CreateFile(m_setRegFilePath.Native(), TEST_INVALID_RESOURCE_MAPPING_SETREG); + m_settingsRegistry->MergeSettingsFile(m_setRegFilePath.Native(), AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); m_awsCoreConfiguration->InitConfig(); auto actualConfigFilePath = m_awsCoreConfiguration->GetResourceMappingConfigFilePath(); @@ -172,7 +121,7 @@ TEST_F(AWSCoreConfigurationTest, ReloadConfiguration_LoadValidSettingsRegistryAf EXPECT_TRUE(actualConfigFilePath.empty()); EXPECT_TRUE(actualProfileName == AWSCoreConfiguration::AWSCoreDefaultProfileName); - CreateTestSetRegFile(TEST_VALID_RESOURCE_MAPPING_SETREG); + CreateFile(m_setRegFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_SETREG); m_awsCoreConfiguration->ReloadConfiguration(); actualConfigFilePath = m_awsCoreConfiguration->GetResourceMappingConfigFilePath(); @@ -183,7 +132,7 @@ TEST_F(AWSCoreConfigurationTest, ReloadConfiguration_LoadValidSettingsRegistryAf TEST_F(AWSCoreConfigurationTest, ReloadConfiguration_LoadInvalidSettingsRegistryAfterValidOne_ReturnEmptyConfigFilePath) { - m_settingsRegistry->MergeSettingsFile(m_normalizedSetRegFilePath, AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); + m_settingsRegistry->MergeSettingsFile(m_setRegFilePath.Native(), AZ::SettingsRegistryInterface::Format::JsonMergePatch, {}); m_awsCoreConfiguration->InitConfig(); auto actualConfigFilePath = m_awsCoreConfiguration->GetResourceMappingConfigFilePath(); @@ -191,7 +140,7 @@ TEST_F(AWSCoreConfigurationTest, ReloadConfiguration_LoadInvalidSettingsRegistry EXPECT_FALSE(actualConfigFilePath.empty()); EXPECT_TRUE(actualProfileName != AWSCoreConfiguration::AWSCoreDefaultProfileName); - CreateTestSetRegFile(TEST_INVALID_RESOURCE_MAPPING_SETREG); + CreateFile(m_setRegFilePath.Native(), TEST_INVALID_RESOURCE_MAPPING_SETREG); m_awsCoreConfiguration->ReloadConfiguration(); actualConfigFilePath = m_awsCoreConfiguration->GetResourceMappingConfigFilePath(); diff --git a/Gems/AWSCore/Code/Tests/Credential/AWSCVarCredentialHandlerTest.cpp b/Gems/AWSCore/Code/Tests/Credential/AWSCVarCredentialHandlerTest.cpp index 244c945af9..248737fbe6 100644 --- a/Gems/AWSCore/Code/Tests/Credential/AWSCVarCredentialHandlerTest.cpp +++ b/Gems/AWSCore/Code/Tests/Credential/AWSCVarCredentialHandlerTest.cpp @@ -25,6 +25,11 @@ public: m_credentialHandler = AZStd::make_unique(); } + void TearDown() override + { + m_credentialHandler.reset(); + } + AZStd::unique_ptr m_credentialHandler; }; diff --git a/Gems/AWSCore/Code/Tests/Credential/AWSCredentialBusTest.cpp b/Gems/AWSCore/Code/Tests/Credential/AWSCredentialBusTest.cpp index 82c8c84b81..1b4318f472 100644 --- a/Gems/AWSCore/Code/Tests/Credential/AWSCredentialBusTest.cpp +++ b/Gems/AWSCore/Code/Tests/Credential/AWSCredentialBusTest.cpp @@ -6,8 +6,6 @@ * */ -#include - #include #include @@ -19,14 +17,10 @@ class TestCredentialHandlerOne : AWSCredentialRequestBus::Handler { public: - TestCredentialHandlerOne() + void ActivateHandler() { m_handlerCounter = 0; m_credentialsProvider = std::make_shared(); - } - - void ActivateHandler() - { AWSCredentialRequestBus::Handler::BusConnect(); } @@ -55,14 +49,10 @@ class TestCredentialHandlerTwo : AWSCredentialRequestBus::Handler { public: - TestCredentialHandlerTwo() + void ActivateHandler() { m_handlerCounter = 0; m_credentialsProvider = std::make_shared(); - } - - void ActivateHandler() - { AWSCredentialRequestBus::Handler::BusConnect(); } @@ -88,7 +78,7 @@ public: }; class AWSCredentialBusTest - : public UnitTest::ScopedAllocatorSetupFixture + : public AWSCoreFixture { public: AWSCredentialBusTest() @@ -99,6 +89,8 @@ public: void SetUp() override { + AWSCoreFixture::SetUpFixture(); + m_handlerOne->ActivateHandler(); m_handlerTwo->ActivateHandler(); } @@ -107,6 +99,8 @@ public: { m_handlerOne->DeactivateHandler(); m_handlerTwo->DeactivateHandler(); + + AWSCoreFixture::TearDownFixture(); } AZStd::unique_ptr m_handlerOne; diff --git a/Gems/AWSCore/Code/Tests/Credential/AWSDefaultCredentialHandlerTest.cpp b/Gems/AWSCore/Code/Tests/Credential/AWSDefaultCredentialHandlerTest.cpp index af03afb337..4ff82bcb62 100644 --- a/Gems/AWSCore/Code/Tests/Credential/AWSDefaultCredentialHandlerTest.cpp +++ b/Gems/AWSCore/Code/Tests/Credential/AWSDefaultCredentialHandlerTest.cpp @@ -6,11 +6,9 @@ * */ -#include -#include - #include #include +#include using namespace AWSCore; @@ -18,13 +16,15 @@ static constexpr char AWSDEFAULTCREDENTIALHANDLERTEST_ALLOC_TAG[] = "AWSDefaultC static constexpr const char* AWS_ACCESS_KEY = "AWSACCESSKEY"; static constexpr const char* AWS_SECRET_KEY = "AWSSECRETKEY"; -class EnvironmentAWSCredentialsProviderMock : public Aws::Auth::EnvironmentAWSCredentialsProvider +class EnvironmentAWSCredentialsProviderMock + : public Aws::Auth::EnvironmentAWSCredentialsProvider { public: MOCK_METHOD0(GetAWSCredentials, Aws::Auth::AWSCredentials()); }; -class ProfileConfigFileAWSCredentialsProviderMock : public Aws::Auth::ProfileConfigFileAWSCredentialsProvider +class ProfileConfigFileAWSCredentialsProviderMock + : public Aws::Auth::ProfileConfigFileAWSCredentialsProvider { public: MOCK_METHOD0(GetAWSCredentials, Aws::Auth::AWSCredentials()); @@ -44,7 +44,7 @@ public: }; class AWSDefaultCredentialHandlerTest - : public UnitTest::ScopedAllocatorSetupFixture + : public AWSCoreFixture , public AWSCoreInternalRequestBus::Handler { public: @@ -53,6 +53,8 @@ public: void SetUp() override { + AWSCoreFixture::SetUpFixture(); + AWSCoreInternalRequestBus::Handler::BusConnect(); m_environmentCredentialsProviderMock = Aws::MakeShared(AWSDEFAULTCREDENTIALHANDLERTEST_ALLOC_TAG); m_profileCredentialsProviderMock = Aws::MakeShared(AWSDEFAULTCREDENTIALHANDLERTEST_ALLOC_TAG); @@ -68,6 +70,8 @@ public: m_profileCredentialsProviderMock.reset(); m_environmentCredentialsProviderMock.reset(); AWSCoreInternalRequestBus::Handler::BusDisconnect(); + + AWSCoreFixture::TearDownFixture(); } // AWSCoreInternalRequestBus interface implementation diff --git a/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSAttributionServiceApiTest.cpp b/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSAttributionServiceApiTest.cpp index 4290713e5c..7ce0290ea3 100644 --- a/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSAttributionServiceApiTest.cpp +++ b/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSAttributionServiceApiTest.cpp @@ -11,7 +11,7 @@ #include #include -#include +#include using namespace AWSCore; @@ -36,7 +36,7 @@ namespace AWSCoreUnitTest }; class AWSAttributionServiceApiTest - : public UnitTest::ScopedAllocatorSetupFixture + : public AWSCoreFixture { public: testing::NiceMock JsonReader; diff --git a/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSCoreAttributionManagerTest.cpp b/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSCoreAttributionManagerTest.cpp index e996e0b9c0..b78bfe29c8 100644 --- a/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSCoreAttributionManagerTest.cpp +++ b/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSCoreAttributionManagerTest.cpp @@ -10,7 +10,6 @@ #include #include -#include #include #include #include @@ -23,7 +22,6 @@ #include #include #include -#include #include #include #include @@ -167,7 +165,6 @@ namespace AWSAttributionUnitTest AZStd::unique_ptr m_jobManager; AZStd::array m_resolvedSettingsPath; ModuleManagerRequestBusMock m_moduleManagerRequestBusMock; - AWSCredentialRquestsBusMock m_credentialRequestBusMock; void SetUp() override { @@ -221,6 +218,7 @@ namespace AWSAttributionUnitTest TEST_F(AttributionManagerTest, MetricsSettings_ConsentShown_AttributionDisabled_SkipsSend) { // GIVEN + AWSCredentialRquestsBusMock credentialRequestBusMock; AWSAttributionManagerMock manager; CreateFile(m_resolvedSettingsPath.data(), R"({ @@ -239,7 +237,7 @@ namespace AWSAttributionUnitTest EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(0); EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(0); - EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1); + EXPECT_CALL(credentialRequestBusMock, GetCredentialsProvider()).Times(1); // WHEN manager.MetricCheck(); @@ -255,6 +253,7 @@ namespace AWSAttributionUnitTest TEST_F(AttributionManagerTest, AttributionEnabled_ContentShown_NoPreviousTimeStamp_SendSuccess) { // GIVEN + AWSCredentialRquestsBusMock credentialRequestBusMock; AWSAttributionManagerMock manager; CreateFile(m_resolvedSettingsPath.data(), R"({ @@ -272,7 +271,7 @@ namespace AWSAttributionUnitTest EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(1); EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(1); - EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1); + EXPECT_CALL(credentialRequestBusMock, GetCredentialsProvider()).Times(1); // WHEN manager.MetricCheck(); @@ -289,6 +288,7 @@ namespace AWSAttributionUnitTest TEST_F(AttributionManagerTest, AttributionEnabled_ContentShown_ValidPreviousTimeStamp_SendSuccess) { // GIVEN + AWSCredentialRquestsBusMock credentialRequestBusMock; AWSAttributionManagerMock manager; CreateFile(m_resolvedSettingsPath.data(), R"({ @@ -308,7 +308,7 @@ namespace AWSAttributionUnitTest EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(1); EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(1); - EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1); + EXPECT_CALL(credentialRequestBusMock, GetCredentialsProvider()).Times(1); // WHEN manager.MetricCheck(); @@ -324,6 +324,7 @@ namespace AWSAttributionUnitTest TEST_F(AttributionManagerTest, AttributionEnabled_ContentShown_DelayNotSatisfied_SendFail) { // GIVEN + AWSCredentialRquestsBusMock credentialRequestBusMock; AWSAttributionManagerMock manager; CreateFile(m_resolvedSettingsPath.data(), R"({ @@ -346,7 +347,7 @@ namespace AWSAttributionUnitTest EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(0); EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(0); - EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1); + EXPECT_CALL(credentialRequestBusMock, GetCredentialsProvider()).Times(1); // WHEN manager.MetricCheck(); @@ -362,6 +363,7 @@ namespace AWSAttributionUnitTest TEST_F(AttributionManagerTest, AttributionEnabledNotFound_ContentShown_SendFail) { // GIVEN + AWSCredentialRquestsBusMock credentialRequestBusMock; AWSAttributionManagerMock manager; CreateFile(m_resolvedSettingsPath.data(), R"({ @@ -378,7 +380,7 @@ namespace AWSAttributionUnitTest EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(0); EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(0); - EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1); + EXPECT_CALL(credentialRequestBusMock, GetCredentialsProvider()).Times(1); // WHEN manager.MetricCheck(); @@ -394,12 +396,13 @@ namespace AWSAttributionUnitTest TEST_F(AttributionManagerTest, AttributionEnabledNotFound_ContentNotShown_SendFail) { // GIVEN + AWSCredentialRquestsBusMock credentialRequestBusMock; AWSAttributionManagerMock manager; manager.Init(); EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(0); EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(0); - EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1); + EXPECT_CALL(credentialRequestBusMock, GetCredentialsProvider()).Times(1); EXPECT_CALL(manager, ShowConsentDialog()).Times(1); // WHEN diff --git a/Gems/AWSCore/Code/Tests/Framework/AWSApiClientJobConfigTest.cpp b/Gems/AWSCore/Code/Tests/Framework/AWSApiClientJobConfigTest.cpp index db433062ad..0eca8a37ed 100644 --- a/Gems/AWSCore/Code/Tests/Framework/AWSApiClientJobConfigTest.cpp +++ b/Gems/AWSCore/Code/Tests/Framework/AWSApiClientJobConfigTest.cpp @@ -6,9 +6,6 @@ * */ -#include - -#include #include #include @@ -19,7 +16,7 @@ using namespace AWSCore; class AWSApiClientJobConfigTest - : public UnitTest::ScopedAllocatorSetupFixture + : public AWSCoreFixture , public AWSCredentialRequestBus::Handler { public: @@ -30,13 +27,9 @@ public: void SetUp() override { - AWSNativeSDKInit::InitializationManager::InitAwsApi(); - m_credentialHandlerCounter = 0; - } + AWSCoreFixture::SetUpFixture(); - void TearDown() override - { - AWSNativeSDKInit::InitializationManager::Shutdown(); + m_credentialHandlerCounter = 0; } // AWSCredentialRequestBus interface implementation diff --git a/Gems/AWSCore/Code/Tests/Framework/AWSApiJobConfigTest.cpp b/Gems/AWSCore/Code/Tests/Framework/AWSApiJobConfigTest.cpp index 6976856b60..8caf0ac013 100644 --- a/Gems/AWSCore/Code/Tests/Framework/AWSApiJobConfigTest.cpp +++ b/Gems/AWSCore/Code/Tests/Framework/AWSApiJobConfigTest.cpp @@ -8,7 +8,6 @@ #include #include -#include #include @@ -20,14 +19,14 @@ using namespace AWSCore; class AwsApiJobConfigTest - : public UnitTest::ScopedAllocatorSetupFixture + : public AWSCoreFixture , AWSCredentialRequestBus::Handler , AWSCoreRequestBus::Handler { public: void SetUp() override { - AZ::AllocatorInstance::Create(); + AWSCoreFixture::SetUpFixture(); m_credentialsHandler = std::make_shared(); AZ::JobManagerDesc jobDesc; @@ -45,7 +44,7 @@ public: m_jobManager.reset(); m_credentialsHandler.reset(); - AZ::AllocatorInstance::Destroy(); + AWSCoreFixture::TearDownFixture(); } // AWSCredentialRequestBus interface implementation diff --git a/Gems/AWSCore/Code/Tests/Framework/HttpRequestJobTest.cpp b/Gems/AWSCore/Code/Tests/Framework/HttpRequestJobTest.cpp index e04cdcb2d9..cee5ec0624 100644 --- a/Gems/AWSCore/Code/Tests/Framework/HttpRequestJobTest.cpp +++ b/Gems/AWSCore/Code/Tests/Framework/HttpRequestJobTest.cpp @@ -6,24 +6,24 @@ * */ -#include - #include #include using namespace AWSCore; class HttpRequestJobTest - : public UnitTest::ScopedAllocatorSetupFixture + : public AWSCoreFixture { void SetUp() override { + AWSCoreFixture::SetUpFixture(); HttpRequestJob::StaticInit(); } void TearDown() override { HttpRequestJob::StaticShutdown(); + AWSCoreFixture::TearDownFixture(); } }; diff --git a/Gems/AWSCore/Code/Tests/Framework/JsonObjectHandlerTest.cpp b/Gems/AWSCore/Code/Tests/Framework/JsonObjectHandlerTest.cpp index f7b1546561..49e77be35f 100644 --- a/Gems/AWSCore/Code/Tests/Framework/JsonObjectHandlerTest.cpp +++ b/Gems/AWSCore/Code/Tests/Framework/JsonObjectHandlerTest.cpp @@ -6,8 +6,6 @@ * */ -#include - #include #include @@ -18,7 +16,7 @@ using OBJECT_TYPE = TestObject; using ARRAY_TYPE = AZStd::vector; using ARRAY_OF_ARRAY_TYPE = AZStd::vector>; using ARRAY_OF_OBJECT_TYPE = AZStd::vector>; -using JsonReaderTest = UnitTest::ScopedAllocatorSetupFixture; +using JsonReaderTest = AWSCoreFixture; template void TestJsonReaderSuccess(const ValueType& expectedValue, const char* valueString) diff --git a/Gems/AWSCore/Code/Tests/Framework/JsonWriterTest.cpp b/Gems/AWSCore/Code/Tests/Framework/JsonWriterTest.cpp index 12ada1188c..9a08e6f111 100644 --- a/Gems/AWSCore/Code/Tests/Framework/JsonWriterTest.cpp +++ b/Gems/AWSCore/Code/Tests/Framework/JsonWriterTest.cpp @@ -6,8 +6,6 @@ * */ -#include - #include #include @@ -17,7 +15,7 @@ using namespace AWSCoreTestingUtils; using OBJECT_TYPE = TestObject; using ARRAY_TYPE = AZStd::vector; -using JsonWriterTest = UnitTest::ScopedAllocatorSetupFixture; +using JsonWriterTest = AWSCoreFixture; template void TestJsonWriterSuccess(const ValueType& actualValue, const char* valueString) diff --git a/Gems/AWSCore/Code/Tests/Framework/RequestBuilderTest.cpp b/Gems/AWSCore/Code/Tests/Framework/RequestBuilderTest.cpp index 0c08868100..35ce262f30 100644 --- a/Gems/AWSCore/Code/Tests/Framework/RequestBuilderTest.cpp +++ b/Gems/AWSCore/Code/Tests/Framework/RequestBuilderTest.cpp @@ -6,15 +6,13 @@ * */ -#include - #include #include using namespace AWSCore; using namespace AWSCoreTestingUtils; -using RequestBuilderTest = UnitTest::ScopedAllocatorSetupFixture; +using RequestBuilderTest = AWSCoreFixture; TEST_F(RequestBuilderTest, WriteJsonBodyParameter_UseTestJsonBody_GetExpectedValue) { diff --git a/Gems/AWSCore/Code/Tests/Framework/ServiceClientJobConfigTest.cpp b/Gems/AWSCore/Code/Tests/Framework/ServiceClientJobConfigTest.cpp index 9bc43482cd..3907b097db 100644 --- a/Gems/AWSCore/Code/Tests/Framework/ServiceClientJobConfigTest.cpp +++ b/Gems/AWSCore/Code/Tests/Framework/ServiceClientJobConfigTest.cpp @@ -6,8 +6,6 @@ * */ -#include - #include #include #include @@ -19,17 +17,21 @@ static constexpr const char TEST_EXPECTED_FEATURE_SERVICE_URL[] = "https://featu static constexpr const char TEST_EXPECTED_CUSTOM_SERVICE_URL[] = "https://custom.service.com"; class ServiceClientJobConfigTest - : public UnitTest::ScopedAllocatorSetupFixture + : public AWSCoreFixture , AWSResourceMappingRequestBus::Handler { void SetUp() override { + AWSCoreFixture::SetUpFixture(); + AWSResourceMappingRequestBus::Handler::BusConnect(); } void TearDown() override { AWSResourceMappingRequestBus::Handler::BusDisconnect(); + + AWSCoreFixture::TearDownFixture(); } // AWSResourceMappingRequestBus interface implementation diff --git a/Gems/AWSCore/Code/Tests/Framework/ServiceJobUtilTest.cpp b/Gems/AWSCore/Code/Tests/Framework/ServiceJobUtilTest.cpp index 230fd304d2..c162a0fa13 100644 --- a/Gems/AWSCore/Code/Tests/Framework/ServiceJobUtilTest.cpp +++ b/Gems/AWSCore/Code/Tests/Framework/ServiceJobUtilTest.cpp @@ -6,12 +6,10 @@ * */ -#include - #include #include -using ServiceJobUtilTest = UnitTest::ScopedAllocatorSetupFixture; +using ServiceJobUtilTest = AWSCoreFixture; TEST_F(ServiceJobUtilTest, DetermineRegionFromRequestUrl_DefaultUrlFormat_Success) { diff --git a/Gems/AWSCore/Code/Tests/Framework/ServiceRequestJobTest.cpp b/Gems/AWSCore/Code/Tests/Framework/ServiceRequestJobTest.cpp index bf4f6dd4fd..23fa78cc23 100644 --- a/Gems/AWSCore/Code/Tests/Framework/ServiceRequestJobTest.cpp +++ b/Gems/AWSCore/Code/Tests/Framework/ServiceRequestJobTest.cpp @@ -6,15 +6,13 @@ * */ -#include - #include #include #include using namespace AWSCore; -using ServiceRequestJobTest = UnitTest::ScopedAllocatorSetupFixture; +using ServiceRequestJobTest = AWSCoreFixture; #define TEST_SERVICE_REQUEST(SERVICE_NAME, METHOD, PATH) \ static const char* Path() { return PATH; } \ diff --git a/Gems/AWSCore/Code/Tests/Framework/UtilTest.cpp b/Gems/AWSCore/Code/Tests/Framework/UtilTest.cpp index 5a1589c073..a0320a894c 100644 --- a/Gems/AWSCore/Code/Tests/Framework/UtilTest.cpp +++ b/Gems/AWSCore/Code/Tests/Framework/UtilTest.cpp @@ -6,14 +6,12 @@ * */ -#include - #include #include using namespace AWSCoreTestingUtils; -using FrameworkUtilTest = UnitTest::ScopedAllocatorSetupFixture; +using FrameworkUtilTest = AWSCoreFixture; TEST_F(FrameworkUtilTest, ToAwsString_UseAzString_GetExpectedAwsString) { diff --git a/Gems/AWSCore/Code/Tests/ResourceMapping/AWSResourceMappingManagerTest.cpp b/Gems/AWSCore/Code/Tests/ResourceMapping/AWSResourceMappingManagerTest.cpp index fd37e6e228..6c798dbeca 100644 --- a/Gems/AWSCore/Code/Tests/ResourceMapping/AWSResourceMappingManagerTest.cpp +++ b/Gems/AWSCore/Code/Tests/ResourceMapping/AWSResourceMappingManagerTest.cpp @@ -8,7 +8,6 @@ #include #include -#include #include #include @@ -112,31 +111,21 @@ public: m_resourceMappingManager = AZStd::make_unique(); } - void CreateTestConfigFile(const AZStd::string& configContent) - { - m_normalizedConfigFilePath = AZStd::string::format("%s/%s", m_normalizedConfigFolderPath.c_str(), "test_aws_resource_mappings.json"); - AzFramework::StringFunc::Path::Normalize(m_normalizedConfigFilePath); - CreateTestFile(m_normalizedConfigFilePath, configContent); - } - void SetUp() override { AWSCoreFixture::SetUpFixture(false); - m_normalizedSourceProjectFolder = AZStd::string::format("%s/%s%s/", AZ::Test::GetCurrentExecutablePath().c_str(), - "AWSResourceMappingManager", AZ::Uuid::CreateRandom().ToString(false, false).c_str()); - AzFramework::StringFunc::Path::Normalize(m_normalizedSourceProjectFolder); - m_normalizedConfigFolderPath = AZStd::string::format("%s/%s/", - m_normalizedSourceProjectFolder.c_str(), AWSCore::AWSCoreConfiguration::AWSCoreResourceMappingConfigFolderName); - AzFramework::StringFunc::Path::Normalize(m_normalizedConfigFolderPath); + m_configFilePath = (GetTestTempDirectoryPath() / + AWSCore::AWSCoreConfiguration::AWSCoreResourceMappingConfigFolderName / + "test_aws_resource_mappings.json").LexicallyNormal(); AWSCoreInternalRequestBus::Handler::BusConnect(); } void TearDown() override { AWSCoreInternalRequestBus::Handler::BusDisconnect(); - RemoveTestFile(); - RemoveTestDirectory(); + RemoveFile(m_configFilePath.Native()); + m_configFilePath.clear(); m_reloadConfigurationCounter = 0; m_resourceMappingManager->DeactivateManager(); @@ -147,57 +136,17 @@ public: // AWSCoreInternalRequestBus interface implementation AZStd::string GetProfileName() const override { return ""; } - AZStd::string GetResourceMappingConfigFilePath() const override { return m_normalizedConfigFilePath; } + AZStd::string GetResourceMappingConfigFilePath() const override { return m_configFilePath.Native(); } void ReloadConfiguration() override { m_reloadConfigurationCounter++; } AZStd::unique_ptr m_resourceMappingManager; AZ::u8 m_reloadConfigurationCounter; - -private: - AZStd::string m_normalizedSourceProjectFolder; - AZStd::string m_normalizedConfigFolderPath; - AZStd::string m_normalizedConfigFilePath; - - void CreateTestFile(const AZStd::string& filePath, const AZStd::string& fileContent) - { - AZ::IO::SystemFile file; - if (!file.Open(filePath.c_str(), - AZ::IO::SystemFile::OpenMode::SF_OPEN_CREATE | AZ::IO::SystemFile::SF_OPEN_CREATE_PATH | AZ::IO::SystemFile::SF_OPEN_WRITE_ONLY)) - { - AZ_Assert(false, "Failed to open test file"); - } - - if (file.Write(fileContent.c_str(), fileContent.size()) != fileContent.size()) - { - AZ_Assert(false, "Failed to write test file"); - } - file.Close(); - } - - void RemoveTestFile() - { - if (!m_normalizedConfigFilePath.empty()) - { - AZ_Assert(AZ::IO::SystemFile::Delete(m_normalizedConfigFilePath.c_str()), - "Failed to delete test config file at %s", m_normalizedConfigFilePath.c_str()); - } - } - - void RemoveTestDirectory() - { - if (!m_normalizedConfigFilePath.empty()) - { - AZ_Assert(AZ::IO::SystemFile::DeleteDir(m_normalizedConfigFolderPath.c_str()), - "Failed to delete test config folder at %s", m_normalizedConfigFolderPath.c_str()); - AZ_Assert(AZ::IO::SystemFile::DeleteDir(m_normalizedSourceProjectFolder.c_str()), - "Failed to delete test folder at %s", m_normalizedSourceProjectFolder.c_str()); - } - } + AZ::IO::Path m_configFilePath; }; TEST_F(AWSResourceMappingManagerTest, ActivateManager_ParseInvalidConfigFile_ConfigDataIsEmpty) { - CreateTestConfigFile(TEST_INVALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_INVALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualAccountId; @@ -212,7 +161,7 @@ TEST_F(AWSResourceMappingManagerTest, ActivateManager_ParseInvalidConfigFile_Con TEST_F(AWSResourceMappingManagerTest, ActivateManager_ParseValidConfigFile_ConfigDataIsNotEmpty) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualAccountId; @@ -227,7 +176,7 @@ TEST_F(AWSResourceMappingManagerTest, ActivateManager_ParseValidConfigFile_Confi TEST_F(AWSResourceMappingManagerTest, ActivateManager_ParseTemplateConfigFile_ConfigDataIsNotEmpty) { - CreateTestConfigFile(TEST_TEMPLATE_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_TEMPLATE_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualAccountId; @@ -242,7 +191,7 @@ TEST_F(AWSResourceMappingManagerTest, ActivateManager_ParseTemplateConfigFile_Co TEST_F(AWSResourceMappingManagerTest, ActivateManager_ParseValidConfigFile_ConfigDataIsNotEmptyWithMultithreadCalls) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); constexpr int testThreadNumber = 10; @@ -267,7 +216,7 @@ TEST_F(AWSResourceMappingManagerTest, ActivateManager_ParseValidConfigFile_Confi TEST_F(AWSResourceMappingManagerTest, ActivateManager_ParseValidConfigFile_GlobalAccountIdEmpty) { - CreateTestConfigFile(TEST_VALID_EMPTY_ACCOUNTID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_EMPTY_ACCOUNTID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualAccountId; @@ -282,7 +231,7 @@ TEST_F(AWSResourceMappingManagerTest, ActivateManager_ParseValidConfigFile_Globa TEST_F(AWSResourceMappingManagerTest, DeactivateManager_AfterActivatingWithValidConfigFile_ConfigDataGetCleanedUp) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualAccountId; @@ -302,7 +251,7 @@ TEST_F(AWSResourceMappingManagerTest, DeactivateManager_AfterActivatingWithValid TEST_F(AWSResourceMappingManagerTest, GetDefaultAccountId_AfterParsingValidConfigFile_GetExpectedDefaultAccountId) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualAccountId; @@ -313,7 +262,7 @@ TEST_F(AWSResourceMappingManagerTest, GetDefaultAccountId_AfterParsingValidConfi TEST_F(AWSResourceMappingManagerTest, GetDefaultRegion_AfterParsingValidConfigFile_GetExpectedDefaultRegion) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualRegion; @@ -324,7 +273,7 @@ TEST_F(AWSResourceMappingManagerTest, GetDefaultRegion_AfterParsingValidConfigFi TEST_F(AWSResourceMappingManagerTest, GetResourceAccountId_AfterParsingValidConfigFile_GetExpectedAccountId) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualAccountId; @@ -341,7 +290,7 @@ TEST_F(AWSResourceMappingManagerTest, GetResourceAccountId_AfterParsingValidConf TEST_F(AWSResourceMappingManagerTest, GetResourceAccountId_QueryNonexistResourceMappingKeyName_GetEmptyAccountId) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualAccountId; @@ -352,7 +301,7 @@ TEST_F(AWSResourceMappingManagerTest, GetResourceAccountId_QueryNonexistResource TEST_F(AWSResourceMappingManagerTest, GetResourceNameId_AfterParsingValidConfigFile_GetExpectedNameId) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualNameId; @@ -369,7 +318,7 @@ TEST_F(AWSResourceMappingManagerTest, GetResourceNameId_AfterParsingValidConfigF TEST_F(AWSResourceMappingManagerTest, GetResourceNameId_QueryNonexistResourceMappingKeyName_GetEmptyNameId) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualNameId; @@ -380,7 +329,7 @@ TEST_F(AWSResourceMappingManagerTest, GetResourceNameId_QueryNonexistResourceMap TEST_F(AWSResourceMappingManagerTest, GetResourceRegion_AfterParsingValidConfigFile_GetExpectedRegion) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualRegion; @@ -397,7 +346,7 @@ TEST_F(AWSResourceMappingManagerTest, GetResourceRegion_AfterParsingValidConfigF TEST_F(AWSResourceMappingManagerTest, GetResourceRegion_QueryNonexistResourceMappingKeyName_GetEmptyRegion) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualRegion; @@ -408,7 +357,7 @@ TEST_F(AWSResourceMappingManagerTest, GetResourceRegion_QueryNonexistResourceMap TEST_F(AWSResourceMappingManagerTest, GetResourceType_AfterParsingValidConfigFile_GetExpectedType) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualType; @@ -425,7 +374,7 @@ TEST_F(AWSResourceMappingManagerTest, GetResourceType_AfterParsingValidConfigFil TEST_F(AWSResourceMappingManagerTest, GetResourceType_QueryNonexistResourceMappingKeyName_GetEmptyType) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualType; @@ -436,7 +385,7 @@ TEST_F(AWSResourceMappingManagerTest, GetResourceType_QueryNonexistResourceMappi TEST_F(AWSResourceMappingManagerTest, GetServiceUrl_PassingEmptyServiceName_GetEmptyUrl) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualServiceUrl; @@ -447,7 +396,7 @@ TEST_F(AWSResourceMappingManagerTest, GetServiceUrl_PassingEmptyServiceName_GetE TEST_F(AWSResourceMappingManagerTest, GetServiceUrl_PassingEmptyRESTApiIdAndStage_GetEmptyUrl) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualServiceUrl; @@ -458,7 +407,7 @@ TEST_F(AWSResourceMappingManagerTest, GetServiceUrl_PassingEmptyRESTApiIdAndStag TEST_F(AWSResourceMappingManagerTest, GetServiceUrl_RESTApiIdAndStageHaveInconsistentRegion_GetEmptyUrl) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualServiceUrl; @@ -469,7 +418,7 @@ TEST_F(AWSResourceMappingManagerTest, GetServiceUrl_RESTApiIdAndStageHaveInconsi TEST_F(AWSResourceMappingManagerTest, ReloadConfigFile_ParseValidConfigFileAfterParsingInvalid_ConfigDataGetParsed) { - CreateTestConfigFile(TEST_INVALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_INVALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ActivateManager(); AZStd::string actualAccountId; @@ -481,7 +430,7 @@ TEST_F(AWSResourceMappingManagerTest, ReloadConfigFile_ParseValidConfigFileAfter EXPECT_TRUE(actualRegion.empty()); EXPECT_TRUE(m_resourceMappingManager->GetStatus() == AWSResourceMappingManager::Status::Error); - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ReloadConfigFile(); AWSResourceMappingRequestBus::BroadcastResult(actualAccountId, &AWSResourceMappingRequests::GetDefaultAccountId); @@ -494,7 +443,7 @@ TEST_F(AWSResourceMappingManagerTest, ReloadConfigFile_ParseValidConfigFileAfter TEST_F(AWSResourceMappingManagerTest, ReloadConfigFile_ReloadConfigFileNameAndParseValidConfigFile_ConfigDataGetParsed) { - CreateTestConfigFile(TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); + CreateFile(m_configFilePath.Native(), TEST_VALID_RESOURCE_MAPPING_CONFIG_FILE); m_resourceMappingManager->ReloadConfigFile(true); EXPECT_EQ(m_reloadConfigurationCounter, 1); @@ -505,6 +454,7 @@ TEST_F(AWSResourceMappingManagerTest, ReloadConfigFile_ReloadConfigFileNameAndPa TEST_F(AWSResourceMappingManagerTest, ReloadConfigFile_MissingSetRegFile_ConfigDataIsNotParsed) { + m_configFilePath.clear(); m_resourceMappingManager->ReloadConfigFile(true); EXPECT_EQ(m_reloadConfigurationCounter, 1); diff --git a/Gems/AWSCore/Code/Tests/ResourceMapping/AWSResourceMappingUtilsTest.cpp b/Gems/AWSCore/Code/Tests/ResourceMapping/AWSResourceMappingUtilsTest.cpp index f1a90aa2ae..f5215f89c2 100644 --- a/Gems/AWSCore/Code/Tests/ResourceMapping/AWSResourceMappingUtilsTest.cpp +++ b/Gems/AWSCore/Code/Tests/ResourceMapping/AWSResourceMappingUtilsTest.cpp @@ -6,8 +6,6 @@ * */ -#include - #include #include @@ -18,7 +16,7 @@ static constexpr const char TEST_VALID_RESTAPI_REGION[] = "us-west-2"; static constexpr const char TEST_VALID_RESTAPI_CHINA_REGION[] = "cn-north-1"; static constexpr const char TEST_VALID_RESTAPI_STAGE[] = "prod"; -using AWSResourceMappingUtilsTest = UnitTest::ScopedAllocatorSetupFixture; +using AWSResourceMappingUtilsTest = AWSCoreFixture; TEST_F(AWSResourceMappingUtilsTest, FormatRESTApiUrl_PassingValidArguments_ReturnExpectedResult) { diff --git a/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorDynamoDBTest.cpp b/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorDynamoDBTest.cpp index e42e270bc2..bd66ccb309 100644 --- a/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorDynamoDBTest.cpp +++ b/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorDynamoDBTest.cpp @@ -7,7 +7,6 @@ */ #include -#include #include #include @@ -32,7 +31,7 @@ public: MOCK_METHOD1(OnGetItemError, void(const AZStd::string&)); }; -using AWSScriptBehaviorDynamoDBTest = UnitTest::ScopedAllocatorSetupFixture; +using AWSScriptBehaviorDynamoDBTest = AWSCoreFixture; TEST_F(AWSScriptBehaviorDynamoDBTest, GetItemRaw_CallWithEmptyTableName_InvokeOnError) { diff --git a/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorLambdaTest.cpp b/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorLambdaTest.cpp index 42ccd6eddc..0b2dc8e30c 100644 --- a/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorLambdaTest.cpp +++ b/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorLambdaTest.cpp @@ -7,14 +7,14 @@ */ #include -#include #include #include using namespace AWSCore; -class AWSScriptBehaviorLambdaNotificationBusHandlerMock : public AWSScriptBehaviorLambdaNotificationBusHandler +class AWSScriptBehaviorLambdaNotificationBusHandlerMock + : public AWSScriptBehaviorLambdaNotificationBusHandler { public: AWSScriptBehaviorLambdaNotificationBusHandlerMock() @@ -31,7 +31,7 @@ public: MOCK_METHOD1(OnInvokeError, void(const AZStd::string&)); }; -using AWSScriptBehaviorLambdaTest = UnitTest::ScopedAllocatorSetupFixture; +using AWSScriptBehaviorLambdaTest = AWSCoreFixture; TEST_F(AWSScriptBehaviorLambdaTest, InvokeRaw_CallWithEmptyFunctionName_InvokeOnError) { diff --git a/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorS3Test.cpp b/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorS3Test.cpp index 34a0166e32..da754a0de6 100644 --- a/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorS3Test.cpp +++ b/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorS3Test.cpp @@ -145,17 +145,18 @@ TEST_F(AWSScriptBehaviorS3Test, GetObjectRaw_CallWithOutfileDirectoryNoExist_Inv AWSScriptBehaviorS3::GetObjectRaw("dummyBucket", "dummyObject", "dummyRegion", dummyDirectory); } +#if defined(AZ_DEBUG_BUILD) || defined(AZ_PROFILE_BUILD) +// The preparation step for this test case does not work in release mode TEST_F(AWSScriptBehaviorS3Test, GetObjectRaw_CallWithOutfileIsReadOnly_InvokeOnError) { AWSScriptBehaviorS3NotificationBusHandlerMock s3HandlerMock; EXPECT_CALL(s3HandlerMock, OnGetObjectError(::testing::_)).Times(1); - AZStd::string randomTestFile = AZStd::string::format("%s/test%s.txt", - AZ::Test::GetCurrentExecutablePath().c_str(), AZ::Uuid::CreateRandom().ToString(false, false).c_str()); - AzFramework::StringFunc::Path::Normalize(randomTestFile); - CreateReadOnlyTestFile(randomTestFile); - AWSScriptBehaviorS3::GetObjectRaw("dummyBucket", "dummyObject", "dummyRegion", randomTestFile); - RemoveReadOnlyTestFile(randomTestFile); + AZ::IO::Path randomTestFilePath = (GetTestTempDirectoryPath() / "random_test.txt").LexicallyNormal(); + CreateReadOnlyTestFile(randomTestFilePath.Native()); + AWSScriptBehaviorS3::GetObjectRaw("dummyBucket", "dummyObject", "dummyRegion", randomTestFilePath.Native()); + RemoveReadOnlyTestFile(randomTestFilePath.Native()); } +#endif TEST_F(AWSScriptBehaviorS3Test, GetObject_NoBucketNameInResourceMappingFound_InvokeOnError) { diff --git a/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorsComponentTest.cpp b/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorsComponentTest.cpp index caba8b5ae7..387aa932f6 100644 --- a/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorsComponentTest.cpp +++ b/Gems/AWSCore/Code/Tests/ScriptCanvas/AWSScriptBehaviorsComponentTest.cpp @@ -9,7 +9,6 @@ #include #include #include -#include #include #include @@ -17,11 +16,12 @@ using namespace AWSCore; class AWSScriptBehaviorsComponentTest - : public UnitTest::ScopedAllocatorSetupFixture + : public AWSCoreFixture { public: void SetUp() override { + AWSCoreFixture::SetUpFixture(); m_serializeContext = AZStd::make_unique(); m_serializeContext->CreateEditContext(); m_behaviorContext = AZStd::make_unique(); @@ -39,6 +39,7 @@ public: m_componentDescriptor.reset(); m_behaviorContext.reset(); m_serializeContext.reset(); + AWSCoreFixture::TearDownFixture(); } protected: diff --git a/Gems/AWSCore/Code/Tests/TestFramework/AWSCoreFixture.h b/Gems/AWSCore/Code/Tests/TestFramework/AWSCoreFixture.h index 65e609b490..6ea5593d0e 100644 --- a/Gems/AWSCore/Code/Tests/TestFramework/AWSCoreFixture.h +++ b/Gems/AWSCore/Code/Tests/TestFramework/AWSCoreFixture.h @@ -17,6 +17,8 @@ #include #include +#include + namespace AWSCoreTestingUtils { static const AZStd::string STRING_VALUE{"s"}; @@ -135,6 +137,8 @@ public: { m_app = AZStd::make_unique(); } + + AWSNativeSDKInit::InitializationManager::InitAwsApi(); } void TearDown() override @@ -144,6 +148,8 @@ public: void TearDownFixture(bool mockSettingsRegistry = true) { + AWSNativeSDKInit::InitializationManager::Shutdown(); + if (mockSettingsRegistry) { AZ::SettingsRegistry::Unregister(m_settingsRegistry.get()); @@ -171,7 +177,7 @@ public: bool CreateFile(const AZStd::string& filePath, const AZStd::string& content) { AZ::IO::HandleType fileHandle; - if (!m_localFileIO->Open(filePath.c_str(), AZ::IO::OpenMode::ModeWrite | AZ::IO::OpenMode::ModeText, fileHandle)) + if (!m_localFileIO->Open(filePath.c_str(), AZ::IO::OpenMode::ModeCreatePath | AZ::IO::OpenMode::ModeWrite | AZ::IO::OpenMode::ModeText, fileHandle)) { return false; } @@ -197,6 +203,13 @@ private: AZ::IO::FileIOBase* m_otherFileIO = nullptr; protected: + AZ::IO::Path GetTestTempDirectoryPath() + { + AZ::IO::Path testTempDirPath{ m_testTempDirectory.GetDirectory() }; + return testTempDirPath; + } + + AZ::Test::ScopedAutoTempDirectory m_testTempDirectory; AZStd::unique_ptr m_settingsRegistry; AZStd::unique_ptr m_app; }; diff --git a/cmake/3rdParty/Platform/Windows/BuiltInPackages_windows.cmake b/cmake/3rdParty/Platform/Windows/BuiltInPackages_windows.cmake index 90d44a3658..5441bcd76f 100644 --- a/cmake/3rdParty/Platform/Windows/BuiltInPackages_windows.cmake +++ b/cmake/3rdParty/Platform/Windows/BuiltInPackages_windows.cmake @@ -26,7 +26,7 @@ ly_associate_package(PACKAGE_NAME DirectXShaderCompilerDxc-1.6.2104-o3de-rev3-wi ly_associate_package(PACKAGE_NAME SPIRVCross-2021.04.29-rev1-windows TARGETS SPIRVCross PACKAGE_HASH 7d601ea9d625b1d509d38bd132a1f433d7e895b16adab76bac6103567a7a6817) ly_associate_package(PACKAGE_NAME tiff-4.2.0.15-rev3-windows TARGETS TIFF PACKAGE_HASH c6000a906e6d2a0816b652e93dfbeab41c9ed73cdd5a613acd53e553d0510b60) ly_associate_package(PACKAGE_NAME freetype-2.10.4.16-windows TARGETS freetype PACKAGE_HASH 9809255f1c59b07875097aa8d8c6c21c97c47a31fb35e30f2bb93188e99a85ff) -ly_associate_package(PACKAGE_NAME AWSNativeSDK-1.7.167-rev4-windows TARGETS AWSNativeSDK PACKAGE_HASH a900e80f7259e43aed5c847afee2599ada37f29db70505481397675bcbb6c76c) +ly_associate_package(PACKAGE_NAME AWSNativeSDK-1.9.50-rev2-windows TARGETS AWSNativeSDK PACKAGE_HASH 047de23fa57d33196666c22f45afc9c628bae354a6c39d774cbeee8054b2eb53) ly_associate_package(PACKAGE_NAME Lua-5.3.5-rev5-windows TARGETS Lua PACKAGE_HASH 136faccf1f73891e3fa3b95f908523187792e56f5b92c63c6a6d7e72d1158d40) ly_associate_package(PACKAGE_NAME PhysX-4.1.2.29882248-rev5-windows TARGETS PhysX PACKAGE_HASH 4e31a3e1f5bf3952d8af8e28d1a29f04167995a6362fc3a7c20c25f74bf01e23) ly_associate_package(PACKAGE_NAME mcpp-2.7.2_az.2-rev1-windows TARGETS mcpp PACKAGE_HASH 794789aba639bfe2f4e8fcb4424d679933dd6290e523084aa0a4e287ac44acb2)