private static BundleModule createSingleLibraryModule(String moduleName, String architecture) throws Exception { return createSingleLibraryModule( moduleName, architecture, "lib/" + architecture + "/libnoname.so"); }
@Test public void neverProducesMasterSplit() throws Exception { ModuleSplit inputSplit = ModuleSplit.forNativeLibraries( createSingleLibraryModule("testModule", "x86", "lib/x86/libnoname.so")); assertThat(inputSplit.isMasterSplit()).isTrue(); ImmutableCollection<ModuleSplit> splits = new AbiNativeLibrariesSplitter().split(inputSplit); assertThat(splits).hasSize(1); assertThat(splits.asList().get(0).isMasterSplit()).isFalse(); }
@Test public void manifestMutatorToRequireSplits_registered_whenAbisPresent() throws Exception { ModuleSplit inputSplit = ModuleSplit.forNativeLibraries( createSingleLibraryModule("testModule", "x86", "lib/x86/libnoname.so")); ImmutableCollection<ModuleSplit> splits = new AbiNativeLibrariesSplitter().split(inputSplit); assertThat(splits).hasSize(1); assertThat( compareManifestMutators( splits.asList().get(0).getMasterManifestMutators(), withSplitsRequired(true))) .isTrue(); }
@Test public void masterSplitIdEqualsToModuleName_nonBase() throws Exception { AbiNativeLibrariesSplitter abiNativeLibrariesSplitter = new AbiNativeLibrariesSplitter(); ImmutableCollection<ModuleSplit> splits = abiNativeLibrariesSplitter.split( ModuleSplit.forNativeLibraries(createSingleLibraryModule("testModule", "armeabi-v7a"))); assertThat(splits).hasSize(1); ModuleSplit armSplit = splits.asList().get(0); assertThat( armSplit .writeSplitIdInManifest(armSplit.getSuffix()) .getAndroidManifest() .getSplitId() .get()) .isEqualTo("testModule.config.armeabi_v7a"); }
@Test public void nativeSplitIdEqualsToModuleName_base() throws Exception { AbiNativeLibrariesSplitter abiNativeLibrariesSplitter = new AbiNativeLibrariesSplitter(); ImmutableCollection<ModuleSplit> splits = abiNativeLibrariesSplitter.split( ModuleSplit.forNativeLibraries(createSingleLibraryModule("base", "x86"))); assertThat(splits).hasSize(1); ModuleSplit x86Split = splits.asList().get(0); assertThat( x86Split .writeSplitIdInManifest(x86Split.getSuffix()) .getAndroidManifest() .getSplitId() .get()) .isEqualTo("config.x86"); }
@Test public void splittingByAbi() throws Exception { AbiNativeLibrariesSplitter abiNativeLibrariesSplitter = new AbiNativeLibrariesSplitter(); ImmutableCollection<ModuleSplit> splits = abiNativeLibrariesSplitter.split( ModuleSplit.forNativeLibraries( createSingleLibraryModule("testModule", "x86", "lib/x86/libnoname.so"))); assertThat(splits).hasSize(1); ModuleSplit x86Split = splits.asList().get(0); assertThat(x86Split.getApkTargeting()).isEqualTo(apkAbiTargeting(X86)); assertThat(x86Split.getVariantTargeting()).isEqualTo(lPlusVariantTargeting()); assertThat(extractPaths(x86Split.getEntries())).containsExactly("lib/x86/libnoname.so"); }