AWSGameLiftClientFixture.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
  3. * its licensors.
  4. *
  5. * For complete copyright and license terms please see the LICENSE at the root of this
  6. * distribution (the "License"). All use of this software is governed by the License,
  7. * or, if provided, by the license below or the license accompanying this file. Do not
  8. * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
  9. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. *
  11. */
  12. #pragma once
  13. #include <AWSNativeSDKInit/AWSNativeSDKInit.h>
  14. #include <AzCore/Jobs/JobManager.h>
  15. #include <AzCore/Jobs/JobManagerBus.h>
  16. #include <AzCore/Jobs/JobContext.h>
  17. #include <AzCore/Memory/PoolAllocator.h>
  18. #include <AzCore/UnitTest/TestTypes.h>
  19. class AWSGameLiftClientFixture
  20. : public UnitTest::ScopedAllocatorSetupFixture
  21. {
  22. public:
  23. AWSGameLiftClientFixture() {}
  24. virtual ~AWSGameLiftClientFixture() = default;
  25. void SetUp() override
  26. {
  27. AZ::AllocatorInstance<AZ::ThreadPoolAllocator>::Create();
  28. AZ::AllocatorInstance<AZ::PoolAllocator>::Create();
  29. AZ::JobManagerDesc jobManagerDesc;
  30. AZ::JobManagerThreadDesc threadDesc;
  31. m_jobManager.reset(aznew AZ::JobManager(jobManagerDesc));
  32. m_jobCancelGroup.reset(aznew AZ::JobCancelGroup());
  33. jobManagerDesc.m_workerThreads.push_back(threadDesc);
  34. jobManagerDesc.m_workerThreads.push_back(threadDesc);
  35. jobManagerDesc.m_workerThreads.push_back(threadDesc);
  36. m_jobContext.reset(aznew AZ::JobContext(*m_jobManager, *m_jobCancelGroup));
  37. AZ::JobContext::SetGlobalContext(m_jobContext.get());
  38. AWSNativeSDKInit::InitializationManager::InitAwsApi();
  39. }
  40. void TearDown() override
  41. {
  42. AWSNativeSDKInit::InitializationManager::Shutdown();
  43. AZ::JobContext::SetGlobalContext(nullptr);
  44. m_jobContext.reset();
  45. m_jobCancelGroup.reset();
  46. m_jobManager.reset();
  47. AZ::AllocatorInstance<AZ::PoolAllocator>::Destroy();
  48. AZ::AllocatorInstance<AZ::ThreadPoolAllocator>::Destroy();
  49. }
  50. AZStd::unique_ptr<AZ::JobContext> m_jobContext;
  51. AZStd::unique_ptr<AZ::JobCancelGroup> m_jobCancelGroup;
  52. AZStd::unique_ptr<AZ::JobManager> m_jobManager;
  53. };