Add matrix.kernel.level.
Indicates at which level is the kernel requirement from.
Also fix tests now that matrix.kernel.level is serialized.
Bug: 139309488
Test: vintf_object_test
Test: libvintf_test
Change-Id: Ic65b0a2a95a2311b480753a139f3029e87848786
diff --git a/parse_xml.cpp b/parse_xml.cpp
index 9b2da7f..e42f9f7 100644
--- a/parse_xml.cpp
+++ b/parse_xml.cpp
@@ -656,6 +656,10 @@
}
appendAttr(root, "version", kv);
+ if (kernel.getSourceMatrixLevel() != Level::UNSPECIFIED) {
+ appendAttr(root, "level", kernel.getSourceMatrixLevel());
+ }
+
if (!kernel.mConditions.empty()) {
appendChild(root, matrixKernelConditionsConverter(kernel.mConditions, d));
}
@@ -664,12 +668,15 @@
}
}
bool buildObject(MatrixKernel* object, NodeType* root, std::string* error) const override {
+ Level sourceMatrixLevel = Level::UNSPECIFIED;
if (!parseAttr(root, "version", &object->mMinLts, error) ||
+ !parseOptionalAttr(root, "level", Level::UNSPECIFIED, &sourceMatrixLevel, error) ||
!parseOptionalChild(root, matrixKernelConditionsConverter, {}, &object->mConditions,
error) ||
!parseChildren(root, matrixKernelConfigConverter, &object->mConfigs, error)) {
return false;
}
+ object->setSourceMatrixLevel(sourceMatrixLevel);
return true;
}
};