diff options
author | Yohann Roussel <yroussel@google.com> | 2014-11-17 16:12:02 +0100 |
---|---|---|
committer | Yohann Roussel <yroussel@google.com> | 2014-11-24 16:12:29 +0000 |
commit | f4a7bc91980f0a4ea5cd40b4c0726400a2f158fb (patch) | |
tree | 42d9ceeb2c25153b3b2e3bc4c7b0638407917987 /jack/tests | |
parent | 59f0352ce20d695d92a9648edc0515dc7677ee5e (diff) | |
download | toolchain_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.java | 26 |
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; + } } |