diff options
author | mikaelpeltier <mikaelpeltier@google.com> | 2014-10-14 13:47:56 +0200 |
---|---|---|
committer | mikaelpeltier <mikaelpeltier@google.com> | 2014-10-15 15:36:09 +0200 |
commit | 0bacdbb3a132123af75c2d68649bdde824977283 (patch) | |
tree | b00e269c36cc83690c01d87ad68e072988a257f7 /jack/tests | |
parent | a979eac7ce86b5eea1440ea892175c0321e1026c (diff) | |
download | toolchain_jack-0bacdbb3a132123af75c2d68649bdde824977283.tar.gz toolchain_jack-0bacdbb3a132123af75c2d68649bdde824977283.tar.bz2 toolchain_jack-0bacdbb3a132123af75c2d68649bdde824977283.zip |
Add InputLibraryLocation
Change-Id: Id4747e206396ede06814930158469e05d5e45f40
Diffstat (limited to 'jack/tests')
-rw-r--r-- | jack/tests/com/android/jack/ImportTest.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/jack/tests/com/android/jack/ImportTest.java b/jack/tests/com/android/jack/ImportTest.java index b07fd8b0..0d94c85c 100644 --- a/jack/tests/com/android/jack/ImportTest.java +++ b/jack/tests/com/android/jack/ImportTest.java @@ -18,6 +18,7 @@ package com.android.jack; import com.android.jack.backend.jayce.ImportConflictException; import com.android.jack.backend.jayce.JayceFileImporter; +import com.android.jack.backend.jayce.TypeImportConflictException; import junit.framework.Assert; @@ -90,4 +91,68 @@ public class ImportTest { TestTools.createTempFile("inner15", ".zip"), true); } + + @Test + public void testConflictingImportWithFailPolicy1() throws Exception { + String testName = "inner/test015"; + File lib = TestTools.createTempDir("inner15Lib", ""); + TestTools.compileSourceToJack( + new Options(), + TestTools.getJackTestLibFolder(testName), + TestTools.getDefaultBootclasspathString(), + lib, + false); + + Options options = new Options(); + options.addJayceImport(lib); + // import twice the same lib + options.addJayceImport(lib); + + options.addProperty(JayceFileImporter.COLLISION_POLICY.getName(), "fail"); + + try { + TestTools.compileSourceToDex(options, TestTools.getJackTestsWithJackFolder(testName), + TestTools.getDefaultBootclasspathString(), TestTools.createTempFile("inner15", ".zip"), + true); + Assert.fail(); + } catch (TypeImportConflictException e) { + // Exception is ok + } + } + + @Test + public void testConflictingImportWithFailPolicy2() throws Exception { + String testName = "inner/test015"; + File lib1 = TestTools.createTempDir("inner15Lib1", ""); + TestTools.compileSourceToJack( + new Options(), + TestTools.getJackTestLibFolder(testName), + TestTools.getDefaultBootclasspathString(), + lib1, + false); + + File lib2 = TestTools.createTempDir("inner15Lib2", ""); + TestTools.compileSourceToJack( + new Options(), + TestTools.getJackTestLibFolder(testName), + TestTools.getDefaultBootclasspathString(), + lib2, + false); + + Options options = new Options(); + options.addJayceImport(lib1); + // import twice the same lib + options.addJayceImport(lib2); + + options.addProperty(JayceFileImporter.COLLISION_POLICY.getName(), "fail"); + + try { + TestTools.compileSourceToDex(options, TestTools.getJackTestsWithJackFolder(testName), + TestTools.getDefaultBootclasspathString(), TestTools.createTempFile("inner15", ".zip"), + true); + Assert.fail(); + } catch (TypeImportConflictException e) { + // Exception is ok + } + } } |