private static ApexImageTargeting buildApexTargetingWithAlternatives( MultiAbi targeting, Set<MultiAbi> allTargeting) { return ApexImageTargeting.newBuilder() .setMultiAbi( MultiAbiTargeting.newBuilder() .addValue(targeting) .addAllAlternatives( Sets.difference(allTargeting, ImmutableSet.of(targeting)).immutableCopy())) .build(); }
@Test public void apexImageTargeting() { ApexImageTargeting expected = ApexImageTargeting.newBuilder().setMultiAbi(MULTI_ABI_NO_ALTERNATIVES).build(); assertThat(TargetingUtils.apexImageTargeting("armeabi-v7a", "arm64-v8a")).isEqualTo(expected); }
/** Builds APEX image targeting (no alternatives) according to the Abi names. */ public static ApexImageTargeting apexImageTargeting(String... architectures) { MultiAbi.Builder multiAbi = MultiAbi.newBuilder(); Arrays.stream(architectures).forEach(abi -> multiAbi.addAbi(toAbi(abi))); return ApexImageTargeting.newBuilder() .setMultiAbi(MultiAbiTargeting.newBuilder().addValue(multiAbi)) .build(); }
@Test public void targetedApexImage() { ApexImageTargeting targeting = ApexImageTargeting.newBuilder().setMultiAbi(MULTI_ABI_WITH_ALTERNATIVES).build(); TargetedApexImage apexImage = TargetingUtils.targetedApexImage("path", targeting); assertThat(apexImage.getPath()).isEqualTo("path"); assertThat(apexImage.getTargeting()).ignoringRepeatedFieldOrder().isEqualTo(targeting); }
/** Builds APEX targeted image from the image file path and its multi-Abi targeting. */ public static TargetedApexImage targetedApexImage(String path, MultiAbiTargeting targeting) { ApexImageTargeting apexImageTargeting = ApexImageTargeting.newBuilder().setMultiAbi(targeting).build(); return TargetedApexImage.newBuilder().setPath(path).setTargeting(apexImageTargeting).build(); }