mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Correct reading binary values from registry
Change-Id: I9cbbaaebb3b656314c4b44eea454fe19248f16b7 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
@ -54,6 +54,17 @@ LSTATUS APIENTRY RegQueryValueExA(
|
||||
} else {
|
||||
*lpcbData = sizeof(DWORD);
|
||||
}
|
||||
} else if (strcmp(lpValueName, "settingSourceBinary") == 0) {
|
||||
const auto settingSource = L"registry";
|
||||
auto size = wcslen(settingSource) * sizeof(wchar_t);
|
||||
if (lpData) {
|
||||
memcpy(reinterpret_cast<wchar_t *>(lpData), settingSource, size);
|
||||
} else {
|
||||
*lpcbData = static_cast<DWORD>(size);
|
||||
if (lpType) {
|
||||
*lpType = REG_BINARY;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -120,4 +120,29 @@ TEST_F(DebugReaderWithRegistryAndEnvTest, givenStringDebugKeyWhenOpenKeyFailsThe
|
||||
regQueryValueSuccessCount = 0u;
|
||||
|
||||
EXPECT_STREQ("environment", registryReader.getSetting("settingSourceString", defaultValue).c_str());
|
||||
}
|
||||
|
||||
TEST_F(DebugReaderWithRegistryAndEnvTest, givenBinaryDebugKeyWhenReadFromRegistrySucceedsThenReturnObtainedValue) {
|
||||
std::string defaultValue("default");
|
||||
regOpenKeySuccessCount = 1u;
|
||||
regQueryValueSuccessCount = 2u;
|
||||
|
||||
EXPECT_STREQ("registry", registryReader.getSetting("settingSourceBinary", defaultValue).c_str());
|
||||
}
|
||||
TEST_F(DebugReaderWithRegistryAndEnvTest, givenBinaryDebugKeyOnlyInRegistryWhenReadFromRegistryFailsThenReturnDefaultValue) {
|
||||
std::string defaultValue("default");
|
||||
regOpenKeySuccessCount = 1u;
|
||||
regQueryValueSuccessCount = 1u;
|
||||
|
||||
EXPECT_STREQ("default", registryReader.getSetting("settingSourceBinary", defaultValue).c_str());
|
||||
|
||||
regOpenKeySuccessCount = 1u;
|
||||
regQueryValueSuccessCount = 0u;
|
||||
|
||||
EXPECT_STREQ("default", registryReader.getSetting("settingSourceBinary", defaultValue).c_str());
|
||||
|
||||
regOpenKeySuccessCount = 0u;
|
||||
regQueryValueSuccessCount = 0u;
|
||||
|
||||
EXPECT_STREQ("default", registryReader.getSetting("settingSourceBinary", defaultValue).c_str());
|
||||
}
|
Reference in New Issue
Block a user