regulators: Add test cases for check_duplicate_object_id.
Add test cases for check_duplicate_object_id function in validate tool.
*Invalid: test duplicate object ID in device and rail.
*Invalid: test duplicate object ID in device and rule.
*Invalid: test duplicate object ID in rule and rail.
Modify test case for comments property with multiple array elements.
Add comments property with multiple array elements in test case Configuration.
Signed-off-by: Bob King <Bob_King@wistron.com>
Change-Id: I900083ed88617b227af138c880f1a3280d44ad47
diff --git a/phosphor-regulators/test/validate-regulators-config_tests.cpp b/phosphor-regulators/test/validate-regulators-config_tests.cpp
index 0bafa20..dac017f 100644
--- a/phosphor-regulators/test/validate-regulators-config_tests.cpp
+++ b/phosphor-regulators/test/validate-regulators-config_tests.cpp
@@ -518,6 +518,8 @@
// Valid: test configuration with property rule_id and with no actions.
{
json configFile = configurationFile;
+ configFile["chassis"][0]["devices"][0]["configuration"]["comments"][1] =
+ "test multiple array elements in comments.";
EXPECT_JSON_VALID(configFile);
}
// Valid: test configuration with property actions and with no rule_id.
@@ -2432,6 +2434,31 @@
EXPECT_JSON_INVALID(configFile, "Error: Duplicate rail ID.", "");
}
}
+TEST(ValidateRegulatorsConfigTest, DuplicateObjectID)
+{
+ // Invalid: test duplicate object ID in device and rail.
+ {
+ json configFile = validConfigFile;
+ configFile["chassis"][0]["devices"][0]["rails"][1]["id"] =
+ "vdd_regulator";
+ EXPECT_JSON_INVALID(configFile, "Error: Duplicate ID.", "");
+ }
+ // Invalid: test duplicate object ID in device and rule.
+ {
+ json configFile = validConfigFile;
+ configFile["rules"][2]["id"] = "vdd_regulator";
+ configFile["rules"][2]["actions"][0]["pmbus_write_vout_command"]
+ ["format"] = "linear";
+ EXPECT_JSON_INVALID(configFile, "Error: Duplicate ID.", "");
+ }
+ // Invalid: test duplicate object ID in rule and rail.
+ {
+ json configFile = validConfigFile;
+ configFile["chassis"][0]["devices"][0]["rails"][1]["id"] =
+ "set_voltage_rule";
+ EXPECT_JSON_INVALID(configFile, "Error: Duplicate ID.", "");
+ }
+}
TEST(ValidateRegulatorsConfigTest, InfiniteLoops)
{
// Invalid: test run_rule with infinite loop (rules run each other).