diff --git a/shared/test/common/os_interface/linux/sys_calls_linux_ult.cpp b/shared/test/common/os_interface/linux/sys_calls_linux_ult.cpp index c757008d52..2dc21290ed 100644 --- a/shared/test/common/os_interface/linux/sys_calls_linux_ult.cpp +++ b/shared/test/common/os_interface/linux/sys_calls_linux_ult.cpp @@ -563,15 +563,15 @@ char **getEnviron() { namespace ULT { -static char **mockEnviron = nullptr; +static char *defaultTestEnviron[] = {nullptr}; +static char **mockEnviron = defaultTestEnviron; char **getCurrentEnviron() { - return mockEnviron ? mockEnviron : environ; + return mockEnviron; } void setMockEnviron(char **mock) { - mockEnviron = mock; + mockEnviron = mock ? mock : defaultTestEnviron; } - } // namespace ULT } // namespace NEO diff --git a/shared/test/unit_test/compiler_interface/linux/default_cl_cache_config_tests.cpp b/shared/test/unit_test/compiler_interface/linux/default_cl_cache_config_tests.cpp index 3256831e96..0aa4eb89b3 100644 --- a/shared/test/unit_test/compiler_interface/linux/default_cl_cache_config_tests.cpp +++ b/shared/test/unit_test/compiler_interface/linux/default_cl_cache_config_tests.cpp @@ -423,9 +423,15 @@ TEST(ClCacheDefaultConfigLinuxTest, GivenIgcEnvVarSetOrUnsetThenCacheConfigIsEna VariableBackup *> mockableEnvValuesBackup(&NEO::IoFunctions::mockableEnvValues, &mockableEnvs); VariableBackup 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); @@ -436,9 +442,13 @@ 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); } diff --git a/shared/test/unit_test/compiler_interface/windows/default_cl_cache_config_tests.cpp b/shared/test/unit_test/compiler_interface/windows/default_cl_cache_config_tests.cpp index ac252eb57e..227a1424d1 100644 --- a/shared/test/unit_test/compiler_interface/windows/default_cl_cache_config_tests.cpp +++ b/shared/test/unit_test/compiler_interface/windows/default_cl_cache_config_tests.cpp @@ -303,9 +303,15 @@ 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; @@ -314,10 +320,14 @@ 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"); } } // namespace NEO