diff options
| author | 2024-03-28 12:36:34 -0700 | |
|---|---|---|
| committer | 2024-04-01 18:21:19 +0000 | |
| commit | 5c0e77d8178a33eece898e187d076eb8ba06137f (patch) | |
| tree | 94a5cf6eba575b0d39d97d0bf7ad718590203070 | |
| parent | 6175aa77bffc0a26846bffdb4bf0610323f598fc (diff) | |
Rollforward aslgen tests and more fields, fixing tests.
Changes: Added required version number in source xml, and changed purpose from set to list to remove chance of flakiness in verification.
Verified tests failed before change and were fixed after the change.
Bug: 329902686
Test: Unit tests.
Change-Id: I21c6247689fe6ca5577bf12ec971e992a9ace3aa
8 files changed, 22 insertions, 18 deletions
diff --git a/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataCategoryFactory.java b/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataCategoryFactory.java index ae7b603c87f6..d2b671271561 100644 --- a/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataCategoryFactory.java +++ b/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataCategoryFactory.java @@ -20,7 +20,7 @@ import com.android.asllib.util.MalformedXmlException; import org.w3c.dom.Element; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -28,7 +28,7 @@ public class DataCategoryFactory implements AslMarshallableFactory<DataCategory> @Override public DataCategory createFromHrElements(List<Element> elements) throws MalformedXmlException { String categoryName = null; - Map<String, DataType> dataTypeMap = new HashMap<String, DataType>(); + Map<String, DataType> dataTypeMap = new LinkedHashMap<String, DataType>(); for (Element ele : elements) { categoryName = ele.getAttribute(XmlUtils.HR_ATTR_DATA_CATEGORY); String dataTypeName = ele.getAttribute(XmlUtils.HR_ATTR_DATA_TYPE); diff --git a/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataLabelsFactory.java b/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataLabelsFactory.java index 0e14ebf4eab9..79edab7631f0 100644 --- a/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataLabelsFactory.java +++ b/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataLabelsFactory.java @@ -22,8 +22,8 @@ import com.android.asllib.util.MalformedXmlException; import org.w3c.dom.Element; import org.w3c.dom.NodeList; -import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -93,7 +93,7 @@ public class DataLabelsFactory implements AslMarshallableFactory<DataLabels> { private static Map<String, DataCategory> getDataCategoriesWithTag( Element dataLabelsEle, String dataCategoryUsageTypeTag) throws MalformedXmlException { NodeList dataUsedNodeList = dataLabelsEle.getElementsByTagName(dataCategoryUsageTypeTag); - Map<String, DataCategory> dataCategoryMap = new HashMap<String, DataCategory>(); + Map<String, DataCategory> dataCategoryMap = new LinkedHashMap<String, DataCategory>(); Set<String> dataCategoryNames = new HashSet<String>(); for (int i = 0; i < dataUsedNodeList.getLength(); i++) { diff --git a/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataType.java b/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataType.java index cecee39cbb12..d011cfeef363 100644 --- a/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataType.java +++ b/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataType.java @@ -76,19 +76,19 @@ public class DataType implements AslMarshallable { private final String mDataTypeName; - private final Set<Purpose> mPurposeSet; + private final List<Purpose> mPurposes; private final Boolean mIsCollectionOptional; private final Boolean mIsSharingOptional; private final Boolean mEphemeral; public DataType( String dataTypeName, - Set<Purpose> purposeSet, + List<Purpose> purposes, Boolean isCollectionOptional, Boolean isSharingOptional, Boolean ephemeral) { this.mDataTypeName = dataTypeName; - this.mPurposeSet = purposeSet; + this.mPurposes = purposes; this.mIsCollectionOptional = isCollectionOptional; this.mIsSharingOptional = isSharingOptional; this.mEphemeral = ephemeral; @@ -102,8 +102,8 @@ public class DataType implements AslMarshallable { * Returns {@link Set} of valid {@link Integer} purposes for using the associated data category * and type */ - public Set<Purpose> getPurposeSet() { - return mPurposeSet; + public List<Purpose> getPurposes() { + return mPurposes; } /** @@ -133,13 +133,13 @@ public class DataType implements AslMarshallable { @Override public List<Element> toOdDomElements(Document doc) { Element dataTypeEle = XmlUtils.createPbundleEleWithName(doc, this.getDataTypeName()); - if (!this.getPurposeSet().isEmpty()) { + if (!this.getPurposes().isEmpty()) { dataTypeEle.appendChild( XmlUtils.createOdArray( doc, XmlUtils.OD_TAG_INT_ARRAY, XmlUtils.OD_NAME_PURPOSES, - this.getPurposeSet().stream() + this.getPurposes().stream() .map(p -> String.valueOf(p.getValue())) .toList())); } diff --git a/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataTypeFactory.java b/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataTypeFactory.java index bfa330334487..27c1b599fec7 100644 --- a/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataTypeFactory.java +++ b/tools/app_metadata_bundles/src/lib/java/com/android/asllib/DataTypeFactory.java @@ -29,16 +29,16 @@ public class DataTypeFactory implements AslMarshallableFactory<DataType> { public DataType createFromHrElements(List<Element> elements) { Element hrDataTypeEle = XmlUtils.getSingleElement(elements); String dataTypeName = hrDataTypeEle.getAttribute(XmlUtils.HR_ATTR_DATA_TYPE); - Set<DataType.Purpose> purposeSet = + List<DataType.Purpose> purposes = Arrays.stream(hrDataTypeEle.getAttribute(XmlUtils.HR_ATTR_PURPOSES).split("\\|")) .map(DataType.Purpose::forString) - .collect(Collectors.toUnmodifiableSet()); + .collect(Collectors.toList()); Boolean isCollectionOptional = XmlUtils.getBoolAttr(hrDataTypeEle, XmlUtils.HR_ATTR_IS_COLLECTION_OPTIONAL); Boolean isSharingOptional = XmlUtils.getBoolAttr(hrDataTypeEle, XmlUtils.HR_ATTR_IS_SHARING_OPTIONAL); Boolean ephemeral = XmlUtils.getBoolAttr(hrDataTypeEle, XmlUtils.HR_ATTR_EPHEMERAL); return new DataType( - dataTypeName, purposeSet, isCollectionOptional, isSharingOptional, ephemeral); + dataTypeName, purposes, isCollectionOptional, isSharingOptional, ephemeral); } } diff --git a/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/contacts/hr.xml b/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/contacts/hr.xml index fe020558074d..b2ff4495a6d2 100644 --- a/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/contacts/hr.xml +++ b/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/contacts/hr.xml @@ -1,4 +1,4 @@ -<app-metadata-bundles> +<app-metadata-bundles version="123"> <safety-labels version="12345"> <data-labels> <data-shared dataCategory="contacts" diff --git a/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/contacts/od.xml b/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/contacts/od.xml index ba6327e9b200..81277bf456a4 100644 --- a/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/contacts/od.xml +++ b/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/contacts/od.xml @@ -1,5 +1,7 @@ <bundle> + <long name="version" value="123"/> <pbundle_as_map name="safety_labels"> + <long name="version" value="12345"/> <pbundle_as_map name="data_labels"> <pbundle_as_map name="data_shared"> <pbundle_as_map name="contacts"> @@ -14,4 +16,4 @@ </pbundle_as_map> </pbundle_as_map> </pbundle_as_map> -</bundle> +</bundle>
\ No newline at end of file diff --git a/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/location/hr.xml b/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/location/hr.xml index 202cc1e1c526..ac844b3b2767 100644 --- a/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/location/hr.xml +++ b/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/location/hr.xml @@ -1,4 +1,4 @@ -<app-metadata-bundles> +<app-metadata-bundles version="123"> <safety-labels version="12345"> <data-labels> <data-shared dataCategory="location" diff --git a/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/location/od.xml b/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/location/od.xml index fbcb4fb2f1a4..d0a3bfa7e64f 100644 --- a/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/location/od.xml +++ b/tools/app_metadata_bundles/src/test/resources/com/android/aslgen/validmappings/location/od.xml @@ -1,12 +1,14 @@ <bundle> + <long name="version" value="123"/> <pbundle_as_map name="safety_labels"> + <long name="version" value="12345"/> <pbundle_as_map name="data_labels"> <pbundle_as_map name="data_shared"> <pbundle_as_map name="location"> <pbundle_as_map name="precise_location"> <int-array name="purposes" num="2"> - <item value="2"/> <item value="1"/> + <item value="2"/> </int-array> <boolean name="is_sharing_optional" value="true"/> <boolean name="ephemeral" value="true"/> |