bios: Implement BIOSIntegerAttribute
Implement BIOSIntegerAttribute, most of the code is copied from
bios/bios_parser.cpp.
Implement SetAttrValueOnDbus and constructEntry for integer attribute
Signed-off-by: John Wang <wangzqbj@inspur.com>
Change-Id: I57d5b5dbcb74f9a404f5133426208f4c6851dea2
diff --git a/test/libpldmresponder_bios_config_test.cpp b/test/libpldmresponder_bios_config_test.cpp
index 2a2b72f..05a3ced 100644
--- a/test/libpldmresponder_bios_config_test.cpp
+++ b/test/libpldmresponder_bios_config_test.cpp
@@ -28,6 +28,7 @@
std::vector<fs::path> paths = {
"./bios_jsons/string_attrs.json",
+ "./bios_jsons/integer_attrs.json",
};
for (auto& path : paths)
@@ -148,6 +149,20 @@
jsonEntry->at("default_string").get<std::string>());
break;
}
+ case PLDM_BIOS_INTEGER:
+ case PLDM_BIOS_INTEGER_READ_ONLY:
+ {
+ auto integerField = table::attribute::decodeIntegerEntry(entry);
+ EXPECT_EQ(integerField.lowerBound,
+ jsonEntry->at("lower_bound").get<uint64_t>());
+ EXPECT_EQ(integerField.upperBound,
+ jsonEntry->at("upper_bound").get<uint64_t>());
+ EXPECT_EQ(integerField.scalarIncrement,
+ jsonEntry->at("scalar_increment").get<uint32_t>());
+ EXPECT_EQ(integerField.defaultValue,
+ jsonEntry->at("default_value").get<uint64_t>());
+ break;
+ }
default:
EXPECT_TRUE(false);
break;
@@ -175,6 +190,14 @@
EXPECT_EQ(value, defValue);
break;
}
+ case PLDM_BIOS_INTEGER:
+ case PLDM_BIOS_INTEGER_READ_ONLY:
+ {
+ auto value = table::attribute_value::decodeIntegerEntry(entry);
+ auto defValue = jsonEntry->at("default_value").get<uint64_t>();
+ EXPECT_EQ(value, defValue);
+ break;
+ }
default:
EXPECT_TRUE(false);
break;