summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jack-tests/src/com/android/jack/test/helper/CheckDexStructureTestHelper.java4
-rw-r--r--jack-tests/src/com/android/jack/test/helper/JackDexMergerTestHelper.java11
-rw-r--r--jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java17
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java7
-rw-r--r--jack-tests/tests/com/android/jack/AllTests.java4
-rw-r--r--jack-tests/tests/com/android/jack/classpath/ClasspathTests.java32
-rw-r--r--jack-tests/tests/com/android/jack/compile/androidtree/AllTests.java (renamed from jack/tests/com/android/jack/compile/androidtree/AllTests.java)0
-rw-r--r--jack-tests/tests/com/android/jack/compile/androidtree/bouncycastle/BouncycastleCompilationTest.java (renamed from jack/tests/com/android/jack/compile/androidtree/bouncycastle/BouncycastleCompilationTest.java)53
-rw-r--r--jack-tests/tests/com/android/jack/compile/androidtree/core/CoreCompilationTest.java (renamed from jack/tests/com/android/jack/compile/androidtree/core/CoreCompilationTest.java)71
-rw-r--r--jack-tests/tests/com/android/jack/compile/androidtree/dalvik/AllTests.java (renamed from jack/tests/com/android/jack/compile/androidtree/dalvik/AllTests.java)0
-rw-r--r--jack-tests/tests/com/android/jack/compile/androidtree/dalvik/compilerregressions/CompilerRegressionsTest.java (renamed from jack/tests/com/android/jack/compile/androidtree/dalvik/compilerregressions/CompilerRegressionsTest.java)15
-rw-r--r--jack-tests/tests/com/android/jack/compile/androidtree/dalvik/finalizer/FinalizerTest.java (renamed from jack/tests/com/android/jack/compile/androidtree/dalvik/finalizer/FinalizerTest.java)15
-rw-r--r--jack-tests/tests/com/android/jack/compile/androidtree/dalvik/omnibus/OmnibusCompilationTest.java (renamed from jack/tests/com/android/jack/compile/androidtree/dalvik/omnibus/OmnibusCompilationTest.java)15
-rw-r--r--jack-tests/tests/com/android/jack/compile/androidtree/ext/ExtCompilationTest.java (renamed from jack/tests/com/android/jack/compile/androidtree/ext/ExtCompilationTest.java)44
-rw-r--r--jack-tests/tests/com/android/jack/compile/androidtree/frameworks/FrameworksBaseCompilationTest.java (renamed from jack/tests/com/android/jack/compile/androidtree/frameworks/FrameworksBaseCompilationTest.java)35
-rw-r--r--jack-tests/tests/com/android/jack/library/LibraryTests.java120
-rw-r--r--jack-tests/tests/com/android/jack/multidex/MultiDexTests.java133
-rw-r--r--jack-tests/tests/com/android/jack/noclasspath/NoClasspathTest.java206
-rw-r--r--jack-tests/tests/com/android/jack/shrob/FlattenPackageTests.java2
-rw-r--r--jack-tests/tests/com/android/jack/toolchain/ToolchainTest.java164
-rw-r--r--jack/tests/com/android/jack/AllTests.java5
-rw-r--r--jack/tests/com/android/jack/NoClasspathTest.java182
-rw-r--r--jack/tests/com/android/jack/ToolchainTest.java151
-rw-r--r--jack/tests/com/android/jack/WithPhantomTest.java224
-rw-r--r--jack/tests/com/android/jack/library/LibraryTest.java116
25 files changed, 727 insertions, 899 deletions
diff --git a/jack-tests/src/com/android/jack/test/helper/CheckDexStructureTestHelper.java b/jack-tests/src/com/android/jack/test/helper/CheckDexStructureTestHelper.java
index d00d367..296f371 100644
--- a/jack-tests/src/com/android/jack/test/helper/CheckDexStructureTestHelper.java
+++ b/jack-tests/src/com/android/jack/test/helper/CheckDexStructureTestHelper.java
@@ -48,13 +48,13 @@ public class CheckDexStructureTestHelper extends SourceToDexComparisonTestHelper
@Override
@Nonnull
- public CheckDexStructureTestHelper setCandidateClasspath(@Nonnull File[] classpath) {
+ public CheckDexStructureTestHelper setCandidateClasspath(@Nonnull File... classpath) {
return (CheckDexStructureTestHelper) super.setCandidateClasspath(classpath);
}
@Override
@Nonnull
- public CheckDexStructureTestHelper setReferenceClasspath(@Nonnull File[] classpath) {
+ public CheckDexStructureTestHelper setReferenceClasspath(@Nonnull File... classpath) {
return (CheckDexStructureTestHelper) super.setReferenceClasspath(classpath);
}
diff --git a/jack-tests/src/com/android/jack/test/helper/JackDexMergerTestHelper.java b/jack-tests/src/com/android/jack/test/helper/JackDexMergerTestHelper.java
index 5c2b17c..3b2dfea 100644
--- a/jack-tests/src/com/android/jack/test/helper/JackDexMergerTestHelper.java
+++ b/jack-tests/src/com/android/jack/test/helper/JackDexMergerTestHelper.java
@@ -18,7 +18,6 @@ package com.android.jack.test.helper;
import com.android.jack.Options;
import com.android.jack.backend.dex.rop.CodeItemBuilder;
-import com.android.jack.test.comparator.Comparator;
import com.android.jack.test.comparator.ComparatorComposite;
import com.android.jack.test.comparator.ComparatorDex;
import com.android.jack.test.comparator.ComparatorDexAnnotations;
@@ -75,9 +74,7 @@ public class JackDexMergerTestHelper extends SourceToDexComparisonTestHelper {
return toolchain;
}
- @Override
- @Nonnull
- public Comparator createDexFileComparator() {
+ public void compare() throws Exception {
ComparatorDex comparatorDex = new ComparatorDex(candidateDex, refDex);
comparatorDex.setWithDebugInfo(false);
comparatorDex.setStrict(true);
@@ -87,10 +84,6 @@ public class JackDexMergerTestHelper extends SourceToDexComparisonTestHelper {
ComparatorDexAnnotations comparatorAnnotations =
new ComparatorDexAnnotations(candidateDex, refDex);
ComparatorDiff comparatorDiff = new ComparatorDiff(candidateDex, refDex);
- return new ComparatorComposite(comparatorDex, comparatorAnnotations, comparatorDiff);
- }
-
- public void compare() throws Exception {
- runTest(createDexFileComparator());
+ runTest(new ComparatorComposite(comparatorDex, comparatorAnnotations, comparatorDiff));
}
}
diff --git a/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java b/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java
index 87db1be..2f78c17 100644
--- a/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java
+++ b/jack-tests/src/com/android/jack/test/helper/SourceToDexComparisonTestHelper.java
@@ -16,10 +16,10 @@
package com.android.jack.test.helper;
-import com.android.jack.test.comparator.Comparator;
import com.android.jack.test.comparator.ComparatorDex;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.AndroidToolchain;
+import com.android.jack.test.toolchain.Toolchain.SourceLevel;
import java.io.File;
@@ -55,6 +55,9 @@ public class SourceToDexComparisonTestHelper extends GenericComparisonTestHelper
private File[] proguardFlagFiles = new File[0];
@Nonnull
+ private SourceLevel sourceLevel = SourceLevel.JAVA_6;
+
+ @Nonnull
private AndroidToolchain candidateTestTools;
@Nonnull
private AndroidToolchain referenceTestTools;
@@ -103,13 +106,13 @@ public class SourceToDexComparisonTestHelper extends GenericComparisonTestHelper
}
@Nonnull
- public SourceToDexComparisonTestHelper setCandidateClasspath(@Nonnull File[] classpath) {
+ public SourceToDexComparisonTestHelper setCandidateClasspath(@Nonnull File... classpath) {
candidateClasspath = classpath;
return this;
}
@Nonnull
- public SourceToDexComparisonTestHelper setReferenceClasspath(@Nonnull File[] classpath) {
+ public SourceToDexComparisonTestHelper setReferenceClasspath(@Nonnull File... classpath) {
referenceClasspath = classpath;
return this;
}
@@ -120,6 +123,10 @@ public class SourceToDexComparisonTestHelper extends GenericComparisonTestHelper
return this;
}
+ public void setSourceLevel(SourceLevel sourceLevel) {
+ this.sourceLevel = sourceLevel;
+ }
+
public File getCandidateDex() {
return candidateDex;
}
@@ -137,7 +144,7 @@ public class SourceToDexComparisonTestHelper extends GenericComparisonTestHelper
}
@Nonnull
- public Comparator createDexFileComparator() {
+ public ComparatorDex createDexFileComparator() {
ComparatorDex comparator = new ComparatorDex(candidateDex, refDex);
comparator.setWithDebugInfo(withDebugInfos);
comparator.setStrict(false);
@@ -166,6 +173,7 @@ public class SourceToDexComparisonTestHelper extends GenericComparisonTestHelper
candidateTestTools.setJarjarRules(jarjarRulesFile);
}
candidateTestTools.setWithDebugInfos(withDebugInfos);
+ candidateTestTools.setSourceLevel(sourceLevel);
candidateTestTools.addProguardFlags(proguardFlagFiles).srcToExe(
AbstractTestTools.getClasspathAsString(candidateClasspath), candidateDexDir,
/* zipFile = */ false, filesOrSourceList);
@@ -178,6 +186,7 @@ public class SourceToDexComparisonTestHelper extends GenericComparisonTestHelper
referenceTestTools.setJarjarRules(jarjarRulesFile);
}
referenceTestTools.setWithDebugInfos(withDebugInfos);
+ referenceTestTools.setSourceLevel(sourceLevel);
referenceTestTools.addProguardFlags(proguardFlagFiles).srcToExe(
AbstractTestTools.getClasspathAsString(referenceClasspath), refDexDir,
/* zipFile = */ false, filesOrSourceList);
diff --git a/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
index 42e816b..289412a 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/LegacyToolchain.java
@@ -212,6 +212,10 @@ public class LegacyToolchain extends AndroidToolchain {
args.add("-verbose");
}
addSourceLevel(sourceLevel, args);
+
+ args.add("-encoding");
+ args.add("utf8");
+
args.add("-noExit");
args.add("-preserveAllLocals");
args.add("-d");
@@ -263,6 +267,9 @@ public class LegacyToolchain extends AndroidToolchain {
addSourceLevel(sourceLevel, arguments);
+ arguments.add("-encoding");
+ arguments.add("utf8");
+
if (annotationProcessorClass != null) {
arguments.add("-processor");
arguments.add(annotationProcessorClass.getName());
diff --git a/jack-tests/tests/com/android/jack/AllTests.java b/jack-tests/tests/com/android/jack/AllTests.java
index 52e1362..1ad2bd6 100644
--- a/jack-tests/tests/com/android/jack/AllTests.java
+++ b/jack-tests/tests/com/android/jack/AllTests.java
@@ -37,7 +37,7 @@ import com.android.jack.invoke.InvokeTests;
import com.android.jack.jarjar.JarjarTests;
import com.android.jack.java7.Java7AllTest;
import com.android.jack.label.LabelTest;
-import com.android.jack.library.LibraryTest;
+import com.android.jack.library.LibraryTests;
import com.android.jack.lookup.LookupTests;
import com.android.jack.multidex.MultiDexAllTests;
import com.android.jack.newarray.NewarrayTests;
@@ -105,7 +105,7 @@ import org.junit.runners.Suite.SuiteClasses;
InvokeTests.class,
Java7AllTest.class,
LabelTest.class,
- LibraryTest.class,
+ LibraryTests.class,
LookupTests.class,
MergerAllTests.class,
MissingClassTest.class,
diff --git a/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java b/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java
index d563d35..7ec0a20 100644
--- a/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java
+++ b/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java
@@ -151,24 +151,16 @@ public class ClasspathTests {
JackApiToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchain.class);
String defaultClasspath =
AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath());
- File srcDir = AbstractTestTools.getTestRootDir("com.android.jack.classpath/test004");
+ File srcDir = AbstractTestTools.getTestRootDir("com.android.jack.classpath.test004.jack");
String classpathWithMissingEntry = defaultClasspath + File.pathSeparator +
new File(srcDir, "missing.jack").getAbsolutePath();
File testOut = AbstractTestTools.createTempFile("ClasspathTest", "missing");
- toolchain.srcToLib(
- classpathWithMissingEntry,
- testOut,
- /* zipFiles = */ true,
- srcDir);
+ toolchain.srcToLib(classpathWithMissingEntry, testOut, /* zipFiles = */ true, srcDir);
toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchain.class);
toolchain.addProperty(Jack.STRICT_CLASSPATH.getName(), "true");
try {
- toolchain.srcToLib(
- classpathWithMissingEntry,
- testOut,
- /* zipFiles = */ true,
- srcDir);
+ toolchain.srcToLib(classpathWithMissingEntry, testOut, /* zipFiles = */ true, srcDir);
Assert.fail();
} catch (JackAbortException e) {
Assert.assertTrue(e.getCause() instanceof LibraryReadingException);
@@ -186,26 +178,20 @@ public class ClasspathTests {
private void compileWithInvalidClasspathEntry(File srcDir, File invalidJack) throws IOException,
Exception {
Assert.assertTrue(invalidJack.isFile());
+
JackApiToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchain.class);
String classpathWithInvalidEntry =
- AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath()) +
- File.pathSeparator + invalidJack.getAbsolutePath();
+ AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ + File.pathSeparator + invalidJack.getAbsolutePath();
File testOut = AbstractTestTools.createTempFile("ClasspathTest", "invalid");
- toolchain.srcToLib(
- classpathWithInvalidEntry,
- testOut,
- /* zipFile = */ true,
- srcDir);
+ toolchain.srcToLib(classpathWithInvalidEntry, testOut, /* zipFiles = */ true, srcDir);
toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchain.class);
toolchain.addProperty(Jack.STRICT_CLASSPATH.getName(), "true");
+
try {
- toolchain.srcToLib(
- classpathWithInvalidEntry,
- testOut,
- /* zipFiles = */ true,
- srcDir);
+ toolchain.srcToLib(classpathWithInvalidEntry, testOut, /* zipFiles = */ true, srcDir);
Assert.fail();
} catch (JackAbortException e) {
Assert.assertTrue(e.getCause() instanceof LibraryReadingException);
diff --git a/jack/tests/com/android/jack/compile/androidtree/AllTests.java b/jack-tests/tests/com/android/jack/compile/androidtree/AllTests.java
index ec3bacc..ec3bacc 100644
--- a/jack/tests/com/android/jack/compile/androidtree/AllTests.java
+++ b/jack-tests/tests/com/android/jack/compile/androidtree/AllTests.java
diff --git a/jack/tests/com/android/jack/compile/androidtree/bouncycastle/BouncycastleCompilationTest.java b/jack-tests/tests/com/android/jack/compile/androidtree/bouncycastle/BouncycastleCompilationTest.java
index e098477..3768888 100644
--- a/jack/tests/com/android/jack/compile/androidtree/bouncycastle/BouncycastleCompilationTest.java
+++ b/jack-tests/tests/com/android/jack/compile/androidtree/bouncycastle/BouncycastleCompilationTest.java
@@ -17,11 +17,14 @@
package com.android.jack.compile.androidtree.bouncycastle;
import com.android.jack.JarJarRules;
-import com.android.jack.Options;
-import com.android.jack.ProguardFlags;
import com.android.jack.TestTools;
import com.android.jack.category.RedundantTests;
import com.android.jack.category.SlowTests;
+import com.android.jack.test.comparator.ComparatorDex;
+import com.android.jack.test.helper.CheckDexStructureTestHelper;
+import com.android.jack.test.helper.SourceToDexComparisonTestHelper;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
import org.junit.BeforeClass;
import org.junit.Ignore;
@@ -34,6 +37,7 @@ import java.io.File;
public class BouncycastleCompilationTest {
private static File[] CLASSPATH;
+ private static File[] REF_CLASSPATH;
private static File SOURCELIST;
@@ -44,8 +48,12 @@ public class BouncycastleCompilationTest {
BouncycastleCompilationTest.class.getClassLoader().setDefaultAssertionStatus(true);
CLASSPATH = new File[] {
TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.zip")
+ "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.jack")
};
+ REF_CLASSPATH = new File[] {
+ TestTools.getFromAndroidTree(
+ "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.jar")
+ };
SOURCELIST = TestTools.getTargetLibSourcelist("bouncycastle");
JARJAR_RULES = new JarJarRules(
TestTools.getFromAndroidTree("external/bouncycastle/jarjar-rules.txt"));
@@ -54,31 +62,30 @@ public class BouncycastleCompilationTest {
@Test
@Category(RedundantTests.class)
public void compileBouncycastle() throws Exception {
- File outDexFolder = TestTools.createTempDir("bouncycastle", ".dex");
- Options options = new Options();
- options.disableDxOptimizations();
- TestTools.compileSourceToDex(options,
- SOURCELIST,
- TestTools.getClasspathAsString(CLASSPATH),
+ File outDexFolder = AbstractTestTools.createTempDir();
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.disableDxOptimizations();
+ toolchain.srcToExe(
+ AbstractTestTools.getClasspathAsString(CLASSPATH),
outDexFolder,
- false /* zip */,
- JARJAR_RULES,
- null /* flagFiles */,
- false /* emitDebugInfo */);
+ /* zipFile = */ false,
+ SOURCELIST);
}
@Test
@Category(SlowTests.class)
public void compareBouncycastleStructure() throws Exception {
- TestTools.checkStructure(
- new Options(),
- /* classpath = */ null,
- /* refClasspath = */ null,
- SOURCELIST,
- /* compareDebugInfoBinary = */ false,
- /* compareInstructionNumber = */ true,
- 0.4f,
- JARJAR_RULES,
- (ProguardFlags[]) null);
+ SourceToDexComparisonTestHelper helper = new CheckDexStructureTestHelper(SOURCELIST);
+ // TODO(jmhenaff): use setBootclasspath
+ helper.setCandidateClasspath(CLASSPATH);
+ helper.setReferenceClasspath(REF_CLASSPATH);
+ helper.setJarjarRulesFile(JARJAR_RULES);
+
+ ComparatorDex comparator = helper.createDexFileComparator();
+ comparator.setCompareDebugInfoBinary(false);
+ comparator.setCompareInstructionNumber(true);
+ comparator.setInstructionNumberTolerance(0.4f);
+
+ helper.runTest(comparator);
}
}
diff --git a/jack/tests/com/android/jack/compile/androidtree/core/CoreCompilationTest.java b/jack-tests/tests/com/android/jack/compile/androidtree/core/CoreCompilationTest.java
index 1341c43..8d3631d 100644
--- a/jack/tests/com/android/jack/compile/androidtree/core/CoreCompilationTest.java
+++ b/jack-tests/tests/com/android/jack/compile/androidtree/core/CoreCompilationTest.java
@@ -18,14 +18,18 @@ package com.android.jack.compile.androidtree.core;
import com.android.jack.DexAnnotationsComparator;
import com.android.jack.DexComparator;
-import com.android.jack.JarJarRules;
import com.android.jack.Options;
-import com.android.jack.ProguardFlags;
import com.android.jack.TestTools;
import com.android.jack.backend.dex.DexFileWriter;
import com.android.jack.category.RedundantTests;
import com.android.jack.category.SlowTests;
import com.android.jack.config.id.JavaVersionPropertyId.JavaVersion;
+import com.android.jack.test.comparator.ComparatorDex;
+import com.android.jack.test.helper.CheckDexStructureTestHelper;
+import com.android.jack.test.helper.SourceToDexComparisonTestHelper;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.JackBasedToolchain;
+import com.android.jack.test.toolchain.Toolchain.SourceLevel;
import com.android.sched.vfs.Container;
import org.junit.BeforeClass;
@@ -49,48 +53,59 @@ public class CoreCompilationTest {
@Test
@Category(RedundantTests.class)
public void compileCore() throws Exception {
- File outDexFolder = TestTools.createTempDir("core", ".dex");
- Options options = new Options();
- options.addProperty(Options.JAVA_SOURCE_VERSION.getName(), JavaVersion.JAVA_7.toString());
- TestTools.compileSourceToDex(options, SOURCELIST, null, outDexFolder, false);
+ File outDexFolder = AbstractTestTools.createTempDir();
+ JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.addProperty(Options.JAVA_SOURCE_VERSION.getName(), JavaVersion.JAVA_7.toString());
+ toolchain.srcToExe(
+ AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath()),
+ outDexFolder,
+ /* zipFile = */ false,
+ SOURCELIST);
}
@Test
public void compareLibCoreStructure() throws Exception {
- Options options = new Options();
- options.addProperty(Options.JAVA_SOURCE_VERSION.getName(), JavaVersion.JAVA_7.toString());
- TestTools.checkStructure(options,
- /* classpath = */ null,
- /* refClasspath = */ null,
- SOURCELIST,
- /* withDebugInfo = */ false,
- /* compareInstructionNumber = */ false,
- 0.1f,
- (JarJarRules) null,
- (ProguardFlags[]) null);
+ SourceToDexComparisonTestHelper helper = new CheckDexStructureTestHelper(SOURCELIST);
+ helper.setCandidateClasspath(/* empty */);
+ helper.setReferenceClasspath(/* empty */);
+ helper.setSourceLevel(SourceLevel.JAVA_7);
+
+ ComparatorDex comparator = helper.createDexFileComparator();
+ comparator.setCompareDebugInfoBinary(false);
+ comparator.setCompareInstructionNumber(false);
+ comparator.setInstructionNumberTolerance(0.1f);
+
+ helper.runTest(comparator);
}
@Test
@Category(SlowTests.class)
public void compileCoreWithJackAndDex() throws Exception {
- File coreDexFolderFromJava = TestTools.createTempDir("coreFromJava", "dex");
+ File coreDexFolderFromJava = AbstractTestTools.createTempDir();
File coreDexFromJava = new File(coreDexFolderFromJava, DexFileWriter.DEX_FILENAME);
- Options options = new Options();
- options.addProperty(Options.GENERATE_JACK_LIBRARY.getName(), "true");
+ JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.addProperty(Options.GENERATE_JACK_LIBRARY.getName(), "true");
+
File outputFile = new File("/tmp/jackIncrementalOutput");
- options.addProperty(
+
+ toolchain.addProperty(
Options.DEX_OUTPUT_CONTAINER_TYPE.getName(), Container.DIR.toString());
- options.addProperty(Options.LIBRARY_OUTPUT_DIR.getName(), outputFile.getAbsolutePath());
- options.addProperty(
+ toolchain.addProperty(Options.LIBRARY_OUTPUT_DIR.getName(), outputFile.getAbsolutePath());
+ toolchain.addProperty(
Options.LIBRARY_OUTPUT_CONTAINER_TYPE.getName(), Container.DIR.toString());
- options.addProperty(Options.JAVA_SOURCE_VERSION.getName(), JavaVersion.JAVA_7.toString());
- TestTools.compileSourceToDex(options, SOURCELIST, null, coreDexFolderFromJava, false);
+ toolchain.setSourceLevel(SourceLevel.JAVA_7);
+
+ toolchain.srcToExe(
+ /* classpath = */ null,
+ coreDexFolderFromJava,
+ /* zipFile = */ false,
+ SOURCELIST);
- File coreDexFolderFromJack = TestTools.createTempDir("coreFromJack", "dex");
+ File coreDexFolderFromJack = AbstractTestTools.createTempDir();
File coreDexFromJack = new File(coreDexFolderFromJack, DexFileWriter.DEX_FILENAME);
- TestTools.compileJackToDex(new Options(), outputFile, coreDexFolderFromJack,
- false);
+ toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.libToExe(outputFile, coreDexFolderFromJack, /* zipFile = */ false);
// Compare dex files structures and number of instructions
new DexComparator(false /* withDebugInfo */, false /* strict */,
diff --git a/jack/tests/com/android/jack/compile/androidtree/dalvik/AllTests.java b/jack-tests/tests/com/android/jack/compile/androidtree/dalvik/AllTests.java
index dab444a..dab444a 100644
--- a/jack/tests/com/android/jack/compile/androidtree/dalvik/AllTests.java
+++ b/jack-tests/tests/com/android/jack/compile/androidtree/dalvik/AllTests.java
diff --git a/jack/tests/com/android/jack/compile/androidtree/dalvik/compilerregressions/CompilerRegressionsTest.java b/jack-tests/tests/com/android/jack/compile/androidtree/dalvik/compilerregressions/CompilerRegressionsTest.java
index 63ea06e..ab98c40 100644
--- a/jack/tests/com/android/jack/compile/androidtree/dalvik/compilerregressions/CompilerRegressionsTest.java
+++ b/jack-tests/tests/com/android/jack/compile/androidtree/dalvik/compilerregressions/CompilerRegressionsTest.java
@@ -16,8 +16,9 @@
package com.android.jack.compile.androidtree.dalvik.compilerregressions;
-import com.android.jack.Options;
import com.android.jack.TestTools;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
import org.junit.BeforeClass;
import org.junit.Ignore;
@@ -34,14 +35,16 @@ public class CompilerRegressionsTest {
public static void setUpClass() {
CompilerRegressionsTest.class.getClassLoader().setDefaultAssertionStatus(true);
BOOTCLASSPATH = new File[] {TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.zip")};
+ "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.jack")};
}
@Test
public void compileRegressions() throws Exception {
- File out = TestTools.createTempFile("out", ".zip");
- String classpath = TestTools.getClasspathAsString(BOOTCLASSPATH);
- TestTools.compileSourceToDex(new Options(),
- TestTools.getArtTestFolder("083-compiler-regressions"), classpath, out, /* zip = */ true);
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToExe(
+ AbstractTestTools.getClasspathAsString(BOOTCLASSPATH),
+ AbstractTestTools.createTempFile("out", ".zip"),
+ /* zipFile = */ true,
+ TestTools.getArtTestFolder("083-compiler-regressions"));
}
}
diff --git a/jack/tests/com/android/jack/compile/androidtree/dalvik/finalizer/FinalizerTest.java b/jack-tests/tests/com/android/jack/compile/androidtree/dalvik/finalizer/FinalizerTest.java
index 8704893..e5d2f45 100644
--- a/jack/tests/com/android/jack/compile/androidtree/dalvik/finalizer/FinalizerTest.java
+++ b/jack-tests/tests/com/android/jack/compile/androidtree/dalvik/finalizer/FinalizerTest.java
@@ -16,8 +16,9 @@
package com.android.jack.compile.androidtree.dalvik.finalizer;
-import com.android.jack.Options;
import com.android.jack.TestTools;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
import org.junit.BeforeClass;
import org.junit.Ignore;
@@ -34,14 +35,16 @@ public class FinalizerTest {
public static void setUpClass() {
FinalizerTest.class.getClassLoader().setDefaultAssertionStatus(true);
BOOTCLASSPATH = new File[] {TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.zip")};
+ "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.jack")};
}
@Test
public void compileFinalizer() throws Exception {
- File out = TestTools.createTempFile("out", ".zip");
- String classpath = TestTools.getClasspathAsString(BOOTCLASSPATH);
- TestTools.compileSourceToDex(new Options(), TestTools.getArtTestFolder("036-finalizer"),
- classpath, out, /* zip = */ true);
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToExe(
+ AbstractTestTools.getClasspathAsString(BOOTCLASSPATH),
+ AbstractTestTools.createTempFile("out", ".zip"),
+ /* zipFile = */ true,
+ TestTools.getArtTestFolder("036-finalizer"));
}
}
diff --git a/jack/tests/com/android/jack/compile/androidtree/dalvik/omnibus/OmnibusCompilationTest.java b/jack-tests/tests/com/android/jack/compile/androidtree/dalvik/omnibus/OmnibusCompilationTest.java
index ac768f0..6164b2d 100644
--- a/jack/tests/com/android/jack/compile/androidtree/dalvik/omnibus/OmnibusCompilationTest.java
+++ b/jack-tests/tests/com/android/jack/compile/androidtree/dalvik/omnibus/OmnibusCompilationTest.java
@@ -16,9 +16,10 @@
package com.android.jack.compile.androidtree.dalvik.omnibus;
-import com.android.jack.Options;
import com.android.jack.TestTools;
import com.android.jack.category.SlowTests;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
import org.junit.BeforeClass;
import org.junit.Ignore;
@@ -36,15 +37,17 @@ public class OmnibusCompilationTest {
public static void setUpClass() {
OmnibusCompilationTest.class.getClassLoader().setDefaultAssertionStatus(true);
BOOTCLASSPATH = new File[] {TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.zip")};
+ "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.jack")};
}
@Test
@Category(SlowTests.class)
public void compileOmnibus() throws Exception {
- File out = TestTools.createTempFile("out", ".zip");
- String classpath = TestTools.getClasspathAsString(BOOTCLASSPATH);
- TestTools.compileSourceToDex(new Options(),
- TestTools.getArtTestFolder("003-omnibus-opcodes"), classpath, out, /* zip = */ true);
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToExe(
+ AbstractTestTools.getClasspathAsString(BOOTCLASSPATH),
+ AbstractTestTools.createTempFile("out", ".zip"),
+ /* zipFile = */ true,
+ TestTools.getArtTestFolder("003-omnibus-opcodes"));
}
}
diff --git a/jack/tests/com/android/jack/compile/androidtree/ext/ExtCompilationTest.java b/jack-tests/tests/com/android/jack/compile/androidtree/ext/ExtCompilationTest.java
index 9248a5a..55f1e03 100644
--- a/jack/tests/com/android/jack/compile/androidtree/ext/ExtCompilationTest.java
+++ b/jack-tests/tests/com/android/jack/compile/androidtree/ext/ExtCompilationTest.java
@@ -16,12 +16,14 @@
package com.android.jack.compile.androidtree.ext;
-import com.android.jack.JarJarRules;
-import com.android.jack.Options;
-import com.android.jack.ProguardFlags;
import com.android.jack.TestTools;
import com.android.jack.category.RedundantTests;
import com.android.jack.category.SlowTests;
+import com.android.jack.test.comparator.ComparatorDex;
+import com.android.jack.test.helper.CheckDexStructureTestHelper;
+import com.android.jack.test.helper.SourceToDexComparisonTestHelper;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
import org.junit.BeforeClass;
import org.junit.Ignore;
@@ -34,6 +36,7 @@ import java.io.File;
public class ExtCompilationTest {
private static File[] CLASSPATH;
+ private static File[] REF_CLASSPATH;
private static File SOURCELIST;
@@ -42,7 +45,11 @@ public class ExtCompilationTest {
ExtCompilationTest.class.getClassLoader().setDefaultAssertionStatus(true);
CLASSPATH = new File[] {
TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.zip")
+ "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.jack")
+ };
+ REF_CLASSPATH = new File[] {
+ TestTools.getFromAndroidTree(
+ "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.jar")
};
SOURCELIST = TestTools.getTargetLibSourcelist("ext");
}
@@ -50,22 +57,27 @@ public class ExtCompilationTest {
@Test
@Category(RedundantTests.class)
public void compileExt() throws Exception {
- File outDexFolder = TestTools.createTempDir("ext", ".dex");
- TestTools.compileSourceToDex(new Options(), SOURCELIST,
- TestTools.getClasspathAsString(CLASSPATH), outDexFolder, false);
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToExe(
+ AbstractTestTools.getClasspathAsString(CLASSPATH),
+ AbstractTestTools.createTempDir(),
+ /* zipFile = */ false,
+ SOURCELIST);
}
@Test
@Category(SlowTests.class)
public void compareExtStructure() throws Exception {
- TestTools.checkStructure(new Options(),
- /* classpath = */ null,
- /* refClasspath = */ null,
- SOURCELIST,
- /* compareDebugInfoBinary = */ false,
- /* compareInstructionNumber = */ true,
- 0.4f,
- (JarJarRules) null,
- (ProguardFlags[]) null);
+ // TODO(jmhenaff): use setBootclasspath
+ SourceToDexComparisonTestHelper helper = new CheckDexStructureTestHelper(SOURCELIST);
+ helper.setCandidateClasspath(CLASSPATH);
+ helper.setReferenceClasspath(REF_CLASSPATH);
+
+ ComparatorDex comparator = helper.createDexFileComparator();
+ comparator.setCompareDebugInfoBinary(false);
+ comparator.setCompareInstructionNumber(true);
+ comparator.setInstructionNumberTolerance(0.4f);
+
+ helper.runTest(comparator);
}
}
diff --git a/jack/tests/com/android/jack/compile/androidtree/frameworks/FrameworksBaseCompilationTest.java b/jack-tests/tests/com/android/jack/compile/androidtree/frameworks/FrameworksBaseCompilationTest.java
index b12b7cb..0ba3671 100644
--- a/jack/tests/com/android/jack/compile/androidtree/frameworks/FrameworksBaseCompilationTest.java
+++ b/jack-tests/tests/com/android/jack/compile/androidtree/frameworks/FrameworksBaseCompilationTest.java
@@ -16,11 +16,12 @@
package com.android.jack.compile.androidtree.frameworks;
-import com.android.jack.Options;
import com.android.jack.TestTools;
import com.android.jack.backend.dex.DexFileWriter;
import com.android.jack.category.SlowTests;
-import com.android.jack.config.id.JavaVersionPropertyId.JavaVersion;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.JackBasedToolchain;
+import com.android.jack.test.toolchain.Toolchain.SourceLevel;
import org.junit.BeforeClass;
import org.junit.Ignore;
@@ -43,35 +44,33 @@ public class FrameworksBaseCompilationTest {
FrameworksBaseCompilationTest.class.getClassLoader().setDefaultAssertionStatus(true);
BOOTCLASSPATH = new File[] {
TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.zip")
+ "out/target/common/obj/JAVA_LIBRARIES/core-libart_intermediates/classes.jack")
};
CLASSPATH = new File[] {
TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/conscrypt_intermediates/classes.zip"),
+ "out/target/common/obj/JAVA_LIBRARIES/conscrypt_intermediates/classes.jack"),
TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/okhttp_intermediates/classes.zip"),
+ "out/target/common/obj/JAVA_LIBRARIES/okhttp_intermediates/classes.jack"),
TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/core-junit_intermediates/classes.zip"),
+ "out/target/common/obj/JAVA_LIBRARIES/core-junit_intermediates/classes.jack"),
TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.zip"),
+ "out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.jack"),
TestTools.getFromAndroidTree(
- "out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.zip")};
+ "out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.jack")};
SOURCELIST = TestTools.getTargetLibSourcelist("framework");
}
@Test
@Category(SlowTests.class)
public void compileFrameworks() throws Exception {
- File outDexFolder = TestTools.createTempDir("frameworks", "dex");
- String classpathString = TestTools.getClasspathsAsString(BOOTCLASSPATH, CLASSPATH);
-
- Options options = new Options();
- options.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "multidex");
- options.addProperty(Options.JAVA_SOURCE_VERSION.getName(), JavaVersion.JAVA_7.toString());
- TestTools.compileSourceToDex(options,
- SOURCELIST,
- classpathString,
+ File outDexFolder = AbstractTestTools.createTempDir();
+ JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.setSourceLevel(SourceLevel.JAVA_7);
+ toolchain.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "multidex");
+ toolchain.srcToExe(
+ AbstractTestTools.getClasspathsAsString(BOOTCLASSPATH, CLASSPATH),
outDexFolder,
- false);
+ /* zipFile = */ false,
+ SOURCELIST);
}
}
diff --git a/jack-tests/tests/com/android/jack/library/LibraryTests.java b/jack-tests/tests/com/android/jack/library/LibraryTests.java
new file mode 100644
index 0000000..eddf344
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/library/LibraryTests.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.library;
+
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
+import com.android.jack.test.toolchain.JackBasedToolchain;
+import com.android.sched.util.RunnableHooks;
+import com.android.sched.util.file.FileOrDirectory.ChangePermission;
+import com.android.sched.util.file.FileOrDirectory.Existence;
+import com.android.sched.util.file.InputZipFile;
+import com.android.sched.vfs.InputVFS;
+import com.android.sched.vfs.InputZipVFS;
+
+import junit.framework.Assert;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.annotation.Nonnull;
+
+public class LibraryTests {
+ @BeforeClass
+ public static void setUpClass() {
+ LibraryTests.class.getClassLoader().setDefaultAssertionStatus(true);
+ }
+
+ @Test
+ public void testEmptyLibraryInClassPath() throws Exception {
+ File emptyLib = createEmptyLibrary();
+
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ + File.pathSeparator + emptyLib.getPath(),
+ AbstractTestTools.createTempFile("library001", ".jack"), /* zipFile = */
+ true, AbstractTestTools.getTestRootDir("com.android.jack.library.test001.jack"));
+ }
+
+ @Test
+ public void testRscLibraryInClassPath() throws Exception {
+ File emptyLib = createRscLibrary();
+
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ + File.pathSeparator + emptyLib.getPath(),
+ AbstractTestTools.createTempFile("library001", ".jack"), /* zipFile = */
+ true, AbstractTestTools.getTestRootDir("com.android.jack.library.test001.jack"));
+ }
+
+ @Test
+ public void testImportEmptyLibrary() throws Exception {
+ File lib = createEmptyLibrary();
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.addStaticLibs(lib);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath()),
+ AbstractTestTools.createTempFile("library001", ".jack"), /* zipFile = */
+ true, AbstractTestTools.getTestRootDir("com.android.jack.library.test001.jack"));
+ }
+
+ @Test
+ public void testImportRscLibrary() throws Exception {
+ File lib = createRscLibrary();
+ File out = AbstractTestTools.createTempFile("library001", ".jack");
+
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.addStaticLibs(lib);
+ toolchain.srcToLib(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath()),
+ out, /* zipFile = */
+ true, AbstractTestTools.getTestRootDir("com.android.jack.library.test001.jack"));
+
+ RunnableHooks hooks = new RunnableHooks();
+ InputVFS vfs = new InputZipVFS(
+ new InputZipFile(out.getPath(), hooks, Existence.MUST_EXIST, ChangePermission.NOCHANGE));
+ try {
+ InputJackLibrary inputJackLibrary = JackLibraryFactory.getInputLibrary(vfs);
+ Assert.assertTrue(inputJackLibrary.containsFileType(FileType.RSC));
+ } finally {
+ vfs.close();
+ }
+ }
+
+ @Nonnull
+ private File createEmptyLibrary() throws IOException, Exception {
+ File emptyLib = AbstractTestTools.createTempFile("empty", ".jack");
+
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToLib(/* classpath = */ null, emptyLib, /* zipFiles = */ true);
+
+ return emptyLib;
+ }
+
+ @Nonnull
+ private File createRscLibrary() throws IOException, Exception {
+ File emptyLib = AbstractTestTools.createTempFile("rsc", ".jack");
+
+ JackBasedToolchain toolchain =
+ AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.addResource(AbstractTestTools.getTestRootDir("com.android.jack.library.test001.lib"));
+ toolchain.srcToLib(/* classpath = */ null, emptyLib, /* zipFiles = */ true);
+
+ return emptyLib;
+ }
+}
diff --git a/jack-tests/tests/com/android/jack/multidex/MultiDexTests.java b/jack-tests/tests/com/android/jack/multidex/MultiDexTests.java
index e462024..89bb95f 100644
--- a/jack-tests/tests/com/android/jack/multidex/MultiDexTests.java
+++ b/jack-tests/tests/com/android/jack/multidex/MultiDexTests.java
@@ -19,8 +19,6 @@ package com.android.jack.multidex;
import com.google.common.io.Files;
import com.android.jack.DifferenceFoundException;
-import com.android.jack.Options;
-import com.android.jack.TestTools;
import com.android.jack.backend.dex.DexFileWriter;
import com.android.jack.backend.dex.MultiDexLegacy;
import com.android.jack.dx.io.ClassDef;
@@ -37,6 +35,7 @@ import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.DummyToolchain;
import com.android.jack.test.toolchain.IToolchain;
import com.android.jack.test.toolchain.JackApiToolchain;
+import com.android.jack.test.toolchain.JackBasedToolchain;
import com.android.sched.util.TextUtils;
import junit.framework.Assert;
@@ -168,74 +167,61 @@ public class MultiDexTests {
@Test
public void versionedTest001a_withoutAnnotations() throws Exception {
+ File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.multidex.test001.jack");
+ File out = AbstractTestTools.createTempDir();
+ JackApiToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchain.class);
+ addCommonOptionsForMultiDex(toolchain, new File(testFolder, "config-001.jpp"));
- File testFolder = TestTools.getJackTestsWithJackFolder("multidex/test001");
- File out = TestTools.createTempDir("out", "");
- Options app1Options = addCommonOptionsForMultiDex(new File(testFolder, "config-001.jpp"));
-
- app1Options.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "multidex");
+ toolchain.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "multidex");
- TestTools.compileSourceToDex(app1Options, testFolder, TestTools.getDefaultClasspathString()
- + File.pathSeparator + frameworks.getPath(),
- out, false);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ + File.pathSeparator + frameworks.getPath(), out, /* zipFile = */false, testFolder);
String outList = getListingOfDex(new File(out, "classes.dex"));
ListingComparator.compare(new File(testFolder, "ref-list-001.txt"), outList);
Assert.assertFalse(new File(out, "classes2.dex").exists());
- return;
}
@Test
public void versionedTest001b_minimal_withoutAnnotations() throws Exception {
+ File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.multidex.test001.jack");
+ File out = AbstractTestTools.createTempDir();
+ JackApiToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchain.class);
+ addCommonOptionsForMultiDex(toolchain, new File(testFolder, "config-001.jpp"));
- File testFolder = TestTools.getJackTestsWithJackFolder("multidex/test001");
- File out = TestTools.createTempDir("out", "");
- Options app1Options = addCommonOptionsForMultiDex(new File(testFolder, "config-001.jpp"));
-
- app1Options.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "minimal-multidex");
+ toolchain.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "minimal-multidex");
- TestTools.compileSourceToDex(app1Options, testFolder, TestTools.getDefaultClasspathString()
- + File.pathSeparator + frameworks.getPath(),
- out, false);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ + File.pathSeparator + frameworks.getPath(), out, /* zipFile = */false, testFolder);
String outList = getListingOfDex(new File(out, "classes.dex"));
ListingComparator.compare(new File(testFolder, "ref-list-002-1.txt"), outList);
String outList2 = getListingOfDex(new File(out, "classes2.dex"));
ListingComparator.compare(new File(testFolder, "ref-list-002-2.txt"), outList2);
Assert.assertFalse(new File(out, "classes3.dex").exists());
- return;
}
@Test
public void versionedTest001c_withoutAnnotations() throws Exception {
- File testFolder = TestTools.getJackTestsWithJackFolder("multidex/test001");
- File out = TestTools.createTempDir("out", "");
- Options app1Options = addCommonOptionsForMultiDex(new File(testFolder, "config-003.jpp"));
+ File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.multidex.test001.jack");
+ File out = AbstractTestTools.createTempDir();
+ JackApiToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchain.class);
+ addCommonOptionsForMultiDex(toolchain, new File(testFolder, "config-003.jpp"));
- app1Options.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "minimal-multidex");
+ toolchain.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "minimal-multidex");
- TestTools.compileSourceToDex(app1Options, testFolder, TestTools.getDefaultClasspathString()
- + File.pathSeparator + frameworks.getPath(),
- out, false);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ + File.pathSeparator + frameworks.getPath(), out, /* zipFile = */false, testFolder);
String outList = getListingOfDex(new File(out, "classes.dex"));
ListingComparator.compare(new File(testFolder, "ref-list-003-1.txt"), outList);
String 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;
}
- private Options addCommonOptionsForMultiDex(@Nonnull File configFile) {
- Options app1Options = new Options();
- app1Options.addProperty(MultiDexLegacy.MULTIDEX_LEGACY.getName(), "true");
- app1Options.addProperty(PreProcessor.ENABLE.getName(), "true");
- app1Options.addProperty(PreProcessor.FILE.getName(), configFile.getAbsolutePath());
- return app1Options;
- }
-
- private void addCommonOptionsForMultiDex(@Nonnull JackApiToolchain toolchain,
+ private void addCommonOptionsForMultiDex(@Nonnull JackBasedToolchain toolchain,
@Nonnull File configFile) {
toolchain.addProperty(MultiDexLegacy.MULTIDEX_LEGACY.getName(), "true");
toolchain.addProperty(PreProcessor.ENABLE.getName(), "true");
@@ -409,16 +395,17 @@ public class MultiDexTests {
@Test
@Category(SlowTests.class)
public void legacyAppTest002a_withoutAnnotations() throws Exception {
+ File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.multidex.test002.jack");
+ File out = AbstractTestTools.createTempDir();
+
+ JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ addCommonOptionsForMultiDex(toolchain, new File(testFolder,"config-001.jpp"));
- File testFolder = TestTools.getJackTestsWithJackFolder("multidex/test002");
- File out = TestTools.createTempDir("out", "");
- Options app1Options = addCommonOptionsForMultiDex(
- new File(testFolder,"config-001.jpp"));
- app1Options.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "multidex");
+ toolchain.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "multidex");
- TestTools.compileSourceToDex(app1Options, testFolder, TestTools.getDefaultClasspathString()
- + File.pathSeparator + frameworks.getPath()
- + File.pathSeparator + library.getPath(), out, false);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ + File.pathSeparator + frameworks.getPath() + File.pathSeparator + library.getPath(), out,
+ /* zipFile = */ false, testFolder);
File classesDex = new File(out, "classes.dex");
Assert.assertTrue(classesDex.exists());
@@ -428,23 +415,22 @@ public class MultiDexTests {
Assert.assertFalse(classes3Dex.exists());
int totalTypeNumber = getTypeCountInDex(classesDex) + getTypeCountInDex(classes2Dex);
Assert.assertEquals(100, totalTypeNumber);
- return;
}
@Test
@Category(SlowTests.class)
public void legacyAppTest002b_withoutAnnotations() throws Exception {
+ File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.multidex.test002.jack");
+ File out = AbstractTestTools.createTempDir();
- File testFolder = TestTools.getJackTestsWithJackFolder("multidex/test002");
- File out = TestTools.createTempDir("out", "");
- Options app1Options = addCommonOptionsForMultiDex(
- new File(testFolder,"config-001.jpp"));
- app1Options.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "minimal-multidex");
- app1Options.addImportedLibrary(library);
+ JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ addCommonOptionsForMultiDex(toolchain, new File(testFolder,"config-001.jpp"));
- TestTools.compileSourceToDex(app1Options, testFolder, TestTools.getDefaultClasspathString()
- + File.pathSeparator + frameworks.getPath(),
- out, false);
+ toolchain.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "minimal-multidex");
+ toolchain.addStaticLibs(library);
+
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath()) + File.pathSeparator + frameworks.getPath(),
+ out, /* zipFile = */ false, testFolder);
String outList = getListingOfDex(new File(out, "classes.dex"));
// The old toolchain is doing a little better than us here it seems to identify when
@@ -455,28 +441,25 @@ public class MultiDexTests {
ListingComparator.compare(
new File(testFolder,"ref-list-002-2.txt"), outList2);
Assert.assertFalse(new File(out, "classes3.dex").exists());
- return;
}
@Test
public void legacyAppTest002b_auto_withoutAnnotations() throws Exception {
-
- File testFolder = TestTools.getJackTestsWithJackFolder("multidex/test002");
+ File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.multidex.test002.jack");
File autoLibrary = prepareLibrary(frameworks);
setMetaIntoJackProperties(autoLibrary);
File jackInf = new File(autoLibrary, FileType.JPP.getPrefix());
Assert.assertTrue(jackInf.mkdir());
Files.copy(new File(testFolder,"config-001.jpp"), new File(jackInf, "config-001.jpp"));
- File out = TestTools.createTempDir("out", "");
- Options app1Options = new Options();
- app1Options.addProperty(MultiDexLegacy.MULTIDEX_LEGACY.getName(), "true");
- app1Options.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "minimal-multidex");
- app1Options.addImportedLibrary(autoLibrary);
+ File out = AbstractTestTools.createTempDir();
+ JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.addProperty(MultiDexLegacy.MULTIDEX_LEGACY.getName(), "true");
+ toolchain.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "minimal-multidex");
+ toolchain.addStaticLibs(autoLibrary);
- TestTools.compileSourceToDex(app1Options, testFolder, TestTools.getDefaultClasspathString()
- + File.pathSeparator + frameworks.getPath(),
- out, false);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ + File.pathSeparator + frameworks.getPath(), out, /* zipFile = */ false, testFolder);
String outList = getListingOfDex(new File(out, "classes.dex"));
// The old toolchain is doing a little better than us here it seems to identify when
@@ -487,7 +470,6 @@ public class MultiDexTests {
ListingComparator.compare(
new File(testFolder,"ref-list-002-2.txt"), outList2);
Assert.assertFalse(new File(out, "classes3.dex").exists());
- return;
}
/**
@@ -495,17 +477,15 @@ public class MultiDexTests {
*/
@Test
public void annotatedTest003() throws Exception {
+ File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.multidex.test003.jack");
+ File out = AbstractTestTools.createTempDir();
+ JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.addProperty(MultiDexLegacy.MULTIDEX_LEGACY.getName(), "true");
+ toolchain.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "minimal-multidex");
- 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.getDefaultClasspathString()
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ File.pathSeparator + annotations.getPath() + File.pathSeparator + frameworks.getPath(),
- out, false);
+ /* zipFile = */ out, false, testFolder);
String outList = getListingOfDex(new File(out, "classes.dex"));
ListingComparator.compare(
@@ -514,6 +494,5 @@ public class MultiDexTests {
ListingComparator.compare(
new File(testFolder,"ref-list-003-2.txt"), outList2);
Assert.assertFalse(new File(out, "classes3.dex").exists());
- return;
}
}
diff --git a/jack-tests/tests/com/android/jack/noclasspath/NoClasspathTest.java b/jack-tests/tests/com/android/jack/noclasspath/NoClasspathTest.java
new file mode 100644
index 0000000..ee11ba6
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/noclasspath/NoClasspathTest.java
@@ -0,0 +1,206 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.noclasspath;
+
+import com.android.jack.JarJarRules;
+import com.android.jack.Sourcelist;
+import com.android.jack.TestTools;
+import com.android.jack.backend.dex.DexFileWriter;
+import com.android.jack.category.SlowTests;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
+import com.android.jack.test.toolchain.JackBasedToolchain;
+import com.android.jack.test.toolchain.Toolchain.SourceLevel;
+
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+import java.io.File;
+
+@Ignore("Tree")
+@Category(SlowTests.class)
+public class NoClasspathTest {
+
+ private static Sourcelist CORE_SOURCELIST;
+
+ private static Sourcelist BOUNCY_SOURCELIST;
+
+ private static Sourcelist CONSCRYPT_SOURCELIST;
+
+ private static Sourcelist OKHTTP_SOURCELIST;
+
+ private static Sourcelist EXT_SOURCELIST;
+
+ private static Sourcelist CORE_JUNIT_SOURCELIST;
+
+ private static Sourcelist FRAMEWORK_SOURCELIST;
+
+ protected static File FRAMEWORK_JAR ;
+
+ private static File GUAVA_JAR;
+
+ private static File SERVICES_JAR;
+
+ private static File ARITY_JAR;
+
+ private static File PLAY_SERVICE_JAR;
+
+ private static String corePath;
+
+ @BeforeClass
+ public static void setup() throws Exception {
+ CORE_SOURCELIST = TestTools.getTargetLibSourcelist("core-libart");
+ BOUNCY_SOURCELIST = TestTools.getTargetLibSourcelist("bouncycastle");
+ CONSCRYPT_SOURCELIST = TestTools.getTargetLibSourcelist("conscrypt");
+ OKHTTP_SOURCELIST = TestTools.getTargetLibSourcelist("okhttp");
+ EXT_SOURCELIST = TestTools.getTargetLibSourcelist("ext");
+ CORE_JUNIT_SOURCELIST =
+ TestTools.getTargetLibSourcelist("core-junit");
+ FRAMEWORK_SOURCELIST =
+ TestTools.getTargetLibSourcelist("framework");
+
+ FRAMEWORK_JAR = TestTools.getFromAndroidTree(
+ "/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/" + "classes.jack");
+
+ GUAVA_JAR = TestTools
+ .getFromAndroidTree("out/target/common/obj/JAVA_LIBRARIES/guava_intermediates/classes.jack");
+ SERVICES_JAR = TestTools
+ .getFromAndroidTree("out/target/common/obj/JAVA_LIBRARIES/services_intermediates/"
+ + "classes.jack");
+ ARITY_JAR = TestTools
+ .getFromAndroidTree("out/target/common/obj/JAVA_LIBRARIES/libarity_intermediates/"
+ + "classes.jack");
+ PLAY_SERVICE_JAR = TestTools
+ .getFromAndroidTree("out/target/common/obj/JAVA_LIBRARIES/"
+ + "google-play-services-first-party_intermediates/classes.jack");
+
+
+ // File coreOut = AbstractTestTools.createTempFile("core", ".jack");
+ File coreOut = new File("/tmp/ + core.jack");
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.setSourceLevel(SourceLevel.JAVA_7);
+ toolchain.srcToLib(
+ /* classpath = */ null,
+ coreOut,
+ /* zipFile = */ true,
+ CORE_SOURCELIST);
+ corePath = coreOut.getAbsolutePath();
+ }
+
+ @Test
+ public void ext() throws Exception {
+ File extJack = AbstractTestTools.createTempFile("ext", ".jack");
+
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToLib(corePath, extJack, /* zipFiles = */ true, EXT_SOURCELIST);
+
+ File extFolder = AbstractTestTools.createTempDir();
+ toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(extJack, extFolder, /* zipFile = */ false);
+ }
+
+ @Test
+ public void frameworkFromJack() throws Exception {
+ File conscryptJack = AbstractTestTools.createTempFile("conscrypt", ".jack");
+ JackBasedToolchain toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.srcToLib(corePath, conscryptJack, /* zipFiles = */ true, CONSCRYPT_SOURCELIST);
+
+ File conscryptRenamedJack = AbstractTestTools.createTempFile("conscryptrenamed", ".jack");
+ File conscyptRules =
+ new JarJarRules(TestTools.getFromAndroidTree("external/conscrypt/jarjar-rules.txt"));
+ toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.setJarjarRules(conscyptRules);
+ toolchain.libToLib(conscryptJack, conscryptRenamedJack, /* zipFiles = */ true);
+
+ File okhttpJack = AbstractTestTools.createTempFile("okkttp", ".jack");
+ toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.srcToLib(corePath + File.pathSeparatorChar + conscryptRenamedJack.getAbsolutePath(),
+ okhttpJack, /* zipFiles = */ true, OKHTTP_SOURCELIST);
+
+ File okhttpRenamedJack = AbstractTestTools.createTempFile("okhttprenamed", ".jack");
+ File okhttpRules =
+ new JarJarRules(TestTools.getFromAndroidTree("external/okhttp/jarjar-rules.txt"));
+ toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.setJarjarRules(okhttpRules);
+ toolchain.libToLib(okhttpJack, okhttpRenamedJack, /* zipFiles = */ true);
+
+ File extJack = AbstractTestTools.createTempFile("ext", ".jack");
+ toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.srcToLib(corePath, extJack, /* zipFiles = */ true, EXT_SOURCELIST);
+
+ File bouncyCastleJack = AbstractTestTools.createTempFile("bouncyjack", ".jack");
+ toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.srcToLib(corePath, bouncyCastleJack, /* zipFiles = */ true, BOUNCY_SOURCELIST);
+
+ File coreJunitJack = AbstractTestTools.createTempFile("corejunitjack", ".jack");
+ toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.srcToLib(corePath, coreJunitJack, /* zipFiles = */ true, CORE_JUNIT_SOURCELIST);
+
+ File bouncyCastleRenamedJack = AbstractTestTools.createTempFile("bouncyjackrenamed", ".jack");
+ File jarjarRules =
+ new JarJarRules(TestTools.getFromAndroidTree("external/bouncycastle/jarjar-rules.txt"));
+ toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.setJarjarRules(jarjarRules);
+ toolchain.libToLib(bouncyCastleJack, bouncyCastleRenamedJack, /* zipFiles = */ true);
+
+ String classpath = corePath + File.pathSeparatorChar + conscryptRenamedJack.getAbsolutePath()
+ + File.pathSeparatorChar + okhttpRenamedJack.getAbsolutePath()
+ + File.pathSeparatorChar + extJack.getAbsolutePath()
+ + File.pathSeparatorChar + bouncyCastleRenamedJack.getAbsolutePath()
+ + File.pathSeparatorChar + coreJunitJack.getAbsolutePath();
+
+ File frameworkJackZip = AbstractTestTools.createTempFile("framework", ".jack");
+ toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.setSourceLevel(SourceLevel.JAVA_7);
+ toolchain.srcToLib(classpath, frameworkJackZip, /* zipFiles = */ true, FRAMEWORK_SOURCELIST);
+
+ toolchain = AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "multidex");
+ File frameworkDexFolder = TestTools.createTempDir("framework", "dex");
+ toolchain.libToExe(frameworkJackZip, frameworkDexFolder, /* zipFile = */ false);
+ }
+
+ @Test
+ public void guava() throws Exception {
+ File guavaDexFolder = AbstractTestTools.createTempDir();
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(GUAVA_JAR, guavaDexFolder, /* zipFile = */ false);
+ }
+
+ @Test
+ public void services() throws Exception {
+ File servicesDexFolder = AbstractTestTools.createTempDir();
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(SERVICES_JAR, servicesDexFolder, /* zipFile = */ false);
+ }
+
+ @Test
+ public void arity() throws Exception {
+ File arityDexFolder = AbstractTestTools.createTempDir();
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(ARITY_JAR, arityDexFolder, /* zipFile = */ false);
+ }
+
+ @Test
+ public void playservices() throws Exception {
+ File playServiceDexFolder = AbstractTestTools.createTempDir();
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(PLAY_SERVICE_JAR, playServiceDexFolder, /* zipFile = */ false);
+ }
+}
diff --git a/jack-tests/tests/com/android/jack/shrob/FlattenPackageTests.java b/jack-tests/tests/com/android/jack/shrob/FlattenPackageTests.java
index a07b3c9..c59e2d7 100644
--- a/jack-tests/tests/com/android/jack/shrob/FlattenPackageTests.java
+++ b/jack-tests/tests/com/android/jack/shrob/FlattenPackageTests.java
@@ -66,7 +66,7 @@ public class FlattenPackageTests extends AbstractTest {
// TODO(jmhenaff): Find a way to avoid this line?
// This removes JUnit from default cp, otherwise this tests seems endless
- env.setCandidateClasspath(new File[] {toolchain.getDefaultBootClasspath()[0]});
+ env.setCandidateClasspath(toolchain.getDefaultBootClasspath()[0]);
env.runTest(new ComparatorMapping(refOutputMapping, candidateOutputMapping));
}
diff --git a/jack-tests/tests/com/android/jack/toolchain/ToolchainTest.java b/jack-tests/tests/com/android/jack/toolchain/ToolchainTest.java
new file mode 100644
index 0000000..6f13e90
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/toolchain/ToolchainTest.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.toolchain;
+
+import com.android.jack.ProguardFlags;
+import com.android.jack.Sourcelist;
+import com.android.jack.TestTools;
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
+import com.android.jack.test.toolchain.Toolchain.SourceLevel;
+
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests that test different steps of the Jack toolchain.
+ * These tests only rely on the Android tree for source lists.
+ * They are supposed to be run in test-jack (ideally before each commit).
+ */
+@Ignore("Tree")
+public class ToolchainTest {
+
+ private static Sourcelist CORE_SOURCELIST;
+
+ private static Sourcelist BOUNCY_SOURCELIST;
+
+ private static Sourcelist JUNIT_SOURCELIST;
+
+ private static File corePath;
+
+ @BeforeClass
+ public static void setup() throws Exception {
+ CORE_SOURCELIST = TestTools.getTargetLibSourcelist("core-libart");
+ BOUNCY_SOURCELIST =
+ TestTools.getTargetLibSourcelist("bouncycastle");
+ JUNIT_SOURCELIST = TestTools.getHostLibSourcelist("junit4-hostdex-jack");
+
+ File coreOut = AbstractTestTools.createTempFile("core", ".jack");
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.setSourceLevel(SourceLevel.JAVA_7);
+ toolchain.srcToLib(/* classpath = */ null, coreOut, /* zipFiles = */ true, CORE_SOURCELIST);
+ corePath = coreOut;
+ }
+
+ @Test
+ public void shrobTestNoZip() throws Exception {
+ File shrobTestJackOut = AbstractTestTools.createTempDir();
+ File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.shrob.test001");
+ File sourceDir = new File(testFolder, "jack");
+ String classpath = corePath.getAbsolutePath();
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToLib(classpath, shrobTestJackOut, /* zipFiles = */ false, sourceDir);
+
+ File shrobTestShrunkOut = AbstractTestTools.createTempDir();
+ List<ProguardFlags> flagFiles = new ArrayList<ProguardFlags>();
+ flagFiles.add(new ProguardFlags(testFolder, "proguard.flags001"));
+ flagFiles.add(new ProguardFlags(testFolder, "proguard.flags004"));
+ toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToLib(shrobTestJackOut, shrobTestShrunkOut, /* zipFiles = */ false);
+
+ File shrobTestDexOutFolder = AbstractTestTools.createTempDir();
+ toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(shrobTestShrunkOut, shrobTestDexOutFolder, /* zipFile = */ false);
+ }
+
+ @Test
+ public void shrobTestZip() throws Exception {
+ File shrobTestJackOut = AbstractTestTools.createTempFile("shrobtest", ".jack");
+ File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.shrob.test001");
+ File sourceDir = new File(testFolder, "jack");
+ String classpath = corePath.getAbsolutePath();
+
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToLib(classpath, shrobTestJackOut, /* zipFiles = */ true, sourceDir);
+
+ File shrobTestShrunkOut = AbstractTestTools.createTempFile("shrunk", ".jack");
+ List<ProguardFlags> flagFiles = new ArrayList<ProguardFlags>();
+ flagFiles.add(new ProguardFlags(testFolder, "proguard.flags001"));
+ flagFiles.add(new ProguardFlags(testFolder, "proguard.flags004"));
+ toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToLib(shrobTestJackOut, shrobTestShrunkOut, /* zipFiles = */ true);
+
+ File shrobTestDexOut = AbstractTestTools.createTempFile("shrobbed", ".dex.zip");
+ toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(shrobTestShrunkOut, shrobTestDexOut, /* zipFile = */ true);
+ }
+
+ @Test
+ public void bouncyCastle() throws Exception {
+ File bouncyCastleJack = AbstractTestTools.createTempFile("bouncyjack", ".jack");
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToLib(corePath.getAbsolutePath(), bouncyCastleJack, /* zipFiles = */ true,
+ BOUNCY_SOURCELIST);
+
+ File bouncyCastleOutFolder = AbstractTestTools.createTempDir();
+ toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(bouncyCastleJack, bouncyCastleOutFolder, /* zipFile = */ false);
+ }
+
+ @Test
+ public void core() throws Exception {
+ File coreOutFolder = AbstractTestTools.createTempDir();
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(corePath, coreOutFolder, /* zipFile = */ false);
+ }
+
+ @Test
+ public void junit() throws Exception {
+ File junitJack = AbstractTestTools.createTempFile("junit", ".zip");
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToLib(corePath.getAbsolutePath()
+ + File.pathSeparator + TestTools.getFromAndroidTree(
+ "out/host/common/obj/JAVA_LIBRARIES/hamcrest-core-hostdex-jack_intermediates/classes.jack"),
+ junitJack, /* zipFiles = */ true, JUNIT_SOURCELIST);
+
+ File junitOutFolder = AbstractTestTools.createTempDir();
+ toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(junitJack, junitOutFolder, /* zipFile = */ false);
+ }
+
+ @Test
+ public void jarjarTest() throws Exception {
+ File jarjarTestJackOut = AbstractTestTools.createTempFile("jarjartest", ".jack");
+ File testFolder = AbstractTestTools.getTestRootDir("com.android.jack.jarjar.test003");
+ File sourceDir = new File(testFolder, "jack");
+ String classpath = corePath.getAbsolutePath();
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToLib(classpath, jarjarTestJackOut, /* zipFiles = */ true, sourceDir);
+
+ File dalvikAnnotations = TestTools.getFromAndroidTree("libcore/dalvik/src/main/java/");
+ File dalvikAnnotationsJackOut = AbstractTestTools.createTempFile("dalvikannotations", ".jack");
+ toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToLib(classpath, dalvikAnnotationsJackOut, /* zipFiles = */ true, dalvikAnnotations);
+
+ File jarjarTestRenamedOut = AbstractTestTools.createTempFile("jarjartestrenamed", ".jack");
+ File jarjarRules = new File(testFolder, "jarjar-rules.txt");
+ toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.setJarjarRules(jarjarRules);
+ toolchain.libToLib(jarjarTestJackOut, jarjarTestRenamedOut, /* zipFiles = */ true);
+
+ File jarjarTestDexOutFolder = AbstractTestTools.createTempDir();
+ toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.libToExe(jarjarTestRenamedOut, jarjarTestDexOutFolder, /* zipFile = */ false);
+ }
+}
diff --git a/jack/tests/com/android/jack/AllTests.java b/jack/tests/com/android/jack/AllTests.java
index 68d6759..74ae783 100644
--- a/jack/tests/com/android/jack/AllTests.java
+++ b/jack/tests/com/android/jack/AllTests.java
@@ -36,8 +36,6 @@ import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses(value = {
com.android.jack.cfg.AllTests.class,
- com.android.jack.compile.androidtree.AllTests.class,
- com.android.jack.compile.androidtree.dalvik.AllTests.class,
com.android.jack.frontend.AllTests.class,
com.android.jack.gwt.AllTests.class,
com.android.jack.shrob.AllTests.class,
@@ -52,17 +50,14 @@ import org.junit.runners.Suite.SuiteClasses;
MarkerCollectorTest.class,
/* MultiDexOverflowTests.class, */
/* MultiDexTests.class, */
- NoClasspathTest.class,
PreProcessorTest.class,
// ReachingDefsTest.class,
RopRegisterManagerTest.class,
StaticValuesTest.class,
StringSplittingTest.class,
- ToolchainTest.class,
Types.class,
UnaryTest.class,
UselessCastRemoverTest.class,
- WithPhantomTest.class,
TracingTest.class})
public class AllTests {
}
diff --git a/jack/tests/com/android/jack/NoClasspathTest.java b/jack/tests/com/android/jack/NoClasspathTest.java
deleted file mode 100644
index aee0f33..0000000
--- a/jack/tests/com/android/jack/NoClasspathTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.jack;
-
-import com.android.jack.backend.dex.DexFileWriter;
-import com.android.jack.category.SlowTests;
-import com.android.jack.config.id.JavaVersionPropertyId.JavaVersion;
-
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.io.File;
-
-@Ignore("Tree")
-@Category(SlowTests.class)
-public class NoClasspathTest {
-
- private static Sourcelist CORE_SOURCELIST;
-
- private static Sourcelist BOUNCY_SOURCELIST;
-
- private static Sourcelist CONSCRYPT_SOURCELIST;
-
- private static Sourcelist OKHTTP_SOURCELIST;
-
- private static Sourcelist EXT_SOURCELIST;
-
- private static Sourcelist CORE_JUNIT_SOURCELIST;
-
- private static Sourcelist FRAMEWORK_SOURCELIST;
-
- protected static File FRAMEWORK_JAR ;
-
- private static File GUAVA_JAR;
-
- private static File SERVICES_JAR;
-
- private static File ARITY_JAR;
-
- private static File PLAY_SERVICE_JAR;
-
- private static String corePath;
-
- @BeforeClass
- public static void setup() throws Exception {
- CORE_SOURCELIST = TestTools.getTargetLibSourcelist("core-libart");
- BOUNCY_SOURCELIST = TestTools.getTargetLibSourcelist("bouncycastle");
- CONSCRYPT_SOURCELIST = TestTools.getTargetLibSourcelist("conscrypt");
- OKHTTP_SOURCELIST = TestTools.getTargetLibSourcelist("okhttp");
- EXT_SOURCELIST = TestTools.getTargetLibSourcelist("ext");
- CORE_JUNIT_SOURCELIST =
- TestTools.getTargetLibSourcelist("core-junit");
- FRAMEWORK_SOURCELIST =
- TestTools.getTargetLibSourcelist("framework");
-
- FRAMEWORK_JAR = TestTools.getFromAndroidTree(
- "/out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/" + "classes.zip");
-
- GUAVA_JAR = TestTools
- .getFromAndroidTree("out/target/common/obj/JAVA_LIBRARIES/guava_intermediates/classes.zip");
- SERVICES_JAR = TestTools
- .getFromAndroidTree("out/target/common/obj/JAVA_LIBRARIES/services_intermediates/"
- + "classes.zip");
- ARITY_JAR = TestTools
- .getFromAndroidTree("out/target/common/obj/JAVA_LIBRARIES/libarity_intermediates/"
- + "classes.zip");
- PLAY_SERVICE_JAR = TestTools
- .getFromAndroidTree("out/target/common/obj/JAVA_LIBRARIES/"
- + "google-play-services-first-party_intermediates/classes.zip");
-
- File coreOut = TestTools.createTempFile("core", ".zip");
- Options options = new Options();
- options.addProperty(Options.JAVA_SOURCE_VERSION.getName(), JavaVersion.JAVA_7.toString());
- TestTools.compileSourceToJack(options, CORE_SOURCELIST, null, coreOut, true);
- corePath = coreOut.getAbsolutePath();
- }
-
- @Test
- public void ext() throws Exception {
- File extJack = TestTools.createTempFile("ext", ".zip");
- TestTools.compileSourceToJack(new Options(), EXT_SOURCELIST, corePath, extJack, true);
-
- File extFolder = TestTools.createTempDir("ext", "dex");
- TestTools.compileJackToDex(new Options(), extJack, extFolder, false);
- }
-
- @Test
- public void frameworkFromJack() throws Exception {
-
- File conscryptJack = TestTools.createTempFile("conscrypt", ".zip");
- TestTools.compileSourceToJack(new Options(), CONSCRYPT_SOURCELIST, corePath, conscryptJack,
- true);
- File conscryptRenamedJack = TestTools.createTempFile("conscryptrenamed", ".zip");
- File conscyptRules =
- new JarJarRules(TestTools.getFromAndroidTree("external/conscrypt/jarjar-rules.txt"));
- TestTools.jarjarJackToJack(
- new Options(), conscryptJack, null, conscryptRenamedJack, conscyptRules, true);
-
- File okhttpJack = TestTools.createTempFile("okkttp", ".zip");
- TestTools.compileSourceToJack(new Options(), OKHTTP_SOURCELIST,
- corePath + File.pathSeparatorChar + conscryptRenamedJack.getAbsolutePath(), okhttpJack,
- true);
- File okhttpRenamedJack = TestTools.createTempFile("okhttprenamed", ".zip");
- File okhttpRules =
- new JarJarRules(TestTools.getFromAndroidTree("external/okhttp/jarjar-rules.txt"));
- TestTools.jarjarJackToJack(
- new Options(), okhttpJack, null, okhttpRenamedJack, okhttpRules, true);
-
- File extJack = TestTools.createTempFile("ext", ".zip");
- TestTools.compileSourceToJack(new Options(), EXT_SOURCELIST, corePath, extJack, true);
-
- File bouncyCastleJack = TestTools.createTempFile("bouncyjack", ".zip");
- TestTools.compileSourceToJack(new Options(), BOUNCY_SOURCELIST, corePath, bouncyCastleJack,
- true);
-
- File coreJunitJack = TestTools.createTempFile("corejunitjack", ".zip");
- TestTools.compileSourceToJack(new Options(), CORE_JUNIT_SOURCELIST, corePath, coreJunitJack,
- true);
-
- File bouncyCastleRenamedJack = TestTools.createTempFile("bouncyjackrenamed", ".zip");
- File jarjarRules =
- new JarJarRules(TestTools.getFromAndroidTree("external/bouncycastle/jarjar-rules.txt"));
- TestTools.jarjarJackToJack(
- new Options(), bouncyCastleJack, null, bouncyCastleRenamedJack, jarjarRules, true);
-
- String classpath = corePath + File.pathSeparatorChar + conscryptRenamedJack.getAbsolutePath()
- + File.pathSeparatorChar + okhttpRenamedJack.getAbsolutePath()
- + File.pathSeparatorChar + extJack.getAbsolutePath()
- + File.pathSeparatorChar + bouncyCastleRenamedJack.getAbsolutePath()
- + File.pathSeparatorChar + coreJunitJack.getAbsolutePath();
- File frameworkJackZip = TestTools.createTempFile("framework", ".zip");
- Options options = new Options();
- options.addProperty(Options.JAVA_SOURCE_VERSION.getName(), JavaVersion.JAVA_7.toString());
- TestTools.compileSourceToJack(
- options, FRAMEWORK_SOURCELIST, classpath, frameworkJackZip, true);
-
- Options dexOptions = new Options();
- dexOptions.addProperty(DexFileWriter.DEX_WRITING_POLICY.getName(), "multidex");
- File frameworkDexFolder = TestTools.createTempDir("framework", "dex");
- TestTools.compileJackToDex(dexOptions, frameworkJackZip, frameworkDexFolder, false);
- }
-
- @Test
- public void guava() throws Exception {
- File guavaDexFolder = TestTools.createTempDir("guava", "dex");
- TestTools.compileJackToDex(new Options(), GUAVA_JAR, guavaDexFolder, false);
- }
-
- @Test
- public void services() throws Exception {
- File servicesDexFolder = TestTools.createTempDir("service", "dex");
- TestTools.compileJackToDex(new Options(), SERVICES_JAR, servicesDexFolder, false);
- }
-
- @Test
- public void arity() throws Exception {
- File arityDexFolder = TestTools.createTempDir("arity", "dex");
- TestTools.compileJackToDex(new Options(), ARITY_JAR, arityDexFolder, false);
- }
-
- @Test
- public void playservices() throws Exception {
- File playServiceDexFolder = TestTools.createTempDir("playservices", "dex");
- TestTools.compileJackToDex(new Options(), PLAY_SERVICE_JAR, playServiceDexFolder, false);
- }
-}
diff --git a/jack/tests/com/android/jack/ToolchainTest.java b/jack/tests/com/android/jack/ToolchainTest.java
deleted file mode 100644
index 9577aa1..0000000
--- a/jack/tests/com/android/jack/ToolchainTest.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.jack;
-
-import com.android.jack.config.id.JavaVersionPropertyId.JavaVersion;
-
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Tests that test different steps of the Jack toolchain.
- * These tests only rely on the Android tree for source lists.
- * They are supposed to be run in test-jack (ideally before each commit).
- */
-@Ignore("Tree")
-public class ToolchainTest {
-
- private static Sourcelist CORE_SOURCELIST;
-
- private static Sourcelist BOUNCY_SOURCELIST;
-
- private static Sourcelist JUNIT_SOURCELIST;
-
- private static File corePath;
-
- @BeforeClass
- public static void setup() throws Exception {
- CORE_SOURCELIST = TestTools.getTargetLibSourcelist("core-libart");
- BOUNCY_SOURCELIST =
- TestTools.getTargetLibSourcelist("bouncycastle");
- JUNIT_SOURCELIST = TestTools.getHostLibSourcelist("junit4-hostdex-jack");
-
- File coreOut = TestTools.createTempFile("core", ".zip");
- Options options = new Options();
- options.addProperty(Options.JAVA_SOURCE_VERSION.getName(), JavaVersion.JAVA_7.toString());
- TestTools.compileSourceToJack(options, CORE_SOURCELIST, null, coreOut, true);
- corePath = coreOut;
- }
-
- @Test
- public void shrobTestNoZip() throws Exception {
- File shrobTestJackOut = TestTools.createTempDir("shrobtest", "dir");
- String testName = "shrob/test001";
- String classpath = corePath.getAbsolutePath();
- File sourceDir = TestTools.getJackTestsWithJackFolder(testName);
- TestTools.compileSourceToJack(
- new Options(), sourceDir, classpath, shrobTestJackOut, false);
-
- File shrobTestShrunkOut = TestTools.createTempDir("shrobshrunk", "dir");
- List<ProguardFlags> flagFiles = new ArrayList<ProguardFlags>();
- File testFolder = TestTools.getJackTestFolder(testName);
- flagFiles.add(new ProguardFlags(testFolder, "proguard.flags001"));
- flagFiles.add(new ProguardFlags(testFolder, "proguard.flags004"));
- TestTools.shrobJackToJack(
- new Options(), shrobTestJackOut, classpath, shrobTestShrunkOut, flagFiles, false);
-
- File shrobTestDexOutFolder = TestTools.createTempDir("shrobbed", "dex");
- TestTools.compileJackToDex(new Options(), shrobTestShrunkOut, shrobTestDexOutFolder, false);
- }
-
- @Test
- public void shrobTestZip() throws Exception {
- File shrobTestJackOut = TestTools.createTempFile("shrobtest", ".zip");
- String testName = "shrob/test001";
- String classpath = corePath.getAbsolutePath();
- File sourceDir = TestTools.getJackTestsWithJackFolder(testName);
- TestTools.compileSourceToJack(
- new Options(), sourceDir, classpath, shrobTestJackOut, true);
-
- File shrobTestShrunkOut = TestTools.createTempFile("shrunk", ".zip");
- List<ProguardFlags> flagFiles = new ArrayList<ProguardFlags>();
- File testFolder = TestTools.getJackTestFolder(testName);
- flagFiles.add(new ProguardFlags(testFolder, "proguard.flags001"));
- flagFiles.add(new ProguardFlags(testFolder, "proguard.flags004"));
- TestTools.shrobJackToJack(
- new Options(), shrobTestJackOut, classpath, shrobTestShrunkOut, flagFiles, true);
-
- File shrobTestDexOut = TestTools.createTempFile("shrobbed", ".dex.zip");
- TestTools.compileJackToDex(new Options(), shrobTestShrunkOut, shrobTestDexOut, true);
- }
-
- @Test
- public void bouncyCastle() throws Exception {
- File bouncyCastleJack = TestTools.createTempFile("bouncyjack", ".zip");
- TestTools.compileSourceToJack(
- new Options(), BOUNCY_SOURCELIST, corePath.getAbsolutePath(), bouncyCastleJack, true);
-
- File bouncyCastleOutFolder = TestTools.createTempDir("bouncy", "dex");
- TestTools.compileJackToDex(new Options(), bouncyCastleJack, bouncyCastleOutFolder, false);
- }
-
- @Test
- public void core() throws Exception {
- File coreOutFolder = TestTools.createTempDir("core", "dex");
- TestTools.compileJackToDex(new Options(), corePath, coreOutFolder, false);
- }
-
- @Test
- public void junit() throws Exception {
- File junitJack = TestTools.createTempFile("junit", ".zip");
- TestTools.compileSourceToJack(
- new Options(), JUNIT_SOURCELIST, corePath.getAbsolutePath() + File.pathSeparator +
- TestTools.getFromAndroidTree(
- "out/host/common/obj/JAVA_LIBRARIES/hamcrest-core-hostdex-jack_intermediates/classes.zip"), junitJack, true);
-
- File junitOutFolder = TestTools.createTempDir("junit", "dex");
- TestTools.compileJackToDex(new Options(), junitJack, junitOutFolder, false);
- }
-
- @Test
- public void jarjarTest() throws Exception {
- File jarjarTestJackOut = TestTools.createTempFile("jarjartest", ".zip");
- String testName = "jarjar/test003";
- String classpath = corePath.getAbsolutePath();
- File sourceDir = TestTools.getJackTestsWithJackFolder(testName);
- TestTools.compileSourceToJack(
- new Options(), sourceDir, classpath, jarjarTestJackOut, true);
-
- File dalvikAnnotations = TestTools.getFromAndroidTree("libcore/dalvik/src/main/java/");
- File dalvikAnnotationsJackOut = TestTools.createTempFile("dalvikannotations", ".zip");
- TestTools.compileSourceToJack(
- new Options(), dalvikAnnotations, classpath, dalvikAnnotationsJackOut, true);
-
- File jarjarTestRenamedOut = TestTools.createTempFile("jarjartestrenamed", ".zip");
- File jarjarRules = new File(TestTools.getJackTestFolder(testName), "jarjar-rules.txt");
- TestTools.jarjarJackToJack(
- new Options(), jarjarTestJackOut, classpath, jarjarTestRenamedOut, jarjarRules, true);
-
- File jarjarTestDexOutFolder = TestTools.createTempDir("jarjared", "dex");
- TestTools.compileJackToDex(new Options(), jarjarTestRenamedOut, jarjarTestDexOutFolder, false);
- }
-}
diff --git a/jack/tests/com/android/jack/WithPhantomTest.java b/jack/tests/com/android/jack/WithPhantomTest.java
deleted file mode 100644
index 3043f3b..0000000
--- a/jack/tests/com/android/jack/WithPhantomTest.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.jack;
-
-import com.android.jack.category.KnownBugs;
-import com.android.jack.library.FileType;
-import com.android.sched.util.collect.Lists;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.io.File;
-import java.io.FilenameFilter;
-
-import javax.annotation.Nonnull;
-
-/**
- * Test compilation involving phantoms.
- */
-public class WithPhantomTest {
-
- @Nonnull
- private static final String CLASSPATH = TestTools.getDefaultClasspathString();
- @Nonnull
- private static final String TEST001 = "withphantom/test001";
- @Nonnull
- private static final String TEST002 = "withphantom/test002";
-
- @Nonnull
- private static String fixPath(@Nonnull String unixPath) {
- return unixPath.replace('/', File.separatorChar);
- }
-
- @Test
- public void testPhantomOuter() throws Exception {
- File tempJackFolder = TestTools.createTempDir("jack", "dir");
- TestTools.compileSourceToJack(new Options(),
- TestTools.getJackTestsWithJackFolder(TEST001),
- CLASSPATH, tempJackFolder, false /* non-zipped */);
- boolean deleted =
- new File(tempJackFolder, FileType.JAYCE.getPrefix() + File.separatorChar
- + fixPath("com/android/jack/withphantom/test001/jack/A.jayce")).delete();
- Assert.assertTrue(deleted);
-
- File testFolder = TestTools.getJackTestFolder(TEST001);
-
- File tempOut1 = TestTools.createTempDir("jack", "dir");
- TestTools.shrobJackToJack(new Options(),
- tempJackFolder,
- CLASSPATH,
- tempOut1,
- Lists.create(
- new ProguardFlags(testFolder, "shrink1.flags")),
- false /* non-zipped */);
-
- File tempOut2 = TestTools.createTempDir("jack", "dir");
- TestTools.shrobJackToJack(new Options(),
- tempJackFolder,
- CLASSPATH,
- tempOut2,
- Lists.create(
- new ProguardFlags(testFolder, "shrink2.flags")),
- false /* non-zipped */);
-
- File tempOut3 = TestTools.createTempDir("jack", "dir");
- TestTools.shrobJackToJack(new Options(),
- tempJackFolder,
- CLASSPATH,
- tempOut3,
- Lists.create(
- new ProguardFlags(testFolder, "obf1.flags")),
- false /* non-zipped */);
-
- File tempOut4 = TestTools.createTempDir("jack", "dir");
- TestTools.shrobJackToJack(new Options(),
- tempJackFolder,
- CLASSPATH,
- tempOut4,
- Lists.create(
- new ProguardFlags(testFolder, "obf2.flags")),
- false /* non-zipped */);
-
- File tempOut5 = TestTools.createTempDir("jack", "dex");
- TestTools.compileJackToDex(new Options(), tempJackFolder, tempOut5, false /* non-zipped */);
-
- }
-
- @Test
- public void testPhantomInner() throws Exception {
- File tempJackFolder = TestTools.createTempDir("jack", "dir");
- TestTools.compileSourceToJack(new Options(),
- TestTools.getJackTestsWithJackFolder(TEST001),
- CLASSPATH, tempJackFolder, false /* non-zipped */);
- boolean deleted =
- new File(tempJackFolder, fixPath(FileType.JAYCE.getPrefix() + File.separatorChar
- + "com/android/jack/withphantom/test001/jack/A$Inner1.jayce")).delete();
- Assert.assertTrue(deleted);
- deleted =
- new File(tempJackFolder, fixPath(FileType.DEX.getPrefix() + File.separatorChar
- + "com/android/jack/withphantom/test001/jack/A$Inner1.dex")).delete();
- Assert.assertTrue(deleted);
-
- File testFolder = TestTools.getJackTestFolder(TEST001);
-
- File tempOut1 = TestTools.createTempDir("jack", "dir");
- TestTools.shrobJackToJack(new Options(),
- tempJackFolder,
- CLASSPATH,
- tempOut1,
- Lists.create(
- new ProguardFlags(testFolder, "shrink1.flags")),
- false /* non-zipped */);
-
- File tempOut2 = TestTools.createTempDir("jack", "dir");
- TestTools.shrobJackToJack(new Options(),
- tempJackFolder,
- CLASSPATH,
- tempOut2,
- Lists.create(
- new ProguardFlags(testFolder, "shrink2.flags")),
- false /* non-zipped */);
-
- File tempOut3 = TestTools.createTempDir("jack", "dir");
- TestTools.shrobJackToJack(new Options(),
- tempJackFolder,
- CLASSPATH,
- tempOut3,
- Lists.create(
- new ProguardFlags(testFolder, "obf1.flags")),
- false /* non-zipped */);
-
- File tempOut4 = TestTools.createTempDir("jack", "dir");
- TestTools.shrobJackToJack(new Options(),
- tempJackFolder,
- CLASSPATH,
- tempOut4,
- Lists.create(
- new ProguardFlags(testFolder, "obf2.flags")),
- false /* non-zipped */);
-
- File tempOutFolder = TestTools.createTempDir("jack", "dex");
- TestTools.compileJackToDex(new Options(), tempJackFolder, tempOutFolder,
- false /* non-zipped */);
- }
-
- @Category(value = KnownBugs.class)
- @Test
- public void testPhantomLocal() throws Exception {
- File tempJackFolder = TestTools.createTempDir("jack", "dir");
- TestTools.compileSourceToJack(new Options(),
- TestTools.getJackTestsWithJackFolder(TEST002),
- CLASSPATH, tempJackFolder, false /* non-zipped */);
- File[] inners =
- new File(tempJackFolder, fixPath(FileType.JAYCE.getPrefix() + File.separatorChar
- + "com/android/jack/withphantom/test002/jack/")).listFiles(new FilenameFilter() {
- @Override
- public boolean accept(File dir, String name) {
- return name.startsWith("A$");
- }
- });
- for (File file : inners) {
- Assert.assertTrue(file.delete());
- }
-
- File testFolder = TestTools.getJackTestFolder(TEST002);
-
- File tempOut1 = TestTools.createTempDir("jack", "dir");
- TestTools.shrobJackToJack(new Options(),
- tempJackFolder,
- CLASSPATH,
- tempOut1,
- Lists.create(
- new ProguardFlags(testFolder, "obf1.flags")),
- false /* non-zipped */);
-
- File tempOutFolder = TestTools.createTempDir("jack", "dex");
- TestTools.compileJackToDex(new Options(), tempJackFolder, tempOutFolder,
- false /* non-zipped */);
- }
-
- @Test
- public void testPhantomLocalOuter() throws Exception {
- File tempJackFolder = TestTools.createTempDir("jack", "dir");
- TestTools.compileSourceToJack(new Options(),
- TestTools.getJackTestsWithJackFolder(TEST002),
- CLASSPATH, tempJackFolder, false /* non-zipped */);
- boolean deleted =
- new File(tempJackFolder, fixPath(FileType.JAYCE.getPrefix() + File.separatorChar
- + "com/android/jack/withphantom/test002/jack/A.jayce")).delete();
- Assert.assertTrue(deleted);
-
- File testFolder = TestTools.getJackTestFolder(TEST002);
-
- File tempOut1 = TestTools.createTempDir("jack", "dir");
- TestTools.shrobJackToJack(new Options(),
- tempJackFolder,
- CLASSPATH,
- tempOut1,
- Lists.create(
- new ProguardFlags(testFolder, "obf1.flags")),
- false /* non-zipped */);
-
- File tempOutFolder = TestTools.createTempDir("jack", "dex");
- TestTools.compileJackToDex(new Options(), tempJackFolder, tempOutFolder,
- false /* non-zipped */);
- }
-
-}
diff --git a/jack/tests/com/android/jack/library/LibraryTest.java b/jack/tests/com/android/jack/library/LibraryTest.java
deleted file mode 100644
index db8f021..0000000
--- a/jack/tests/com/android/jack/library/LibraryTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.jack.library;
-
-import com.android.jack.Options;
-import com.android.jack.TestTools;
-import com.android.sched.util.RunnableHooks;
-import com.android.sched.util.file.FileOrDirectory.ChangePermission;
-import com.android.sched.util.file.FileOrDirectory.Existence;
-import com.android.sched.util.file.InputZipFile;
-import com.android.sched.vfs.InputVFS;
-import com.android.sched.vfs.InputZipVFS;
-
-import junit.framework.Assert;
-
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import java.io.File;
-import java.io.IOException;
-
-import javax.annotation.Nonnull;
-
-public class LibraryTest {
- @BeforeClass
- public static void setUpClass() {
- LibraryTest.class.getClassLoader().setDefaultAssertionStatus(true);
- }
-
- @Test
- public void testEmptyLibraryInClassPath() throws Exception {
- File emptyLib = createEmptyLibrary();
-
- TestTools.compileSourceToDex(new Options(),
- TestTools.getJackTestsWithJackFolder("library/test001"),
- TestTools.getDefaultClasspathString() + File.pathSeparator + emptyLib.getPath(),
- TestTools.createTempFile("library001", ".zip"), /* zip = */ true);
- }
-
- @Test
- public void testRscLibraryInClassPath() throws Exception {
- File emptyLib = createRscLibrary();
-
- TestTools.compileSourceToDex(new Options(),
- TestTools.getJackTestsWithJackFolder("library/test001"),
- TestTools.getDefaultClasspathString() + File.pathSeparator + emptyLib.getPath(),
- TestTools.createTempFile("library001", ".zip"), /* zip = */ true);
- }
-
- @Test
- public void testImportEmptyLibrary() throws Exception {
- File lib = createEmptyLibrary();
- Options options = new Options();
- options.addImportedLibrary(lib);
- TestTools.compileSourceToDex(options,
- TestTools.getJackTestsWithJackFolder("library/test001"),
- TestTools.getDefaultClasspathString(),
- TestTools.createTempFile("library001", ".zip"), /* zip = */ true);
- }
-
- @Test
- public void testImportRscLibrary() throws Exception {
- File lib = createRscLibrary();
- Options options = new Options();
- options.addImportedLibrary(lib);
- File out = TestTools.createTempFile("library001", ".jack");
- TestTools.compileSourceToJack(options,
- TestTools.getJackTestsWithJackFolder("library/test001"),
- TestTools.getDefaultClasspathString(),
- out, /* zip = */ true);
-
- RunnableHooks hooks = new RunnableHooks();
- InputVFS vfs = new InputZipVFS(new InputZipFile(out.getPath(), hooks, Existence.MUST_EXIST,
- ChangePermission.NOCHANGE));
- try {
- InputJackLibrary inputJackLibrary = JackLibraryFactory.getInputLibrary(vfs);
- Assert.assertTrue(inputJackLibrary.containsFileType(FileType.RSC));
- } finally {
- vfs.close();
- }
-
- }
-
- @Nonnull
- private File createEmptyLibrary() throws IOException, Exception {
- File emptyLib = TestTools.createTempFile("empty", ".jack");
- Options options = new Options();
- options.setJayceOutputZip(emptyLib);
- TestTools.runCompilation(options);
- return emptyLib;
- }
-
- @Nonnull
- private File createRscLibrary() throws IOException, Exception {
- File emptyLib = TestTools.createTempFile("rsc", ".jack");
- Options options = new Options();
- options.addResource(TestTools.getJackTestLibFolder("library/test001"));
- options.setJayceOutputZip(emptyLib);
- TestTools.runCompilation(options);
- return emptyLib;
- }
-}