Add a test
When refactoring is done, all package information will be stored in one
place including both APK and APEX.
Add a test to ensure no conflicting package names between APK and APEX.
Bug: 225756739
Test: atest android.content.pm.cts.PackageManagerTest
Change-Id: I914fc9ab6f0ce9069d69ad7a49700101e4b4180b
diff --git a/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java b/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java
index c55bc08..e3b1cc2 100644
--- a/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java
+++ b/tests/tests/content/src/android/content/pm/cts/PackageManagerTest.java
@@ -1738,6 +1738,24 @@
}
/**
+ * Test that we con't have conflicting package names between APK and APEX.
+ */
+ @Test
+ public void testGetInstalledPackages_WithApexFlag_ContainsNoDuplicates() {
+ List<PackageInfo> packageInfos = mPackageManager.getInstalledPackages(
+ PackageManager.PackageInfoFlags.of(MATCH_APEX));
+ final Set<String> apexPackageNames = packageInfos.stream()
+ .filter(pi -> pi.isApex).map(pi -> pi.packageName).collect(Collectors.toSet());
+ final Set<String> apkPackageNames = packageInfos.stream()
+ .filter(pi -> !pi.isApex).map(pi -> pi.packageName).collect(Collectors.toSet());
+ for (String packageName : apkPackageNames) {
+ if (apexPackageNames.contains(packageName)) {
+ expect.withMessage("Conflicting APK package " + packageName + " detected").fail();
+ }
+ }
+ }
+
+ /**
* Test that the MATCH_FACTORY_ONLY flag doesn't add the same package multiple times since there
* may be multiple versions of a system package on the device.
*/