compatibility-matrix.sepolicy.sepolicy-version format
should be 25.0 or 26.0-3; also there can be multiple
sepolicy-version entries. Change the code to reflect these.
Test: libvintf_test
Bug: 36456394 VINTF: add sepolicy version
Bug: 36737087 We need a way to identify which "platform version"
Change-Id: Iaf660c6326fb42a21b16e8b8129005053a28f01b
diff --git a/parse_xml.cpp b/parse_xml.cpp
index 19ef771..207d4ed 100644
--- a/parse_xml.cpp
+++ b/parse_xml.cpp
@@ -543,17 +543,17 @@
const ManifestHalConverter manifestHalConverter{};
const XmlTextConverter<KernelSepolicyVersion> kernelSepolicyVersionConverter{"kernel-sepolicy-version"};
-const XmlTextConverter<SepolicyVersion> sepolicyVersionConverter{"sepolicy-version"};
+const XmlTextConverter<VersionRange> sepolicyVersionConverter{"sepolicy-version"};
struct SepolicyConverter : public XmlNodeConverter<Sepolicy> {
std::string elementName() const override { return "sepolicy"; }
void mutateNode(const Sepolicy &object, NodeType *root, DocType *d) const override {
appendChild(root, kernelSepolicyVersionConverter(object.kernelSepolicyVersion(), d));
- appendChild(root, sepolicyVersionConverter(object.sepolicyVersion(), d));
+ appendChildren(root, sepolicyVersionConverter, object.sepolicyVersions(), d);
}
bool buildObject(Sepolicy *object, NodeType *root) const override {
if (!parseChild(root, kernelSepolicyVersionConverter, &object->mKernelSepolicyVersion) ||
- !parseChild(root, sepolicyVersionConverter, &object->mSepolicyVersion)) {
+ !parseChildren(root, sepolicyVersionConverter, &object->mSepolicyVersionRanges)) {
return false;
}
return true;