From 704d6ada9a17111879fec62bd7063a8a8a687b72 Mon Sep 17 00:00:00 2001 From: kmb Date: Wed, 6 Dec 2017 14:28:31 -0800 Subject: Support inclusion filter in DexFileSplitter, with the same semantics as in ../ziputils/DexMapper. RELNOTES: None. PiperOrigin-RevId: 178153254 --- .../build/android/dexer/DexFileSplitterTest.java | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/test/java/com/google/devtools') diff --git a/src/test/java/com/google/devtools/build/android/dexer/DexFileSplitterTest.java b/src/test/java/com/google/devtools/build/android/dexer/DexFileSplitterTest.java index c2354ca134..29cd4c1645 100644 --- a/src/test/java/com/google/devtools/build/android/dexer/DexFileSplitterTest.java +++ b/src/test/java/com/google/devtools/build/android/dexer/DexFileSplitterTest.java @@ -99,6 +99,7 @@ public class DexFileSplitterTest { ImmutableList outputArchives = runDexSplitter( 200, + /*inclusionFilterJar=*/ null, "main_dex_list", MAIN_DEX_LIST_FILE, /*minimalMainDex=*/ false, @@ -117,6 +118,7 @@ public class DexFileSplitterTest { ImmutableList outputArchives = runDexSplitter( 256 * 256, + /*inclusionFilterJar=*/ null, "minimal_main_dex", MAIN_DEX_LIST_FILE, /*minimalMainDex=*/ true, @@ -129,6 +131,24 @@ public class DexFileSplitterTest { assertExpectedEntries(outputArchives, expectedEntries); } + @Test + public void testInclusionFilterJar() throws Exception { + Path dexArchive = buildDexArchive(); + Path dexArchive2 = buildDexArchive(INPUT_JAR2, "jar2.dex.zip"); + ImmutableList outputArchives = + runDexSplitter( + 256 * 256, + INPUT_JAR2, + "filtered", + /*mainDexList=*/ null, + /*minimalMainDex=*/ false, + dexArchive, + dexArchive2); + + // Only expect entries from the Jar we filtered by + assertExpectedEntries(outputArchives, dexEntries(dexArchive2)); + } + private static Iterable expectedMainDexEntries() throws IOException { return Iterables.transform( Files.readAllLines(MAIN_DEX_LIST_FILE), @@ -146,6 +166,7 @@ public class DexFileSplitterTest { try { runDexSplitter( 200, + /*inclusionFilterJar=*/ null, "should_fail", /*mainDexList=*/ null, /*minimalMainDex=*/ true, @@ -183,6 +204,7 @@ public class DexFileSplitterTest { Path... dexArchives) throws IOException { return runDexSplitter( maxNumberOfIdxPerDex, + /*inclusionFilterJar=*/ null, outputRoot, /*mainDexList=*/ null, /*minimalMainDex=*/ false, @@ -191,6 +213,7 @@ public class DexFileSplitterTest { private ImmutableList runDexSplitter( int maxNumberOfIdxPerDex, + @Nullable Path inclusionFilterJar, String outputRoot, @Nullable Path mainDexList, boolean minimalMainDex, @@ -203,6 +226,7 @@ public class DexFileSplitterTest { options.maxNumberOfIdxPerDex = maxNumberOfIdxPerDex; options.mainDexListFile = mainDexList; options.minimalMainDex = minimalMainDex; + options.inclusionFilterJar = inclusionFilterJar; DexFileSplitter.splitIntoShards(options); assertThat(options.outputDirectory.toFile().exists()).isTrue(); ImmutableSet files = -- cgit v1.2.3