From ef357b78ffca4a3c01e5c17847d9c03f92569bcb Mon Sep 17 00:00:00 2001 From: Koska Date: Thu, 30 Jul 2020 15:27:03 +0200 Subject: [PATCH] Reading the cl_cache_dir environment variable Change-Id: Ia104f8e1f1fde310a5eceb6b6319bc8629a057bb Signed-off-by: Koska Related-To: NEO-4819 --- .../os_interface/windows/registry_reader_tests.cpp | 9 +++++++++ .../os_interface/windows/registry_reader_tests.h | 5 +++++ .../os_interface/windows/debug_registry_reader.cpp | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/opencl/test/unit_test/os_interface/windows/registry_reader_tests.cpp b/opencl/test/unit_test/os_interface/windows/registry_reader_tests.cpp index 4b3f5bf4dd..93adce1ac5 100644 --- a/opencl/test/unit_test/os_interface/windows/registry_reader_tests.cpp +++ b/opencl/test/unit_test/os_interface/windows/registry_reader_tests.cpp @@ -233,3 +233,12 @@ TEST_F(RegistryReaderTest, givenRegistryKeyPresentWhenValueIsNonZeroInBothDwords bool value = registryReader.getSetting(keyName.c_str(), defaultValue); EXPECT_TRUE(value); } + +TEST_F(DebugReaderWithRegistryAndEnvTest, givenSetProcessNameWhenReadFromEnvironmentVariableThenReturnClCacheDir) { + regOpenKeySuccessCount = 0u; + regQueryValueSuccessCount = 0u; + registryReader.processName = "processName"; + std::string defaultCacheDir = ""; + std::string cacheDir = registryReader.getSetting("processName", defaultCacheDir); + EXPECT_STREQ("./tested_cl_cache_dir", cacheDir.c_str()); +} diff --git a/opencl/test/unit_test/os_interface/windows/registry_reader_tests.h b/opencl/test/unit_test/os_interface/windows/registry_reader_tests.h index 556afb9ca8..d91c4d0c7a 100644 --- a/opencl/test/unit_test/os_interface/windows/registry_reader_tests.h +++ b/opencl/test/unit_test/os_interface/windows/registry_reader_tests.h @@ -18,6 +18,7 @@ class TestedRegistryReader : public RegistryReader { return hkeyType; } using RegistryReader::getSetting; + using RegistryReader::processName; char *getenv(const char *envVar) override { if (strcmp(envVar, "TestedEnvironmentVariable") == 0) { @@ -28,6 +29,10 @@ class TestedRegistryReader : public RegistryReader { return "environment"; } else if (strcmp(envVar, "settingSourceInt") == 0) { return "2"; + } else if (strcmp(envVar, "processName") == 0) { + return "processName"; + } else if (strcmp(envVar, "cl_cache_dir") == 0) { + return "./tested_cl_cache_dir"; } else { return nullptr; } diff --git a/shared/source/os_interface/windows/debug_registry_reader.cpp b/shared/source/os_interface/windows/debug_registry_reader.cpp index bf0f9fce64..936f7abab2 100644 --- a/shared/source/os_interface/windows/debug_registry_reader.cpp +++ b/shared/source/os_interface/windows/debug_registry_reader.cpp @@ -143,7 +143,7 @@ std::string RegistryReader::getSetting(const char *settingName, const std::strin } if (readSettingFromEnv) { - const char *envValue = getenv(settingName); + const char *envValue = strcmp(processName.c_str(), settingName) ? getenv(settingName) : getenv("cl_cache_dir"); if (envValue) { keyValue.assign(envValue); }