summaryrefslogtreecommitdiffstats
path: root/jack/tests
diff options
context:
space:
mode:
authorYohann Roussel <yroussel@google.com>2014-11-17 16:12:02 +0100
committerYohann Roussel <yroussel@google.com>2014-11-24 16:12:29 +0000
commitf4a7bc91980f0a4ea5cd40b4c0726400a2f158fb (patch)
tree42d9ceeb2c25153b3b2e3bc4c7b0638407917987 /jack/tests
parent59f0352ce20d695d92a9648edc0515dc7677ee5e (diff)
downloadtoolchain_jack-f4a7bc91980f0a4ea5cd40b4c0726400a2f158fb.zip
toolchain_jack-f4a7bc91980f0a4ea5cd40b4c0726400a2f158fb.tar.gz
toolchain_jack-f4a7bc91980f0a4ea5cd40b4c0726400a2f158fb.tar.bz2
Force annotated classes in main dex
When compiling for legacy multidex, keeps in main dex all classes annotated (or with a member annotated) by a runtime visible annotation. This is a rough workaround for https://code.google.com/p/android/issues/detail?id=78144 Bug: 18385117 Change-Id: If640a49842e8c7e1b9f9382dbc6f7335dac512ab
Diffstat (limited to 'jack/tests')
-rw-r--r--jack/tests/com/android/jack/multidex/MultiDexTests.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/jack/tests/com/android/jack/multidex/MultiDexTests.java b/jack/tests/com/android/jack/multidex/MultiDexTests.java
index 2edbb0b..20dfeec 100644
--- a/jack/tests/com/android/jack/multidex/MultiDexTests.java
+++ b/jack/tests/com/android/jack/multidex/MultiDexTests.java
@@ -448,4 +448,30 @@ public class MultiDexTests {
return;
}
+ /**
+ * Verifies that classes annotated with runtime visible annotations are put in main dex.
+ */
+ @Test
+ public void legacyAppTest003() throws Exception {
+
+ File testFolder = TestTools.getJackTestsWithJackFolder("multidex/test003");
+
+ File out = TestTools.createTempDir("out", "");
+ Options appOptions = new Options();
+ appOptions.addProperty(MultiDexLegacy.MULTIDEX_LEGACY.getName(), "true");
+ appOptions.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "minimal-multidex");
+
+ TestTools.compileSourceToDex(appOptions, testFolder, TestTools.getDefaultBootclasspathString()
+ + File.pathSeparator + annotations.getPath() + File.pathSeparator + frameworks.getPath(),
+ out, false);
+
+ File outList = getListingOfDex(new File(out, "classes.dex"));
+ ListingComparator.compare(
+ new File(testFolder,"ref-list-003-1.txt"), outList);
+ File outList2 = getListingOfDex(new File(out, "classes2.dex"));
+ ListingComparator.compare(
+ new File(testFolder,"ref-list-003-2.txt"), outList2);
+ Assert.assertFalse(new File(out, "classes3.dex").exists());
+ return;
+ }
}