mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Test boolean registry keys are evaluated as dwords
Related-To: NEO-4338 Change-Id: I95bb3ed60efbb5ff762e23c425b00ebbac70451c Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:

committed by
sys_ocldev

parent
9a4217b6d3
commit
71d712bfba
@ -9,6 +9,7 @@
|
||||
|
||||
uint32_t regOpenKeySuccessCount = 0u;
|
||||
uint32_t regQueryValueSuccessCount = 0u;
|
||||
uint64_t regQueryValueExpectedData = 0ull;
|
||||
const HKEY validHkey = reinterpret_cast<HKEY>(0);
|
||||
|
||||
LSTATUS APIENTRY RegOpenKeyExA(
|
||||
@ -71,6 +72,12 @@ LSTATUS APIENTRY RegQueryValueExA(
|
||||
*lpType = REG_BINARY;
|
||||
}
|
||||
}
|
||||
} else if (strcmp(lpValueName, "boolRegistryKey") == 0) {
|
||||
if (*lpcbData == sizeof(int64_t)) {
|
||||
if (lpData) {
|
||||
*reinterpret_cast<uint64_t *>(lpData) = regQueryValueExpectedData;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,7 @@ using RegistryReaderTest = ::testing::Test;
|
||||
|
||||
extern uint32_t regOpenKeySuccessCount;
|
||||
extern uint32_t regQueryValueSuccessCount;
|
||||
extern uint64_t regQueryValueExpectedData;
|
||||
|
||||
TEST_F(RegistryReaderTest, givenRegistryReaderWhenItIsCreatedWithUserScopeSetToFalseThenItsHkeyTypeIsInitializedToHkeyLocalMachine) {
|
||||
bool userScope = false;
|
||||
@ -153,4 +154,82 @@ TEST_F(DebugReaderWithRegistryAndEnvTest, givenBinaryDebugKeyOnlyInRegistryWhenR
|
||||
regQueryValueSuccessCount = 0u;
|
||||
|
||||
EXPECT_STREQ("default", registryReader.getSetting("settingSourceBinary", defaultValue).c_str());
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(RegistryReaderTest, givenRegistryKeyPresentWhenValueIsZeroThenExpectBooleanFalse) {
|
||||
std::string regKey = "notExistPath";
|
||||
std::string keyName = "boolRegistryKey";
|
||||
|
||||
bool defaultValue = false;
|
||||
regOpenKeySuccessCount = 1;
|
||||
regQueryValueSuccessCount = 1;
|
||||
regQueryValueExpectedData = 0ull;
|
||||
|
||||
TestedRegistryReader registryReader(regKey);
|
||||
bool value = registryReader.getSetting(keyName.c_str(), defaultValue);
|
||||
EXPECT_FALSE(value);
|
||||
}
|
||||
|
||||
TEST_F(RegistryReaderTest, givenRegistryKeyNotPresentWhenDefaulValueIsFalseOrTrueThenExpectReturnIsMatchingFalseOrTrue) {
|
||||
std::string regKey = "notExistPath";
|
||||
std::string keyName = "boolRegistryKey";
|
||||
|
||||
bool defaultValue = false;
|
||||
regOpenKeySuccessCount = 1;
|
||||
regQueryValueSuccessCount = 0;
|
||||
regQueryValueExpectedData = 1ull;
|
||||
|
||||
TestedRegistryReader registryReader(regKey);
|
||||
bool value = registryReader.getSetting(keyName.c_str(), defaultValue);
|
||||
EXPECT_FALSE(value);
|
||||
|
||||
defaultValue = true;
|
||||
regOpenKeySuccessCount = 1;
|
||||
regQueryValueSuccessCount = 0;
|
||||
regQueryValueExpectedData = 0ull;
|
||||
|
||||
value = registryReader.getSetting(keyName.c_str(), defaultValue);
|
||||
EXPECT_TRUE(value);
|
||||
}
|
||||
|
||||
TEST_F(RegistryReaderTest, givenRegistryKeyPresentWhenValueIsNonZeroInHigherDwordThenExpectBooleanFalse) {
|
||||
std::string regKey = "notExistPath";
|
||||
std::string keyName = "boolRegistryKey";
|
||||
|
||||
bool defaultValue = true;
|
||||
regOpenKeySuccessCount = 1;
|
||||
regQueryValueSuccessCount = 1;
|
||||
regQueryValueExpectedData = 1ull << 32;
|
||||
|
||||
TestedRegistryReader registryReader(regKey);
|
||||
bool value = registryReader.getSetting(keyName.c_str(), defaultValue);
|
||||
EXPECT_FALSE(value);
|
||||
}
|
||||
|
||||
TEST_F(RegistryReaderTest, givenRegistryKeyPresentWhenValueIsNonZeroInLowerDwordThenExpectBooleanTrue) {
|
||||
std::string regKey = "notExistPath";
|
||||
std::string keyName = "boolRegistryKey";
|
||||
|
||||
bool defaultValue = false;
|
||||
regOpenKeySuccessCount = 1;
|
||||
regQueryValueSuccessCount = 1;
|
||||
regQueryValueExpectedData = 1ull;
|
||||
|
||||
TestedRegistryReader registryReader(regKey);
|
||||
bool value = registryReader.getSetting(keyName.c_str(), defaultValue);
|
||||
EXPECT_TRUE(value);
|
||||
}
|
||||
|
||||
TEST_F(RegistryReaderTest, givenRegistryKeyPresentWhenValueIsNonZeroInBothDwordsThenExpectBooleanTrue) {
|
||||
std::string regKey = "notExistPath";
|
||||
std::string keyName = "boolRegistryKey";
|
||||
|
||||
bool defaultValue = false;
|
||||
regOpenKeySuccessCount = 1;
|
||||
regQueryValueSuccessCount = 1;
|
||||
regQueryValueExpectedData = 1ull | (1ull << 32);
|
||||
|
||||
TestedRegistryReader registryReader(regKey);
|
||||
bool value = registryReader.getSetting(keyName.c_str(), defaultValue);
|
||||
EXPECT_TRUE(value);
|
||||
}
|
||||
|
Reference in New Issue
Block a user