Enforce overlayable API when defined

If a package defines overlayable resources, then do not allow resources
that are not defined as overlayable to be overlaid.

Bug:123600120
Test: idmap2_tests and cts-tradefed run cts -m CtsRROTestCases
Change-Id: I35120a97ccf4650e67c7ba65a60f4f3c51b0e627
diff --git a/cmds/idmap2/tests/FileUtilsTests.cpp b/cmds/idmap2/tests/FileUtilsTests.cpp
index 45f84fe..8514e12 100644
--- a/cmds/idmap2/tests/FileUtilsTests.cpp
+++ b/cmds/idmap2/tests/FileUtilsTests.cpp
@@ -40,9 +40,14 @@
                                const std::string& path ATTRIBUTE_UNUSED) -> bool { return true; });
   ASSERT_THAT(v, NotNull());
   ASSERT_EQ(v->size(), 6U);
-  ASSERT_EQ(std::set<std::string>(v->begin(), v->end()),
-            std::set<std::string>({root + "/.", root + "/..", root + "/overlay", root + "/target",
-                                   root + "/system-overlay", root + "/system-overlay-invalid"}));
+  ASSERT_EQ(std::set<std::string>(v->begin(), v->end()), std::set<std::string>({
+                                                             root + "/.",
+                                                             root + "/..",
+                                                             root + "/overlay",
+                                                             root + "/target",
+                                                             root + "/system-overlay",
+                                                             root + "/system-overlay-invalid",
+                                                         }));
 }
 
 TEST(FileUtilsTests, FindFilesFindApkFilesRecursive) {
@@ -51,13 +56,15 @@
     return type == DT_REG && path.size() > 4 && path.compare(path.size() - 4, 4, ".apk") == 0;
   });
   ASSERT_THAT(v, NotNull());
-  ASSERT_EQ(v->size(), 6U);
-  ASSERT_EQ(std::set<std::string>(v->begin(), v->end()),
-            std::set<std::string>({root + "/target/target.apk", root + "/overlay/overlay.apk",
-                                   root + "/overlay/overlay-static-1.apk",
-                                   root + "/overlay/overlay-static-2.apk",
-                                   root + "/system-overlay/system-overlay.apk",
-                                   root + "/system-overlay-invalid/system-overlay-invalid.apk"}));
+  ASSERT_EQ(v->size(), 9U);
+  ASSERT_EQ(
+      std::set<std::string>(v->begin(), v->end()),
+      std::set<std::string>(
+          {root + "/target/target.apk", root + "/target/target-no-overlayable.apk",
+           root + "/overlay/overlay.apk", root + "/overlay/overlay-no-name.apk",
+           root + "/overlay/overlay-no-name-static.apk", root + "/overlay/overlay-static-1.apk",
+           root + "/overlay/overlay-static-2.apk", root + "/system-overlay/system-overlay.apk",
+           root + "/system-overlay-invalid/system-overlay-invalid.apk"}));
 }
 
 TEST(FileUtilsTests, ReadFile) {