/* * 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 #include #include #include #include class AWSGameLiftServerFixture : public UnitTest::ScopedAllocatorSetupFixture { public: AWSGameLiftServerFixture() {} virtual ~AWSGameLiftServerFixture() = default; void SetUp() override { AZ::AllocatorInstance::Create(); AZ::AllocatorInstance::Create(); AZ::JobManagerDesc jobManagerDesc; AZ::JobManagerThreadDesc threadDesc; m_jobManager.reset(aznew AZ::JobManager(jobManagerDesc)); m_jobCancelGroup.reset(aznew AZ::JobCancelGroup()); jobManagerDesc.m_workerThreads.push_back(threadDesc); jobManagerDesc.m_workerThreads.push_back(threadDesc); jobManagerDesc.m_workerThreads.push_back(threadDesc); m_jobContext.reset(aznew AZ::JobContext(*m_jobManager, *m_jobCancelGroup)); AZ::JobContext::SetGlobalContext(m_jobContext.get()); } void TearDown() override { AZ::JobContext::SetGlobalContext(nullptr); m_jobContext.reset(); m_jobCancelGroup.reset(); m_jobManager.reset(); AZ::AllocatorInstance::Destroy(); AZ::AllocatorInstance::Destroy(); } AZStd::unique_ptr m_jobContext; AZStd::unique_ptr m_jobCancelGroup; AZStd::unique_ptr m_jobManager; };