Silence aws logging for unit test and have a new AWSNativeSDK as entry point for test env (#6865)

* Silence aws logging for unit test
* Create a new AWSNativeSDK entry point for test environment only
* Update naming for target and file
This commit is contained in:
Vincent Liu
2022-01-19 12:11:39 -08:00
committed by GitHub
parent 57394bc81d
commit 5cac67bfad
12 changed files with 130 additions and 18 deletions
@@ -25,6 +25,24 @@ ly_add_target(
AZ::AzCore
)
ly_add_target(
NAME AWSNativeSDKTestLibs STATIC
NAMESPACE AZ
FILES_CMAKE
aws_native_sdk_test_files.cmake
INCLUDE_DIRECTORIES
PUBLIC
include
tests/libs
PRIVATE
source
BUILD_DEPENDENCIES
PRIVATE
3rdParty::AWSNativeSDK::Core
AZ::AzCore
AZ::AzTest
)
################################################################################
# Tests
################################################################################
@@ -0,0 +1,12 @@
#
# Copyright (c) Contributors to the Open 3D Engine Project.
# For complete copyright and license terms please see the LICENSE at the root of this distribution.
#
# SPDX-License-Identifier: Apache-2.0 OR MIT
#
#
set(FILES
tests/libs/AWSNativeSDKTestManager.cpp
tests/libs/AWSNativeSDKTestManager.h
)
@@ -89,5 +89,4 @@ namespace AWSNativeSDKInit
Platform::CustomizeShutdown();
#endif // #if defined(PLATFORM_SUPPORTS_AWS_NATIVE_SDK)
}
}
@@ -0,0 +1,45 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include <AWSNativeSDKTestManager.h>
#include <AzCore/Module/Environment.h>
#include <AzTest/Utils.h>
#include <AWSNativeSDKInit/AWSLogSystemInterface.h>
#include <aws/core/Aws.h>
#include <aws/core/utils/logging/AWSLogging.h>
namespace AWSNativeSDKTestLibs
{
AZ::EnvironmentVariable<AWSNativeSDKTestManager> AWSNativeSDKTestManager::s_sdkManager = nullptr;
AWSNativeSDKTestManager::AWSNativeSDKTestManager()
{
AZ::Test::SetEnv("AWS_DEFAULT_REGION", "us-east-1", 1);
m_awsSDKOptions.memoryManagementOptions.memoryManager = &m_memoryManager;
Aws::InitAPI(m_awsSDKOptions);
}
AWSNativeSDKTestManager::~AWSNativeSDKTestManager()
{
Aws::ShutdownAPI(m_awsSDKOptions);
AZ::Test::UnsetEnv("AWS_DEFAULT_REGION");
}
void AWSNativeSDKTestManager::Init()
{
s_sdkManager = AZ::Environment::CreateVariable<AWSNativeSDKTestManager>(AWSNativeSDKTestManager::SdkManagerTag);
}
void AWSNativeSDKTestManager::Shutdown()
{
s_sdkManager = nullptr;
}
}
@@ -0,0 +1,39 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <AzCore/Module/Environment.h>
#include <AzCore/PlatformIncl.h>
#include <AWSNativeSDKInit/AWSMemoryInterface.h>
#include <aws/core/Aws.h>
namespace AWSNativeSDKTestLibs
{
// Entry point for AWSNativeSDK's initialization and shutdown for test environment
// Use an AZ::Environment variable to enforce only one init and shutdown
class AWSNativeSDKTestManager
{
public:
static constexpr const char SdkManagerTag[] = "TestAWSSDKManager";
AWSNativeSDKTestManager();
~AWSNativeSDKTestManager();
static void Init();
static void Shutdown();
private:
static AZ::EnvironmentVariable<AWSNativeSDKTestManager> s_sdkManager;
AWSNativeSDKInit::MemoryManager m_memoryManager;
Aws::SDKOptions m_awsSDKOptions;
};
}