compute-runtime/opencl/test/unit_test/global_environment.cpp

93 lines
2.3 KiB
C++

/*
* Copyright (C) 2018-2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "opencl/test/unit_test/global_environment.h"
#include "shared/source/helpers/hw_info.h"
#include "shared/source/os_interface/os_inc_base.h"
TestEnvironment::TestEnvironment() {
igcDebugVarStack.reserve(3);
fclDebugVarStack.reserve(3);
}
void TestEnvironment::SetUp() {
mockCompilerGuard.Enable();
fclPushDebugVars(fclDefaultDebugVars);
igcPushDebugVars(igcDefaultDebugVars);
if (libraryOS == nullptr) {
libraryOS = setAdapterInfo(&hwInfoDefaultDebugVars.platform,
&hwInfoDefaultDebugVars.gtSystemInfo,
hwInfoDefaultDebugVars.capabilityTable.gpuAddressSpace);
}
}
void TestEnvironment::TearDown() {
delete libraryFrontEnd;
delete libraryIGC;
if (libraryOS != nullptr) {
delete libraryOS;
libraryOS = nullptr;
}
mockCompilerGuard.Disable();
}
void TestEnvironment::fclPushDebugVars(
MockCompilerDebugVars &newDebugVars) {
fclDebugVarStack.push_back(newDebugVars);
NEO::setFclDebugVars(newDebugVars);
}
void TestEnvironment::fclPopDebugVars() {
fclDebugVarStack.pop_back();
if (fclDebugVarStack.empty()) {
NEO::clearFclDebugVars();
} else {
NEO::setFclDebugVars(fclDebugVarStack.back());
}
}
void TestEnvironment::igcPushDebugVars(
MockCompilerDebugVars &newDebugVars) {
igcDebugVarStack.push_back(newDebugVars);
NEO::setIgcDebugVars(newDebugVars);
}
void TestEnvironment::igcPopDebugVars() {
igcDebugVarStack.pop_back();
if (igcDebugVarStack.empty()) {
NEO::clearIgcDebugVars();
} else {
NEO::setIgcDebugVars(igcDebugVarStack.back());
}
}
void TestEnvironment::setDefaultDebugVars(
MockCompilerDebugVars &fclDefaults,
MockCompilerDebugVars &igcDefaults,
HardwareInfo &hwInfo) {
fclDefaultDebugVars = fclDefaults;
igcDefaultDebugVars = igcDefaults;
hwInfoDefaultDebugVars = hwInfo;
}
void TestEnvironment::setMockFileNames(
std::string &fclMockFile,
std::string &igcMockFile) {
this->fclMockFile = fclMockFile;
this->igcMockFile = igcMockFile;
}
std::string &TestEnvironment::fclGetMockFile() {
return this->fclMockFile;
}
std::string &TestEnvironment::igcGetMockFile() {
return this->igcMockFile;
}