mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-23 11:42:31 +08:00
fix: add warning when IGC_* env vars are set
Related-To: NEO-12721 Signed-off-by: Aleksandra Nizio <aleksandra.nizio@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
0bca8782c2
commit
ff00896801
@@ -391,7 +391,7 @@ TEST(ClCacheDefaultConfigLinuxTest, GivenNeoCachePersistentSetToZeroWhenGetDefau
|
||||
|
||||
TEST(ClCacheDefaultConfigLinuxTest, GivenIgcEnvVarSetOrUnsetThenCacheConfigIsEnabledOrDisabledAsExpected) {
|
||||
DebugManagerStateRestore restorer;
|
||||
debugManager.flags.PrintDebugMessages.set(true);
|
||||
debugManager.flags.PrintDebugMessages.set(false);
|
||||
|
||||
std::unordered_map<std::string, std::string> mockableEnvs;
|
||||
mockableEnvs["NEO_CACHE_PERSISTENT"] = "1";
|
||||
@@ -423,15 +423,9 @@ TEST(ClCacheDefaultConfigLinuxTest, GivenIgcEnvVarSetOrUnsetThenCacheConfigIsEna
|
||||
VariableBackup<std::unordered_map<std::string, std::string> *> mockableEnvValuesBackup(&NEO::IoFunctions::mockableEnvValues, &mockableEnvs);
|
||||
VariableBackup<decltype(NEO::SysCalls::sysCallsStat)> statBackup(&NEO::SysCalls::sysCallsStat, statMock);
|
||||
|
||||
StreamCapture capture;
|
||||
capture.captureStdout();
|
||||
|
||||
auto cacheConfig = NEO::getDefaultCompilerCacheConfig();
|
||||
std::string output = capture.getCapturedStdout();
|
||||
|
||||
EXPECT_TRUE(cacheConfig.enabled);
|
||||
EXPECT_EQ(cacheConfig.cacheDir, "ult/directory/");
|
||||
EXPECT_STREQ(output.c_str(), "NEO_CACHE_PERSISTENT is enabled. Cache is located in: ult/directory/\n\n");
|
||||
|
||||
mockableEnvs["IGC_DEBUG"] = "1";
|
||||
environVec = buildEnviron(mockableEnvs, envStorage);
|
||||
@@ -442,14 +436,57 @@ TEST(ClCacheDefaultConfigLinuxTest, GivenIgcEnvVarSetOrUnsetThenCacheConfigIsEna
|
||||
mockableEnvs.erase("IGC_DEBUG");
|
||||
environVec = buildEnviron(mockableEnvs, envStorage);
|
||||
NEO::ULT::setMockEnviron(environVec.data());
|
||||
capture.captureStdout();
|
||||
cacheConfig = NEO::getDefaultCompilerCacheConfig();
|
||||
output = capture.getCapturedStdout();
|
||||
|
||||
EXPECT_TRUE(cacheConfig.enabled);
|
||||
EXPECT_EQ(cacheConfig.cacheDir, "ult/directory/");
|
||||
EXPECT_STREQ(output.c_str(), "NEO_CACHE_PERSISTENT is enabled. Cache is located in: ult/directory/\n\n");
|
||||
|
||||
NEO::ULT::setMockEnviron(nullptr);
|
||||
}
|
||||
|
||||
TEST(ClCacheDefaultConfigLinuxTest, GivenIgcEnvVarSetWhenGetDefaultCacheConfigThenWarningIsPrinted) {
|
||||
DebugManagerStateRestore restorer;
|
||||
debugManager.flags.PrintDebugMessages.set(true);
|
||||
|
||||
std::unordered_map<std::string, std::string> mockableEnvs;
|
||||
mockableEnvs["NEO_CACHE_PERSISTENT"] = "1";
|
||||
mockableEnvs["NEO_CACHE_MAX_SIZE"] = "22";
|
||||
mockableEnvs["NEO_CACHE_DIR"] = "ult/directory/";
|
||||
mockableEnvs["IGC_DEBUG"] = "1";
|
||||
|
||||
auto statMock = [](const std::string &filePath, struct stat *statbuf) noexcept {
|
||||
statbuf->st_mode = S_IFDIR;
|
||||
return 0;
|
||||
};
|
||||
|
||||
auto buildEnviron = [](const std::unordered_map<std::string, std::string> &envs, std::vector<std::string> &storage) {
|
||||
storage.clear();
|
||||
for (const auto &kv : envs) {
|
||||
storage.push_back(kv.first + "=" + kv.second);
|
||||
}
|
||||
std::vector<char *> result;
|
||||
for (auto &str : storage) {
|
||||
result.push_back(const_cast<char *>(str.c_str()));
|
||||
}
|
||||
result.push_back(nullptr);
|
||||
return result;
|
||||
};
|
||||
|
||||
std::vector<std::string> envStorage;
|
||||
auto environVec = buildEnviron(mockableEnvs, envStorage);
|
||||
NEO::ULT::setMockEnviron(environVec.data());
|
||||
|
||||
VariableBackup<std::unordered_map<std::string, std::string> *> mockableEnvValuesBackup(&NEO::IoFunctions::mockableEnvValues, &mockableEnvs);
|
||||
VariableBackup<decltype(NEO::SysCalls::sysCallsStat)> statBackup(&NEO::SysCalls::sysCallsStat, statMock);
|
||||
|
||||
StreamCapture capture;
|
||||
capture.captureStdout();
|
||||
auto cacheConfig = NEO::getDefaultCompilerCacheConfig();
|
||||
std::string output = capture.getCapturedStdout();
|
||||
|
||||
EXPECT_FALSE(cacheConfig.enabled);
|
||||
EXPECT_STREQ(output.c_str(), "WARNING: Detected IGC_* environment variable(s). Compiler cache is disabled.\n");
|
||||
|
||||
NEO::ULT::setMockEnviron(nullptr);
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -293,7 +293,7 @@ TEST_F(ClCacheDefaultConfigWindowsTest, GivenPrintDebugMessagesWhenCacheIsEnable
|
||||
|
||||
TEST_F(ClCacheDefaultConfigWindowsTest, GivenIgcEnvVarSetOrUnsetThenCacheConfigIsEnabledOrDisabledAsExpected) {
|
||||
DebugManagerStateRestore restorer;
|
||||
debugManager.flags.PrintDebugMessages.set(true);
|
||||
debugManager.flags.PrintDebugMessages.set(false);
|
||||
|
||||
mockableEnvs["NEO_CACHE_PERSISTENT"] = "1";
|
||||
mockableEnvs["NEO_CACHE_MAX_SIZE"] = "22";
|
||||
@@ -303,15 +303,10 @@ TEST_F(ClCacheDefaultConfigWindowsTest, GivenIgcEnvVarSetOrUnsetThenCacheConfigI
|
||||
wchar_t envBlockNoIgc[] = L"NEO_CACHE_PERSISTENT=1\0NEO_CACHE_MAX_SIZE=22\0NEO_CACHE_DIR=ult\\directory\\\0\0";
|
||||
SysCalls::mockEnvStringsW = envBlockNoIgc;
|
||||
|
||||
StreamCapture capture;
|
||||
capture.captureStdout();
|
||||
|
||||
auto cacheConfig = getDefaultCompilerCacheConfig();
|
||||
std::string output = capture.getCapturedStdout();
|
||||
|
||||
EXPECT_TRUE(cacheConfig.enabled);
|
||||
EXPECT_EQ(cacheConfig.cacheDir, "ult\\directory\\");
|
||||
EXPECT_STREQ(output.c_str(), "NEO_CACHE_PERSISTENT is enabled. Cache is located in: ult\\directory\\\n\n");
|
||||
|
||||
wchar_t envBlockWithIgc[] = L"IGC_DEBUG=1\0NEO_CACHE_PERSISTENT=1\0NEO_CACHE_MAX_SIZE=22\0NEO_CACHE_DIR=ult\\directory\\\0\0";
|
||||
SysCalls::mockEnvStringsW = envBlockWithIgc;
|
||||
@@ -320,14 +315,32 @@ TEST_F(ClCacheDefaultConfigWindowsTest, GivenIgcEnvVarSetOrUnsetThenCacheConfigI
|
||||
EXPECT_FALSE(cacheConfig.enabled);
|
||||
|
||||
SysCalls::mockEnvStringsW = envBlockNoIgc;
|
||||
StreamCapture capture2;
|
||||
capture2.captureStdout();
|
||||
cacheConfig = getDefaultCompilerCacheConfig();
|
||||
output = capture2.getCapturedStdout();
|
||||
|
||||
EXPECT_TRUE(cacheConfig.enabled);
|
||||
EXPECT_EQ(cacheConfig.cacheDir, "ult\\directory\\");
|
||||
EXPECT_STREQ(output.c_str(), "NEO_CACHE_PERSISTENT is enabled. Cache is located in: ult\\directory\\\n\n");
|
||||
}
|
||||
|
||||
TEST_F(ClCacheDefaultConfigWindowsTest, GivenIgcEnvVarSetWhenGetDefaultCacheConfigThenWarningIsPrinted) {
|
||||
DebugManagerStateRestore restorer;
|
||||
debugManager.flags.PrintDebugMessages.set(true);
|
||||
|
||||
mockableEnvs["NEO_CACHE_PERSISTENT"] = "1";
|
||||
mockableEnvs["NEO_CACHE_MAX_SIZE"] = "22";
|
||||
mockableEnvs["NEO_CACHE_DIR"] = "ult\\directory\\";
|
||||
DWORD getFileAttributesResultMock = FILE_ATTRIBUTE_DIRECTORY;
|
||||
VariableBackup<DWORD> pathExistsMockBackup(&SysCalls::getFileAttributesResult, getFileAttributesResultMock);
|
||||
|
||||
wchar_t envBlockWithIgc[] = L"IGC_DEBUG=1\0NEO_CACHE_PERSISTENT=1\0NEO_CACHE_MAX_SIZE=22\0NEO_CACHE_DIR=ult\\directory\\\0\0";
|
||||
SysCalls::mockEnvStringsW = envBlockWithIgc;
|
||||
|
||||
StreamCapture capture;
|
||||
capture.captureStdout();
|
||||
auto cacheConfig = getDefaultCompilerCacheConfig();
|
||||
std::string output = capture.getCapturedStdout();
|
||||
|
||||
EXPECT_FALSE(cacheConfig.enabled);
|
||||
EXPECT_STREQ(output.c_str(), "WARNING: Detected IGC_* environment variable(s). Compiler cache is disabled.\n");
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
Reference in New Issue
Block a user