1 /* 2 * Copyright (C) 2020-2021 Intel Corporation 3 * 4 * SPDX-License-Identifier: MIT 5 * 6 */ 7 8 #include "shared/source/execution_environment/root_device_environment.h" 9 #include "shared/source/os_interface/device_factory.h" 10 #include "shared/source/os_interface/os_interface.h" 11 #include "shared/test/common/test_macros/test.h" 12 13 #include "level_zero/core/test/unit_tests/fixtures/device_fixture.h" 14 #include "level_zero/tools/source/sysman/sysman.h" 15 #include "level_zero/tools/test/unit_tests/sources/sysman/mocks/mock_sysman_env_vars.h" 16 17 #include "sysman/windows/os_sysman_imp.h" 18 19 extern bool sysmanUltsEnable; 20 21 using ::testing::_; 22 using namespace NEO; 23 24 namespace L0 { 25 namespace ult { 26 27 class PublicWddmSysmanImp : public L0::WddmSysmanImp { 28 public: 29 using WddmSysmanImp::pKmdSysManager; 30 }; 31 32 class SysmanDeviceFixture : public DeviceFixture, public SysmanEnabledFixture { 33 public: SetUp()34 void SetUp() override { 35 if (!sysmanUltsEnable) { 36 GTEST_SKIP(); 37 } 38 DeviceFixture::SetUp(); 39 neoDevice->getExecutionEnvironment()->rootDeviceEnvironments[device->getRootDeviceIndex()]->osInterface = std::make_unique<NEO::OSInterface>(); 40 41 SysmanEnabledFixture::SetUp(); 42 device->setSysmanHandle(L0::SysmanDeviceHandleContext::init(device->toHandle())); 43 pSysmanDevice = device->getSysmanHandle(); 44 pSysmanDeviceImp = static_cast<SysmanDeviceImp *>(pSysmanDevice); 45 pOsSysman = pSysmanDeviceImp->pOsSysman; 46 pWddmSysmanImp = static_cast<PublicWddmSysmanImp *>(pOsSysman); 47 } 48 TearDown()49 void TearDown() override { 50 if (!sysmanUltsEnable) { 51 GTEST_SKIP(); 52 } 53 SysmanEnabledFixture::TearDown(); 54 DeviceFixture::TearDown(); 55 } 56 57 SysmanDevice *pSysmanDevice = nullptr; 58 SysmanDeviceImp *pSysmanDeviceImp = nullptr; 59 OsSysman *pOsSysman = nullptr; 60 PublicWddmSysmanImp *pWddmSysmanImp = nullptr; 61 }; 62 63 } // namespace ult 64 } // namespace L0 65