@@ -287,66 +287,26 @@ TEST(ResourceMappingTests, ResourcesFromApkAssetsNoDefinedOverlayableAndNoTarget
287287 R::overlay::string::str4, false /* rewrite */ ));
288288}
289289
290- // Overlays that are neither pre-installed nor signed with the same signature as the target cannot
291- // overlay packages that have not defined overlayable resources.
292- TEST (ResourceMappingTests, ResourcesFromApkAssetsDefaultPoliciesPublicFail) {
293- auto resources = TestGetResourceMapping (" /target/target-no-overlayable.apk" ,
294- " /overlay/overlay-no-name.apk" , PolicyFlags::PUBLIC,
295- /* enforce_overlayable */ true );
296-
297- ASSERT_TRUE (resources) << resources.GetErrorMessage ();
298- ASSERT_EQ (resources->GetTargetToOverlayMap ().size (), 0U );
299- }
300290
301- // Overlays that are pre-installed or are signed with the same signature as the target can overlay
302- // packages that have not defined overlayable resources.
291+ // Overlays that are pre-installed or are signed with the same signature as the target/actor can
292+ // overlay packages that have not defined overlayable resources.
303293TEST (ResourceMappingTests, ResourcesFromApkAssetsDefaultPolicies) {
304- auto CheckEntries = [&](const PolicyBitmask& fulfilled_policies) -> void {
294+ constexpr PolicyBitmask kDefaultPolicies =
295+ PolicyFlags::SIGNATURE | PolicyFlags::ACTOR_SIGNATURE | PolicyFlags::PRODUCT_PARTITION |
296+ PolicyFlags::SYSTEM_PARTITION | PolicyFlags::VENDOR_PARTITION | PolicyFlags::ODM_PARTITION |
297+ PolicyFlags::OEM_PARTITION;
298+
299+ for (PolicyBitmask policy = 1U << (sizeof (PolicyBitmask) * 8 - 1 ); policy > 0 ;
300+ policy = policy >> 1U ) {
305301 auto resources = TestGetResourceMapping (" /target/target-no-overlayable.apk" ,
306302 " /system-overlay-invalid/system-overlay-invalid.apk" ,
307- fulfilled_policies,
308- /* enforce_overlayable */ true );
309-
303+ policy, /* enforce_overlayable */ true );
310304 ASSERT_TRUE (resources) << resources.GetErrorMessage ();
311- auto & res = *resources;
312- ASSERT_EQ (resources->GetTargetToOverlayMap ().size (), 10U );
313- ASSERT_RESULT (MappingExists (res, R::target::string::not_overlayable, Res_value::TYPE_REFERENCE,
314- R::system_overlay_invalid::string::not_overlayable,
315- false /* rewrite */ ));
316- ASSERT_RESULT (MappingExists (res, R::target::string::other, Res_value::TYPE_REFERENCE,
317- R::system_overlay_invalid::string::other, false /* rewrite */ ));
318- ASSERT_RESULT (MappingExists (res, R::target::string::policy_actor, Res_value::TYPE_REFERENCE,
319- R::system_overlay_invalid::string::policy_actor,
320- false /* rewrite */ ));
321- ASSERT_RESULT (MappingExists (res, R::target::string::policy_odm, Res_value::TYPE_REFERENCE,
322- R::system_overlay_invalid::string::policy_odm,
323- false /* rewrite */ ));
324- ASSERT_RESULT (MappingExists (res, R::target::string::policy_oem, Res_value::TYPE_REFERENCE,
325- R::system_overlay_invalid::string::policy_oem,
326- false /* rewrite */ ));
327- ASSERT_RESULT (MappingExists (res, R::target::string::policy_product, Res_value::TYPE_REFERENCE,
328- R::system_overlay_invalid::string::policy_product,
329- false /* rewrite */ ));
330- ASSERT_RESULT (MappingExists (res, R::target::string::policy_public, Res_value::TYPE_REFERENCE,
331- R::system_overlay_invalid::string::policy_public,
332- false /* rewrite */ ));
333- ASSERT_RESULT (MappingExists (res, R::target::string::policy_signature, Res_value::TYPE_REFERENCE,
334- R::system_overlay_invalid::string::policy_signature,
335- false /* rewrite */ ));
336- ASSERT_RESULT (MappingExists (res, R::target::string::policy_system, Res_value::TYPE_REFERENCE,
337- R::system_overlay_invalid::string::policy_system,
338- false /* rewrite */ ));
339- ASSERT_RESULT (MappingExists (
340- res, R::target::string::policy_system_vendor, Res_value::TYPE_REFERENCE,
341- R::system_overlay_invalid::string::policy_system_vendor, false /* rewrite */ ));
342- };
343-
344- CheckEntries (PolicyFlags::SIGNATURE);
345- CheckEntries (PolicyFlags::PRODUCT_PARTITION);
346- CheckEntries (PolicyFlags::SYSTEM_PARTITION);
347- CheckEntries (PolicyFlags::VENDOR_PARTITION);
348- CheckEntries (PolicyFlags::ODM_PARTITION);
349- CheckEntries (PolicyFlags::OEM_PARTITION);
305+
306+ const size_t expected_overlaid = (policy & kDefaultPolicies ) != 0 ? 10U : 0U ;
307+ ASSERT_EQ (expected_overlaid, resources->GetTargetToOverlayMap ().size ())
308+ << " Incorrect number of resources overlaid through policy " << policy;
309+ }
350310}
351311
352312} // namespace android::idmap2
0 commit comments