summaryrefslogtreecommitdiffstats
path: root/jack/tests
diff options
context:
space:
mode:
authormikaelpeltier <mikaelpeltier@google.com>2014-10-14 13:47:56 +0200
committermikaelpeltier <mikaelpeltier@google.com>2014-10-15 15:36:09 +0200
commit0bacdbb3a132123af75c2d68649bdde824977283 (patch)
treeb00e269c36cc83690c01d87ad68e072988a257f7 /jack/tests
parenta979eac7ce86b5eea1440ea892175c0321e1026c (diff)
downloadtoolchain_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.java65
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
+ }
+ }
}