summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormikaelpeltier <mikaelpeltier@google.com>2014-07-29 11:00:47 +0200
committermikaelpeltier <mikaelpeltier@google.com>2014-07-29 11:00:47 +0200
commitb3a1996a72139ba3770fce388b7235849884ed83 (patch)
tree20edf13eea5add2ec73fe3ceb40cc0c6bcac5b7b
parentafbb5afe2b90ea0e56e663d341d72083ad5a9181 (diff)
downloadtoolchain_jack-b3a1996a72139ba3770fce388b7235849884ed83.tar.gz
toolchain_jack-b3a1996a72139ba3770fce388b7235849884ed83.tar.bz2
toolchain_jack-b3a1996a72139ba3770fce388b7235849884ed83.zip
-o option is no longer a file but a folder
Change-Id: I46702a101e0d42015943e34e91008cd9a18331c6
-rw-r--r--jack-tests/Android.mk20
-rw-r--r--jack-tests/build/run-test.mk4
-rw-r--r--jack/src/com/android/jack/Options.java35
-rw-r--r--jack/src/com/android/jack/backend/ResourceWriter.java2
-rw-r--r--jack/src/com/android/jack/backend/dex/DexFileWriter.java21
-rw-r--r--jack/src/com/android/jack/backend/dex/DexZipWriter.java2
-rw-r--r--jack/tests/com/android/jack/AnnotationTestTools.java8
-rw-r--r--jack/tests/com/android/jack/BridgeTest.java4
-rw-r--r--jack/tests/com/android/jack/ClasspathTest.java3
-rw-r--r--jack/tests/com/android/jack/ConstantTest.java7
-rw-r--r--jack/tests/com/android/jack/DxTest.java12
-rw-r--r--jack/tests/com/android/jack/FibonacciThreeAddressTest.java4
-rw-r--r--jack/tests/com/android/jack/NoClasspathTest.java24
-rw-r--r--jack/tests/com/android/jack/NoPackageTest.java4
-rw-r--r--jack/tests/com/android/jack/SwitchesTest.java7
-rw-r--r--jack/tests/com/android/jack/TestTools.java52
-rw-r--r--jack/tests/com/android/jack/ToolchainTest.java20
-rw-r--r--jack/tests/com/android/jack/WithPhantomTest.java17
-rw-r--r--jack/tests/com/android/jack/compile/androidtree/core/CoreCompilationTest.java13
-rw-r--r--jack/tests/com/android/jack/errorhandling/AnnotationProcessorErrorTest.java5
-rw-r--r--jack/tests/com/android/jack/experimental/incremental/IncrementalTestingEnvironment.java8
-rw-r--r--jack/tests/com/android/jack/java7/SwitchesTest.java4
-rw-r--r--jack/tests/com/android/jack/shrob/ShrinkTest.java4
-rw-r--r--jack/tests/com/android/jack/tools/merger/MergerTestTools.java26
-rw-r--r--jack/tests/com/android/jack/transformations/cast/UselessCastRemoverTest.java17
-rw-r--r--sched/src/com/android/sched/util/codec/OutputVDirCodec.java2
-rw-r--r--sched/src/com/android/sched/vfs/Container.java1
27 files changed, 184 insertions, 142 deletions
diff --git a/jack-tests/Android.mk b/jack-tests/Android.mk
index d40f992c..ece3a8a7 100644
--- a/jack-tests/Android.mk
+++ b/jack-tests/Android.mk
@@ -17,18 +17,20 @@ private_jack_tests_mk := $(lastword $(MAKEFILE_LIST))
LOCAL_PATH:= $(call my-dir)
test-jack-incremental: $(JACK_JAR)
- $(hide) $(eval TEMPDIR := $(shell mktemp -d))
+ $(hide) $(eval TEMPDIR_DEX_FROM_JAVA := $(shell mktemp -d))
+ $(hide) $(eval TEMPDIR_DEX_FROM_JACK := $(shell mktemp -d))
$(hide) $(JACK) -D jack.jackfile.generate=true -D jack.jackfile.output.container=dir \
- -D jack.jackfile.output.dir=$(TEMPDIR)/jackIncrementalOutput -o \
- $(TEMPDIR)/coreDexFromJava.dex \
+ -D jack.jackfile.output.dir=$(TEMPDIR_DEX_FROM_JAVA)/jackIncrementalOutput -o \
+ $(TEMPDIR_DEX_FROM_JAVA) \
--ecj -nowarn @$(ANDROID_BUILD_TOP)/out/target/common/obj/JAVA_LIBRARIES/core_intermediates/sources.list
$(hide) $(JACK) \
- --output $(TEMPDIR)/coreDexFromJack.dex --import-jack $(TEMPDIR)/jackIncrementalOutput
- $(hide) dexdump -d $(TEMPDIR)/coreDexFromJava.dex | tail -n +3 &> $(TEMPDIR)/coreDexFromJava.dex.txt
- $(hide) dexdump -d $(TEMPDIR)/coreDexFromJack.dex | tail -n +3 &> $(TEMPDIR)/coreDexFromJack.dex.txt
- $(hide) diff --side-by-side --suppress-common-lines $(TEMPDIR)/coreDexFromJava.dex.txt \
- $(TEMPDIR)/coreDexFromJack.dex.txt
- $(hide) rm -rf $(TEMPDIR)
+ --output $(TEMPDIR_DEX_FROM_JACK) --import-jack $(TEMPDIR_DEX_FROM_JAVA)/jackIncrementalOutput
+ $(hide) dexdump -d $(TEMPDIR_DEX_FROM_JAVA)/classes.dex | tail -n +3 &> $(TEMPDIR_DEX_FROM_JAVA)/coreDexFromJava.txt
+ $(hide) dexdump -d $(TEMPDIR_DEX_FROM_JACK)/classes.dex | tail -n +3 &> $(TEMPDIR_DEX_FROM_JACK)/coreDexFromJack.txt
+ $(hide) diff --side-by-side --suppress-common-lines $(TEMPDIR_DEX_FROM_JAVA)/coreDexFromJava.txt \
+ $(TEMPDIR_DEX_FROM_JACK)/coreDexFromJack.txt
+ $(hide) rm -rf $(TEMPDIR_DEX_FROM_JAVA)
+ $(hide) rm -rf $(TEMPDIR_DEX_FROM_JACK)
.PHONY: test-jack
test-jack: test-jack-unit test-jack-incremental
diff --git a/jack-tests/build/run-test.mk b/jack-tests/build/run-test.mk
index 540009e8..e49b8f73 100644
--- a/jack-tests/build/run-test.mk
+++ b/jack-tests/build/run-test.mk
@@ -102,7 +102,7 @@ $(JACKTEST_LINK_DEX): PRIVATE_JAVA_SOURCES := $(JACKTEST_LINK_SRC)
$(JACKTEST_LINK_DEX): PRIVATE_ARGS := $(JACKTEST_ARGS) $(JACKTEST_SOURCE_JAVA7)
$(JACKTEST_LINK_DEX): $(JACKTEST_LINK_SRC) $(PRIVATE_TEST_MK) $(BOOTCLASSPATH_LIBS) $(JACK_JAR)
$(hide) mkdir -p $(dir $@)
- $(hide) $(JACK) $(PRIVATE_ARGS) $(PRIVATE_BOOTCLASSPATH) $(addprefix -cp ,$(PRIVATE_CLASSPATH)) -o $@ --ecj -nowarn \
+ $(hide) $(JACK) $(PRIVATE_ARGS) $(PRIVATE_BOOTCLASSPATH) $(addprefix -cp ,$(PRIVATE_CLASSPATH)) -o $(dir $@) --ecj -nowarn \
$(PRIVATE_JAVA_SOURCES)
$(JACKTEST_WITHJACK_DEX): PRIVATE_BOOTCLASSPATH := $(local_bootclasspath_jack)
@@ -111,7 +111,7 @@ $(JACKTEST_WITHJACK_DEX): PRIVATE_JAVA_SOURCES := $(JACKTEST_WITHJACK_SRC)
$(JACKTEST_WITHJACK_DEX): PRIVATE_ARGS := $(JACKTEST_ARGS) $(JACKTEST_SOURCE_JAVA7)
$(JACKTEST_WITHJACK_DEX): $(JACKTEST_WITHJACK_SRC) $(BOOTCLASSPATH_LIBS) $(PRIVATE_TEST_MK) $(JACKTEST_LIB_JAR) $(JACK_JAR)
$(hide) mkdir -p $(dir $@)
- $(hide) $(JACK) $(PRIVATE_ARGS) -o $@ $(PRIVATE_BOOTCLASSPATH) $(addprefix -cp ,$(PRIVATE_CLASSPATH)) --ecj -nowarn \
+ $(hide) $(JACK) $(PRIVATE_ARGS) -o $(dir $@) $(PRIVATE_BOOTCLASSPATH) $(addprefix -cp ,$(PRIVATE_CLASSPATH)) --ecj -nowarn \
$(PRIVATE_JAVA_SOURCES)
$(JACKTEST_WITHDX_JAR): PRIVATE_JACK_DEBUG_FLAGS := -g
diff --git a/jack/src/com/android/jack/Options.java b/jack/src/com/android/jack/Options.java
index 6deefc95..a37456a5 100644
--- a/jack/src/com/android/jack/Options.java
+++ b/jack/src/com/android/jack/Options.java
@@ -35,7 +35,6 @@ import com.android.jack.util.filter.AllMethods;
import com.android.jack.util.filter.Filter;
import com.android.sched.util.RunnableHooks;
import com.android.sched.util.codec.InputOutputVDirCodec;
-import com.android.sched.util.codec.OutputStreamCodec;
import com.android.sched.util.codec.OutputVDirCodec;
import com.android.sched.util.config.Config;
import com.android.sched.util.config.ConfigPrinterFactory;
@@ -48,7 +47,6 @@ import com.android.sched.util.config.id.ImplementationPropertyId;
import com.android.sched.util.config.id.ObjectId;
import com.android.sched.util.config.id.PropertyId;
import com.android.sched.util.file.FileOrDirectory.Existence;
-import com.android.sched.util.file.OutputStreamFile;
import com.android.sched.util.location.FileLocation;
import com.android.sched.util.location.StringLocation;
import com.android.sched.util.log.LoggerFactory;
@@ -133,14 +131,13 @@ public class Options {
GENERATE_ONE_DEX_PER_TYPE.getValue().isTrue());
@Nonnull
- public static final PropertyId<OutputStreamFile> DEX_FILE_OUTPUT = PropertyId.create(
- "jack.dex.output.file", "Standalone output file for dex",
- new OutputStreamCodec(Existence.MAY_EXIST).allowStandard()).requiredIf(
- DEX_OUTPUT_CONTAINER_TYPE.is(Container.FILE).or(
- GENERATE_ONE_DEX_PER_TYPE.getValue().isTrue()));
+ public static final PropertyId<OutputVDir> DEX_OUTPUT_DIR = PropertyId.create(
+ "jack.dex.output.dir", "Output folder for dex",
+ new OutputVDirCodec(Existence.MUST_EXIST, Container.DIR)).requiredIf(DEX_OUTPUT_CONTAINER_TYPE
+ .is(Container.DIR).or(GENERATE_ONE_DEX_PER_TYPE.getValue().isTrue()));
@Nonnull
- public static final PropertyId<OutputVDir> DEX_ZIP_OUTPUT = PropertyId.create(
+ public static final PropertyId<OutputVDir> DEX_OUTPUT_ZIP = PropertyId.create(
"jack.dex.output.zip", "Output zip archive for dex",
new OutputVDirCodec(Existence.MAY_EXIST, Container.ZIP)).requiredIf(
DEX_OUTPUT_CONTAINER_TYPE.is(Container.ZIP));
@@ -191,13 +188,13 @@ public class Options {
metaVar = "[error | warning | info | debug | trace]")
protected VerbosityLevel verbose = VerbosityLevel.WARNING;
- @Option(name = "--incremental-folder",
- usage = "Folder used for incremental data", metaVar = "FILE")
+ @Option(name = "--incremental-folder", usage = "Folder used for incremental data",
+ metaVar = "FILE")
protected File incrementalFolder = null;
- @Option(name = "-o", aliases = "--output",
- usage = "output to this dex file (default: ./classes.dex)", metaVar = "FILE")
- protected File out = new File("./classes.dex");
+ @Option(name = "-o", aliases = "--output", usage = "output to this folder",
+ metaVar = "FILE")
+ protected File out = null;
@Option(name = "--output-zip", usage = "output to this zip file", metaVar = "FILE")
protected File outZip = null;
@@ -335,11 +332,11 @@ public class Options {
}
@Nonnull
- public File getOutputFile() {
+ public File getOutputDir() {
return out;
}
- public void setOutputFile(File out) {
+ public void setOutputDir(File out) {
this.out = out;
}
@@ -574,12 +571,12 @@ public class Options {
configBuilder.set(JACK_OUTPUT_CONTAINER_TYPE, Container.DIR);
configBuilder.set(GENERATE_JACK_FILE, true);
} else if (outZip != null) {
- configBuilder.setString(DEX_ZIP_OUTPUT, outZip.getAbsolutePath());
+ configBuilder.setString(DEX_OUTPUT_ZIP, outZip.getAbsolutePath());
configBuilder.set(DEX_OUTPUT_CONTAINER_TYPE, Container.ZIP);
configBuilder.set(GENERATE_DEX_FILE, true);
- } else {
- configBuilder.setString(DEX_FILE_OUTPUT, out.getAbsolutePath());
- configBuilder.set(DEX_OUTPUT_CONTAINER_TYPE, Container.FILE);
+ } else if (out != null) {
+ configBuilder.setString(DEX_OUTPUT_DIR, out.getAbsolutePath());
+ configBuilder.set(DEX_OUTPUT_CONTAINER_TYPE, Container.DIR);
configBuilder.set(GENERATE_DEX_FILE, true);
}
configBuilder.set(FieldInitializerRemover.CLASS_AS_INITIALVALUE, !dxLegacy);
diff --git a/jack/src/com/android/jack/backend/ResourceWriter.java b/jack/src/com/android/jack/backend/ResourceWriter.java
index 2ba638e8..bde0725b 100644
--- a/jack/src/com/android/jack/backend/ResourceWriter.java
+++ b/jack/src/com/android/jack/backend/ResourceWriter.java
@@ -61,7 +61,7 @@ public class ResourceWriter implements RunnableSchedulable<JSession> {
assert ThreadConfig.get(Options.GENERATE_DEX_FILE).booleanValue();
Container containerType = ThreadConfig.get(Options.DEX_OUTPUT_CONTAINER_TYPE);
assert containerType == Container.ZIP;
- outputVDir = ThreadConfig.get(Options.DEX_ZIP_OUTPUT);
+ outputVDir = ThreadConfig.get(Options.DEX_OUTPUT_ZIP);
}
}
diff --git a/jack/src/com/android/jack/backend/dex/DexFileWriter.java b/jack/src/com/android/jack/backend/dex/DexFileWriter.java
index ee11c700..bc10fbb5 100644
--- a/jack/src/com/android/jack/backend/dex/DexFileWriter.java
+++ b/jack/src/com/android/jack/backend/dex/DexFileWriter.java
@@ -29,8 +29,11 @@ import com.android.sched.schedulable.Produce;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Support;
import com.android.sched.util.config.ThreadConfig;
-import com.android.sched.util.file.OutputStreamFile;
+import com.android.sched.vfs.OutputVDir;
+import com.android.sched.vfs.OutputVFile;
+import com.android.sched.vfs.VPath;
+import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -46,28 +49,30 @@ import javax.annotation.Nonnull;
@Support(DexNonZipOutput.class)
public class DexFileWriter extends DexWriter implements RunnableSchedulable<JSession> {
+ public static final String DEX_FILENAME = "classes.dex";
+
@Nonnull
- private final OutputStreamFile outputFile = ThreadConfig.get(Options.DEX_FILE_OUTPUT);
+ private final OutputVDir outputVDir = ThreadConfig.get(Options.DEX_OUTPUT_DIR);
@Override
public void run(@Nonnull JSession session) throws Exception {
DexFile dexFile = getDexFile(session);
+ OutputVFile dexVFile = outputVDir.createOutputVFile(new VPath(DEX_FILENAME, '/'));
+ OutputStream osDex = new BufferedOutputStream(dexVFile.openWrite());
- OutputStream outputStream = outputFile.getOutputStream();
try {
if (emitOneDexPerType) {
- mergeDexPerType(dexFile, outputStream);
+ mergeDexPerType(dexFile, osDex);
} else {
try {
dexFile.prepare();
- dexFile.writeTo(outputStream, null, false);
+ dexFile.writeTo(osDex, null, false);
} catch (IOException e) {
- throw new JackIOException("Could not write Dex file to output '"
- + outputFile.getLocation() + "'", e);
+ throw new JackIOException("Could not write Dex file to output '" + dexVFile + "'", e);
}
}
} finally {
- outputStream.close();
+ osDex.close();
}
}
}
diff --git a/jack/src/com/android/jack/backend/dex/DexZipWriter.java b/jack/src/com/android/jack/backend/dex/DexZipWriter.java
index 41ccc941..41942b6f 100644
--- a/jack/src/com/android/jack/backend/dex/DexZipWriter.java
+++ b/jack/src/com/android/jack/backend/dex/DexZipWriter.java
@@ -56,7 +56,7 @@ public class DexZipWriter extends DexWriter implements RunnableSchedulable<JSess
private static final String DEX_NAME = "classes.dex";
@Nonnull
- private final OutputVDir outputVDir = ThreadConfig.get(Options.DEX_ZIP_OUTPUT);
+ private final OutputVDir outputVDir = ThreadConfig.get(Options.DEX_OUTPUT_ZIP);
@Nonnull
private final Logger logger = LoggerFactory.getLogger();
diff --git a/jack/tests/com/android/jack/AnnotationTestTools.java b/jack/tests/com/android/jack/AnnotationTestTools.java
index 75c229b6..6501b062 100644
--- a/jack/tests/com/android/jack/AnnotationTestTools.java
+++ b/jack/tests/com/android/jack/AnnotationTestTools.java
@@ -16,6 +16,8 @@
package com.android.jack;
+import com.android.jack.backend.dex.DexFileWriter;
+
import java.io.File;
import java.io.IOException;
@@ -33,7 +35,7 @@ public class AnnotationTestTools {
String classpathStr = TestTools.getClasspathsAsString(bootclasspath, classpath);
- File jackDex = TestTools.createTempFile("jackdex", ".dex");
+ File jackDex = TestTools.createTempDir("jack", "dex");
boolean useEcjAsRefCompiler = false;
@@ -57,7 +59,7 @@ public class AnnotationTestTools {
null);
}
- private static void compareDexToReference(@Nonnull File jackDex,
+ private static void compareDexToReference(@Nonnull File jackDexFolder,
@Nonnull Options compilerArgs,
@CheckForNull ProguardFlags[] proguardFlags,
@CheckForNull File[] bootclasspath,
@@ -80,6 +82,6 @@ public class AnnotationTestTools {
// Compare Jack Dex file to reference
DexAnnotationsComparator comparator = new DexAnnotationsComparator();
- comparator.compare(refDex, jackDex);
+ comparator.compare(refDex, new File(jackDexFolder, DexFileWriter.DEX_FILENAME));
}
}
diff --git a/jack/tests/com/android/jack/BridgeTest.java b/jack/tests/com/android/jack/BridgeTest.java
index ad09d1eb..126c3952 100644
--- a/jack/tests/com/android/jack/BridgeTest.java
+++ b/jack/tests/com/android/jack/BridgeTest.java
@@ -123,8 +123,8 @@ public class BridgeTest {
options = new Options();
options.jayceImport = new ArrayList<File>(1);
options.jayceImport.add(jackZipOfPublicExtendsGeneric);
- File outDexFile = TestTools.createTempFile("tmpBridge", ".dex");
+ File outDexFolder = TestTools.createTempDir("tmpBridge", "dex");
TestTools.compileSourceToDex(options, new File(srcFolder, "Caller.java"),
- TestTools.getDefaultBootclasspathString(), outDexFile, false /* zip */);
+ TestTools.getDefaultBootclasspathString(), outDexFolder, false /* zip */);
}
}
diff --git a/jack/tests/com/android/jack/ClasspathTest.java b/jack/tests/com/android/jack/ClasspathTest.java
index 94b7b42f..54b98f40 100644
--- a/jack/tests/com/android/jack/ClasspathTest.java
+++ b/jack/tests/com/android/jack/ClasspathTest.java
@@ -82,9 +82,8 @@ public class ClasspathTest {
}
{
- File testOut = new File(outFolder, "classes.dex");
Options testOptions = TestTools.buildCommandLineArgs(new File(testFolder, "jack"));
- testOptions.setOutputFile(testOut);
+ testOptions.setOutputDir(outFolder);
testOptions.addJayceImport(lib2Out);
testOptions.setClasspath(lib1BisOut.getAbsolutePath());
TestTools.runCompilation(testOptions);
diff --git a/jack/tests/com/android/jack/ConstantTest.java b/jack/tests/com/android/jack/ConstantTest.java
index ffcf4447..bfb74046 100644
--- a/jack/tests/com/android/jack/ConstantTest.java
+++ b/jack/tests/com/android/jack/ConstantTest.java
@@ -16,6 +16,8 @@
package com.android.jack;
+import com.android.jack.backend.dex.DexFileWriter;
+
import junit.framework.Assert;
import org.jf.dexlib.CodeItem;
@@ -75,10 +77,11 @@ public class ConstantTest {
TestTools.runCompilation(TestTools.buildCommandLineArgs(TestTools
.getJackTestsWithJackFolder("constant/test005")));
- File out = TestTools.createTempFile("uselessConstantInstructions", ".dex");
+ File outFolder = TestTools.createTempDir("uselessConstantInstructions", "dex");
+ File out = new File(outFolder, DexFileWriter.DEX_FILENAME);
TestTools.compileSourceToDex(new Options(),
TestTools.getJackTestsWithJackFolder("constant/test005"),
- TestTools.getClasspathAsString(BOOTCLASSPATH), out, false);
+ TestTools.getClasspathAsString(BOOTCLASSPATH), outFolder, false);
DexFile dexFile = new DexFile(out);
CodeItem ci =
diff --git a/jack/tests/com/android/jack/DxTest.java b/jack/tests/com/android/jack/DxTest.java
index 521c9f32..aaa875f6 100644
--- a/jack/tests/com/android/jack/DxTest.java
+++ b/jack/tests/com/android/jack/DxTest.java
@@ -16,6 +16,8 @@
package com.android.jack;
+import com.android.jack.backend.dex.DexFileWriter;
+
import junit.framework.Assert;
import org.jf.dexlib.ClassDataItem.EncodedMethod;
@@ -70,10 +72,11 @@ public class DxTest {
*/
@Test
public void testRegisterOverlapping002() throws Exception {
- File out = TestTools.createTempFile("registerOverlapping", ".dex");
+ File outFolder = TestTools.createTempDir("registerOverlapping", "dex");
+ File out = new File(outFolder, DexFileWriter.DEX_FILENAME);
TestTools.compileSourceToDex(new Options(),
TestTools.getJackTestsWithJackFolder("dx/overlapping"),
- TestTools.getClasspathAsString(BOOTCLASSPATH), out, false);
+ TestTools.getClasspathAsString(BOOTCLASSPATH), outFolder, false);
DexFile dexFile = new DexFile(out);
EncodedMethod em =
@@ -89,10 +92,11 @@ public class DxTest {
*/
@Test
public void testRegisterOverlapping001() throws Exception {
- File out = TestTools.createTempFile("registerOverlapping", ".dex");
+ File outFolder = TestTools.createTempDir("registerOverlapping", "dex");
+ File out = new File(outFolder, DexFileWriter.DEX_FILENAME);
TestTools.compileSourceToDex(new Options(),
TestTools.getJackTestsWithJackFolder("dx/overlapping"),
- TestTools.getClasspathAsString(BOOTCLASSPATH), out, false);
+ TestTools.getClasspathAsString(BOOTCLASSPATH), outFolder, false);
DexFile dexFile = new DexFile(out);
EncodedMethod em =
diff --git a/jack/tests/com/android/jack/FibonacciThreeAddressTest.java b/jack/tests/com/android/jack/FibonacciThreeAddressTest.java
index 85021198..c648c8a5 100644
--- a/jack/tests/com/android/jack/FibonacciThreeAddressTest.java
+++ b/jack/tests/com/android/jack/FibonacciThreeAddressTest.java
@@ -16,6 +16,7 @@
package com.android.jack;
+import com.android.jack.backend.dex.DexFileWriter;
import com.android.jack.dx.dex.file.ClassDefItem;
import com.android.jack.dx.dex.file.DexFile;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
@@ -107,7 +108,8 @@ public class FibonacciThreeAddressTest {
File outputDir = FileUtils.getWorkingDirectory();
Options fiboArgs = TestTools.buildCommandLineArgs(JAVA_FILEPATH);
- File outputFile = new File(outputDir, fiboArgs.getOutputFile().getName());
+ fiboArgs.setOutputDir(outputDir);
+ File outputFile = new File(outputDir, DexFileWriter.DEX_FILENAME);
File outputDirectory = outputFile.getParentFile();
FileUtils.createIfNotExists(outputDirectory);
diff --git a/jack/tests/com/android/jack/NoClasspathTest.java b/jack/tests/com/android/jack/NoClasspathTest.java
index 4aa59f98..5f0d8536 100644
--- a/jack/tests/com/android/jack/NoClasspathTest.java
+++ b/jack/tests/com/android/jack/NoClasspathTest.java
@@ -87,8 +87,8 @@ public class NoClasspathTest {
File extJack = TestTools.createTempFile("ext", ".zip");
TestTools.compileSourceToJack(new Options(), EXT_SOURCELIST, corePath, extJack, true);
- File ext = TestTools.createTempFile("ext", ".dex");
- TestTools.compileJackToDex(new Options(), extJack, ext, false);
+ File extFolder = TestTools.createTempDir("ext", "dex");
+ TestTools.compileJackToDex(new Options(), extJack, extFolder, false);
}
@Test
@@ -117,31 +117,31 @@ public class NoClasspathTest {
TestTools.compileSourceToJack(
new Options(), FRAMEWORK_SOURCELIST, classpath, frameworkJackZip, true);
- File frameworkDex = TestTools.createTempFile("framework", ".dex");
- TestTools.compileJackToDex(new Options(), frameworkJackZip, frameworkDex, false);
+ File frameworkDexFolder = TestTools.createTempDir("framework", "dex");
+ TestTools.compileJackToDex(new Options(), frameworkJackZip, frameworkDexFolder, false);
}
@Test
public void guava() throws Exception {
- File guavaDex = TestTools.createTempFile("guava", ".dex");
- TestTools.compileJackToDex(new Options(), GUAVA_JAR, guavaDex, false);
+ File guavaDexFolder = TestTools.createTempDir("guava", "dex");
+ TestTools.compileJackToDex(new Options(), GUAVA_JAR, guavaDexFolder, false);
}
@Test
public void services() throws Exception {
- File servicesDex = TestTools.createTempFile("service", ".dex");
- TestTools.compileJackToDex(new Options(), SERVICES_JAR, servicesDex, false);
+ File servicesDexFolder = TestTools.createTempDir("service", "dex");
+ TestTools.compileJackToDex(new Options(), SERVICES_JAR, servicesDexFolder, false);
}
@Test
public void arity() throws Exception {
- File arityDex = TestTools.createTempFile("arity", ".dex");
- TestTools.compileJackToDex(new Options(), ARITY_JAR, arityDex, false);
+ File arityDexFolder = TestTools.createTempDir("arity", "dex");
+ TestTools.compileJackToDex(new Options(), ARITY_JAR, arityDexFolder, false);
}
@Test
public void playservices() throws Exception {
- File playServiceDex = TestTools.createTempFile("playservices", ".dex");
- TestTools.compileJackToDex(new Options(), PLAY_SERVICE_JAR, playServiceDex, false);
+ File playServiceDexFolder = TestTools.createTempDir("playservices", "dex");
+ TestTools.compileJackToDex(new Options(), PLAY_SERVICE_JAR, playServiceDexFolder, false);
}
}
diff --git a/jack/tests/com/android/jack/NoPackageTest.java b/jack/tests/com/android/jack/NoPackageTest.java
index c5eeff35..56ba35e3 100644
--- a/jack/tests/com/android/jack/NoPackageTest.java
+++ b/jack/tests/com/android/jack/NoPackageTest.java
@@ -43,8 +43,8 @@ public class NoPackageTest {
File sourceDir = TestTools.getJackTestsWithJackFolder(testName);
TestTools.compileSourceToJack(
new Options(), sourceDir, classpath, tmpDir, false);
- File tmpDex = TestTools.createTempFile("NoPackageTest", ".dex");
- TestTools.compileJackToDex(new Options(), tmpDir, tmpDex, false);
+ File tmpDexFolder = TestTools.createTempDir("NoPackageTest", "dex");
+ TestTools.compileJackToDex(new Options(), tmpDir, tmpDexFolder, false);
}
}
diff --git a/jack/tests/com/android/jack/SwitchesTest.java b/jack/tests/com/android/jack/SwitchesTest.java
index ff9f9ead..15d6ee99 100644
--- a/jack/tests/com/android/jack/SwitchesTest.java
+++ b/jack/tests/com/android/jack/SwitchesTest.java
@@ -16,6 +16,8 @@
package com.android.jack;
+import com.android.jack.backend.dex.DexFileWriter;
+
import junit.framework.Assert;
import org.jf.dexlib.ClassDataItem.EncodedMethod;
@@ -123,11 +125,12 @@ public class SwitchesTest {
*/
@Test
public void testCompile9() throws Exception {
- File out = TestTools.createTempFile("packedSwitchPayloadTest", ".dex");
+ File outFolder = TestTools.createTempDir("packedSwitchPayloadTest", "dex");
+ File out = new File(outFolder, DexFileWriter.DEX_FILENAME);
TestTools.compileSourceToDex(new Options(),
TestTools.getJackTestsWithJackFolder("switchstatement/test009"),
- TestTools.getClasspathAsString(BOOTCLASSPATH), out, false);
+ TestTools.getClasspathAsString(BOOTCLASSPATH), outFolder, false);
DexFile dexFile = new DexFile(out);
EncodedMethod em =
diff --git a/jack/tests/com/android/jack/TestTools.java b/jack/tests/com/android/jack/TestTools.java
index 7e062046..830c47ca 100644
--- a/jack/tests/com/android/jack/TestTools.java
+++ b/jack/tests/com/android/jack/TestTools.java
@@ -18,6 +18,7 @@ package com.android.jack;
import com.android.dx.command.dexer.Main.Arguments;
import com.android.jack.Options.VerbosityLevel;
+import com.android.jack.backend.dex.DexFileWriter;
import com.android.jack.backend.jayce.JackFormatProduct;
import com.android.jack.dx.dex.file.DexFile;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
@@ -413,13 +414,13 @@ public class TestTools {
}
@Nonnull
- public static Options buildCommandLineArgs(@Nonnull File fileOrSourcelist) {
+ public static Options buildCommandLineArgs(@Nonnull File fileOrSourcelist) throws IOException {
return buildCommandLineArgs(fileOrSourcelist, null);
}
@Nonnull
public static Options buildCommandLineArgs(@Nonnull File fileOrSourcelist,
- @CheckForNull File jarjarRules) {
+ @CheckForNull File jarjarRules) throws IOException {
Options options = buildCommandLineArgs(null /* bootclasspath */, null /* classpath */,
new File[]{fileOrSourcelist});
options.jarjarRulesFile = jarjarRules;
@@ -428,16 +429,16 @@ public class TestTools {
}
@Nonnull
- public static Options buildCommandLineArgs(@Nonnull File[] filesOrSourcelists) {
- return buildCommandLineArgs(null /* bootclasspath */, null /* classpath */,
- filesOrSourcelists);
+ public static Options buildCommandLineArgs(@Nonnull File[] filesOrSourcelists)
+ throws IOException {
+ return buildCommandLineArgs(null /* bootclasspath */, null /* classpath */, filesOrSourcelists);
}
@Nonnull
public static Options buildCommandLineArgs(
@CheckForNull File[] bootclasspath, @CheckForNull File[] classpath,
@Nonnull File fileOrSourceList, @CheckForNull ProguardFlags[] proguardFlagsFiles,
- boolean runDxOptimizations, boolean emitDebugInfo) {
+ boolean runDxOptimizations, boolean emitDebugInfo) throws IOException {
Options options = buildCommandLineArgs(bootclasspath, classpath, fileOrSourceList);
options.proguardFlagsFiles = new ArrayList<File>();
options.emitLocalDebugInfo = emitDebugInfo;
@@ -451,17 +452,18 @@ public class TestTools {
options.proguardFlagsFiles.add(proguardFlagsFile);
}
}
+ options.setOutputDir(TestTools.createTempDir("test", "dex"));
return options;
}
@Nonnull
public static Options buildCommandLineArgs(@CheckForNull File[] bootclasspath,
- @CheckForNull File[] classpath, @Nonnull File fileOrSourcelist) {
+ @CheckForNull File[] classpath, @Nonnull File fileOrSourcelist) throws IOException {
return buildCommandLineArgs(bootclasspath, classpath, new File[]{fileOrSourcelist});
}
@Nonnull
public static Options buildCommandLineArgs(@CheckForNull File[] bootclasspath,
- @CheckForNull File[] classpath, @Nonnull File[] filesOrSourcelists) {
+ @CheckForNull File[] classpath, @Nonnull File[] filesOrSourcelists) throws IOException {
Options options = new Options();
if (bootclasspath == null) {
@@ -484,6 +486,7 @@ public class TestTools {
addFile(file, ecjArgs);
}
options.ecjArguments = ecjArgs;
+ options.setOutputDir(TestTools.createTempDir("test", "dex"));
return options;
}
@@ -521,7 +524,8 @@ public class TestTools {
* Build a {@code JSession} by using the monolithic plan.
*/
@Nonnull
- public static JSession buildSession(@Nonnull Options options, @Nonnull RunnableHooks hooks) throws Exception {
+ public static JSession buildSession(@Nonnull Options options, @Nonnull RunnableHooks hooks)
+ throws Exception {
if (options.proguardFlagsFiles != null && !options.proguardFlagsFiles.isEmpty()) {
if (options.flags == null) {
options.flags = new Flags();
@@ -611,7 +615,7 @@ public class TestTools {
boolean useEcjAsRefCompiler = withDebugInfo;
String classpathStr = getClasspathsAsString(bootclasspath, classpath);
- File jackDex = TestTools.createTempFile("jackdex", ".dex");
+ File jackDexFolder = TestTools.createTempDir("jack", "dex");
Options options = new Options();
if (runDxOptimizations) {
@@ -623,7 +627,7 @@ public class TestTools {
compileSourceToDex(options,
fileOrSourceList,
classpathStr,
- jackDex,
+ jackDexFolder,
false /* zip */,
jarjarRules,
proguardFlagFiles,
@@ -631,7 +635,7 @@ public class TestTools {
Options refOptions = buildCommandLineArgs(bootclasspath, classpath, fileOrSourceList);
- TestTools.compareDexToReference(jackDex,
+ TestTools.compareDexToReference(jackDexFolder,
refOptions,
proguardFlagFiles,
null,
@@ -655,11 +659,11 @@ public class TestTools {
}
jackOptions.addProperty(Options.METHOD_FILTER.getName(), "supported-methods");
- File out = TestTools.createTempFile("checklisting", ".dex");
+ File outFolder = TestTools.createTempDir("checklisting", "dex");
TestTools.compileSourceToDex(jackOptions,
fileOrSourceList,
TestTools.getClasspathsAsString(jackBootclasspath, jackClasspath),
- out,
+ outFolder,
false /* zip */);
}
@@ -674,11 +678,11 @@ public class TestTools {
jackOptions.addProperty(Options.METHOD_FILTER.getName(), "supported-methods");
jackOptions.disableDxOptimizations();
- File out = TestTools.createTempFile("checklisting", ".dex");
+ File outFolder = TestTools.createTempDir("checklisting", "dex");
TestTools.compileSourceToDex(jackOptions,
fileOrSourceList,
TestTools.getClasspathsAsString(jackBootclasspath, jackClasspath),
- out,
+ outFolder,
false /* zip */,
null /* jarjarRules */,
proguardFlags,
@@ -802,21 +806,22 @@ public class TestTools {
}
/**
- * Compares the given dex {@link File} to a a dex file generated with a reference compiler and
- * {@code dx}.
- * <p>If {@code stopsOnError} is set to true, the comparison will stop after the first error and
- * the test will fail. If not, the test can succeed even if there are differences found.
+ * Compares the classes.dex file into {@code jackDexFolder} to a a dex file generated with a
+ * reference compiler and {@code dx}.
+ * <p>
+ * If {@code stopsOnError} is set to true, the comparison will stop after the first error and the
+ * test will fail. If not, the test can succeed even if there are differences found.
*
* @param compilerArgs the arguments given to a reference compiler
* @param withDebugInfo generate debug infos and compare them
* @param compareInstructionNumber enable comparison of number of instructions
* @param instructionNumberTolerance tolerance factor for comparison of number of instructions
* @throws DifferenceFoundException if a difference between the two Dex files is found and
- * haltOnError is set to true
+ * haltOnError is set to true
* @throws IOException
* @throws InterruptedException
*/
- private static void compareDexToReference(@Nonnull File jackDex,
+ private static void compareDexToReference(@Nonnull File jackDexFolder,
@Nonnull Options compilerArgs,
@CheckForNull ProguardFlags[] proguardFlags,
@CheckForNull File[] bootclasspath,
@@ -843,7 +848,8 @@ public class TestTools {
// Compare Jack Dex file to reference
new DexComparator(withDebugInfo, strict, false /* compareDebugInfoBinary */,
- compareInstructionNumber, instructionNumberTolerance).compare(refDex, jackDex);
+ compareInstructionNumber, instructionNumberTolerance).compare(refDex,
+ new File(jackDexFolder, DexFileWriter.DEX_FILENAME));
}
private static void unzip(@Nonnull File jarfile, @Nonnull File outputFolder) {
diff --git a/jack/tests/com/android/jack/ToolchainTest.java b/jack/tests/com/android/jack/ToolchainTest.java
index 3d0fd50a..85185590 100644
--- a/jack/tests/com/android/jack/ToolchainTest.java
+++ b/jack/tests/com/android/jack/ToolchainTest.java
@@ -69,8 +69,8 @@ public class ToolchainTest {
TestTools.shrobJackToJack(
new Options(), shrobTestJackOut, classpath, shrobTestShrunkOut, flagFiles, false);
- File shrobTestDexOut = TestTools.createTempFile("shrobbed", ".dex");
- TestTools.compileJackToDex(new Options(), shrobTestShrunkOut, shrobTestDexOut, false);
+ File shrobTestDexOutFolder = TestTools.createTempDir("shrobbed", "dex");
+ TestTools.compileJackToDex(new Options(), shrobTestShrunkOut, shrobTestDexOutFolder, false);
}
@Test
@@ -100,14 +100,14 @@ public class ToolchainTest {
TestTools.compileSourceToJack(
new Options(), BOUNCY_SOURCELIST, corePath.getAbsolutePath(), bouncyCastleJack, true);
- File bouncyCastle = TestTools.createTempFile("bouncy", ".dex");
- TestTools.compileJackToDex(new Options(), bouncyCastleJack, bouncyCastle, false);
+ File bouncyCastleOutFolder = TestTools.createTempDir("bouncy", "dex");
+ TestTools.compileJackToDex(new Options(), bouncyCastleJack, bouncyCastleOutFolder, false);
}
@Test
public void core() throws Exception {
- File coreDex = TestTools.createTempFile("core", ".dex");
- TestTools.compileJackToDex(new Options(), corePath, coreDex, false);
+ File coreOutFolder = TestTools.createTempDir("core", "dex");
+ TestTools.compileJackToDex(new Options(), corePath, coreOutFolder, false);
}
@Test
@@ -118,8 +118,8 @@ public class ToolchainTest {
TestTools.getFromAndroidTree(
"out/host/common/obj/JAVA_LIBRARIES/hamcrest-core-hostdex-jack_intermediates/classes.jar"), junitJack, true);
- File junit = TestTools.createTempFile("junit", ".dex");
- TestTools.compileJackToDex(new Options(), junitJack, junit, false);
+ File junitOutFolder = TestTools.createTempDir("junit", "dex");
+ TestTools.compileJackToDex(new Options(), junitJack, junitOutFolder, false);
}
@Test
@@ -166,7 +166,7 @@ public class ToolchainTest {
TestTools.jarjarJackToJack(
new Options(), jarjarTestJackOut, classpath, jarjarTestRenamedOut, jarjarRules, true);
- File jarjarTestDexOut = TestTools.createTempFile("jarjared", ".dex");
- TestTools.compileJackToDex(new Options(), jarjarTestRenamedOut, jarjarTestDexOut, false);
+ 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
index acf2047c..6016350b 100644
--- a/jack/tests/com/android/jack/WithPhantomTest.java
+++ b/jack/tests/com/android/jack/WithPhantomTest.java
@@ -94,7 +94,7 @@ public class WithPhantomTest {
new ProguardFlags(testFolder, "obf2.flags")),
false /* non-zipped */);
- File tempOut5 = TestTools.createTempFile("jack", ".dex");
+ File tempOut5 = TestTools.createTempDir("jack", "dex");
TestTools.compileJackToDex(new Options(), tempJackFolder, tempOut5, false /* non-zipped */);
}
@@ -147,8 +147,9 @@ public class WithPhantomTest {
new ProguardFlags(testFolder, "obf2.flags")),
false /* non-zipped */);
- File tempOut5 = TestTools.createTempFile("jack", ".dex");
- TestTools.compileJackToDex(new Options(), tempJackFolder, tempOut5, false /* non-zipped */);
+ File tempOutFolder = TestTools.createTempDir("jack", "dex");
+ TestTools.compileJackToDex(new Options(), tempJackFolder, tempOutFolder,
+ false /* non-zipped */);
}
@Category(value = KnownBugs.class)
@@ -180,8 +181,9 @@ public class WithPhantomTest {
new ProguardFlags(testFolder, "obf1.flags")),
false /* non-zipped */);
- File tempOut2 = TestTools.createTempFile("jack", ".dex");
- TestTools.compileJackToDex(new Options(), tempJackFolder, tempOut2, false /* non-zipped */);
+ File tempOutFolder = TestTools.createTempDir("jack", "dex");
+ TestTools.compileJackToDex(new Options(), tempJackFolder, tempOutFolder,
+ false /* non-zipped */);
}
@Test
@@ -205,8 +207,9 @@ public class WithPhantomTest {
new ProguardFlags(testFolder, "obf1.flags")),
false /* non-zipped */);
- File tempOut2 = TestTools.createTempFile("jack", ".dex");
- TestTools.compileJackToDex(new Options(), tempJackFolder, tempOut2, 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/compile/androidtree/core/CoreCompilationTest.java b/jack/tests/com/android/jack/compile/androidtree/core/CoreCompilationTest.java
index a96da5af..0d0147bf 100644
--- a/jack/tests/com/android/jack/compile/androidtree/core/CoreCompilationTest.java
+++ b/jack/tests/com/android/jack/compile/androidtree/core/CoreCompilationTest.java
@@ -21,6 +21,7 @@ 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.sched.vfs.Container;
@@ -60,20 +61,22 @@ public class CoreCompilationTest {
@Test
@Category(SlowTests.class)
public void compileCoreWithJackAndDex() throws Exception {
- File coreDexFromJava = TestTools.createTempFile("coreFromJava", ".dex");
+ File coreDexFolderFromJava = TestTools.createTempDir("coreFromJava", "dex");
+ File coreDexFromJava = new File(coreDexFolderFromJava, DexFileWriter.DEX_FILENAME);
Options options = new Options();
options.addProperty(Options.GENERATE_JACK_FILE.getName(), "true");
File outputFile = new File("/tmp/jackIncrementalOutput");
options.addProperty(
- Options.DEX_OUTPUT_CONTAINER_TYPE.getName(), Container.FILE.toString());
+ Options.DEX_OUTPUT_CONTAINER_TYPE.getName(), Container.DIR.toString());
options.addProperty(Options.JACK_FILE_OUTPUT_DIR.getName(), outputFile.getAbsolutePath());
options.addProperty(
Options.JACK_OUTPUT_CONTAINER_TYPE.getName(), Container.DIR.toString());
- TestTools.compileSourceToDex(options, SOURCELIST, null, coreDexFromJava, false);
+ TestTools.compileSourceToDex(options, SOURCELIST, null, coreDexFolderFromJava, false);
- File coreDexFromJack = TestTools.createTempFile("coreFromJack", ".dex");
- TestTools.compileJackToDex(new Options(), outputFile, coreDexFromJack,
+ File coreDexFolderFromJack = TestTools.createTempDir("coreFromJack", "dex");
+ File coreDexFromJack = new File(coreDexFolderFromJack, DexFileWriter.DEX_FILENAME);
+ TestTools.compileJackToDex(new Options(), outputFile, coreDexFolderFromJack,
false);
// Compare dex files structures and number of instructions
diff --git a/jack/tests/com/android/jack/errorhandling/AnnotationProcessorErrorTest.java b/jack/tests/com/android/jack/errorhandling/AnnotationProcessorErrorTest.java
index 8a606d25..3911598b 100644
--- a/jack/tests/com/android/jack/errorhandling/AnnotationProcessorErrorTest.java
+++ b/jack/tests/com/android/jack/errorhandling/AnnotationProcessorErrorTest.java
@@ -111,6 +111,7 @@ public class AnnotationProcessorErrorTest {
options.setEcjArguments(ecjArgs);
options.setClasspath(TestTools.getDefaultBootclasspathString() + File.pathSeparator
+ te.getJackFolder());
+ options.setOutputDir(TestTools.createTempDir("annot", "dex"));
try {
te.startErrRedirection();
@@ -186,8 +187,9 @@ public class AnnotationProcessorErrorTest {
options.setEcjArguments(ecjArgs);
options.setClasspath(TestTools.getDefaultBootclasspathString() + File.pathSeparator
+ te.getJackFolder());
+
File dexOutput = new File(te.getTestingFolder(), "classes.dex");
- options.setOutputFile(dexOutput);
+ options.setOutputDir(te.getTestingFolder());
te.compile(options);
@@ -220,6 +222,7 @@ public class AnnotationProcessorErrorTest {
options.setEcjArguments(ecjArgs);
options.setClasspath(TestTools.getDefaultBootclasspathString() + File.pathSeparator
+ te.getJackFolder());
+ options.setOutputDir(TestTools.createTempDir("annot", "dex"));
te.compile(options);
diff --git a/jack/tests/com/android/jack/experimental/incremental/IncrementalTestingEnvironment.java b/jack/tests/com/android/jack/experimental/incremental/IncrementalTestingEnvironment.java
index 24658909..a7b3d8e7 100644
--- a/jack/tests/com/android/jack/experimental/incremental/IncrementalTestingEnvironment.java
+++ b/jack/tests/com/android/jack/experimental/incremental/IncrementalTestingEnvironment.java
@@ -18,6 +18,7 @@ package com.android.jack.experimental.incremental;
import com.android.jack.Options;
import com.android.jack.TestTools;
+import com.android.jack.backend.dex.DexFileWriter;
import com.android.jack.backend.jayce.JayceFileImporter;
import com.android.jack.util.ExecuteFile;
import com.android.jack.util.NamingTools;
@@ -78,7 +79,8 @@ public class IncrementalTestingEnvironment extends TestTools {
if (!this.sourceFolder.mkdirs()) {
throw new IOException("Failed to create folder " + this.sourceFolder.getAbsolutePath());
}
- dexFile = new File(testingFolder, "result.dex");
+
+ dexFile = new File(testingFolder, DexFileWriter.DEX_FILENAME);
compilerStateDir = new File(testingFolder, "compileState");
if (!compilerStateDir.exists() && !compilerStateDir.mkdir()) {
throw new IOException("Failed to create folder " + compilerStateDir.getAbsolutePath());
@@ -134,7 +136,7 @@ public class IncrementalTestingEnvironment extends TestTools {
options.setIncrementalFolder(getCompilerStateFolder());
compileSourceToDex(options, sourceFolder,
- TestTools.getClasspathAsString(TestTools.getDefaultBootclasspath()), dexFile);
+ TestTools.getClasspathAsString(TestTools.getDefaultBootclasspath()), testingFolder);
Thread.sleep(1000);
@@ -253,7 +255,7 @@ public class IncrementalTestingEnvironment extends TestTools {
options.setEcjArguments(TestTools.buildEcjArgs());
addFile(sourceFolderOrSourceList, options.getEcjArguments());
options.setClasspath(classpath);
- options.setOutputFile(out);
+ options.setOutputDir(out);
JackIncremental.run(options);
}
}
diff --git a/jack/tests/com/android/jack/java7/SwitchesTest.java b/jack/tests/com/android/jack/java7/SwitchesTest.java
index 914f8fb0..6474af18 100644
--- a/jack/tests/com/android/jack/java7/SwitchesTest.java
+++ b/jack/tests/com/android/jack/java7/SwitchesTest.java
@@ -77,7 +77,7 @@ public class SwitchesTest {
List<File> imports = new ArrayList<File>(1);
imports.add(jackZipFile);
options.setJayceImports(imports);
- File outDexFile = TestTools.createTempFile("tmp", ".dex");
- TestTools.compileJackToDex(options, jackZipFile, outDexFile, false /* zip */);
+ File outDexFolder = TestTools.createTempDir("tmp", "dex");
+ TestTools.compileJackToDex(options, jackZipFile, outDexFolder, false /* zip */);
}
}
diff --git a/jack/tests/com/android/jack/shrob/ShrinkTest.java b/jack/tests/com/android/jack/shrob/ShrinkTest.java
index 263f505d..e3c4f1d0 100644
--- a/jack/tests/com/android/jack/shrob/ShrinkTest.java
+++ b/jack/tests/com/android/jack/shrob/ShrinkTest.java
@@ -126,10 +126,10 @@ public class ShrinkTest extends AbstractTest {
shrinkOption.addJayceImport(jackOut);
TestTools.runCompilation(shrinkOption);
- dexOut = TestTools.createTempFile("ShrinkTest", ".dex");
+ dexOut = TestTools.createTempDir("ShrinkTest", "dex");
Options dxOption = new Options();
dxOption.addJayceImport(shrinkOut);
- dxOption.setOutputFile(dexOut);
+ dxOption.setOutputDir(dexOut);
TestTools.runCompilation(dxOption);
} catch (Exception e) {
diff --git a/jack/tests/com/android/jack/tools/merger/MergerTestTools.java b/jack/tests/com/android/jack/tools/merger/MergerTestTools.java
index 0144cf0f..5677b129 100644
--- a/jack/tests/com/android/jack/tools/merger/MergerTestTools.java
+++ b/jack/tests/com/android/jack/tools/merger/MergerTestTools.java
@@ -20,6 +20,7 @@ import com.android.jack.DexAnnotationsComparator;
import com.android.jack.DexComparator;
import com.android.jack.Options;
import com.android.jack.TestTools;
+import com.android.jack.backend.dex.DexFileWriter;
import com.android.jack.backend.dex.rop.CodeItemBuilder;
import com.android.jack.util.ExecuteFile;
import com.android.sched.scheduler.ScheduleInstance;
@@ -43,14 +44,15 @@ public class MergerTestTools {
public boolean compareMonoDexWithOneDexPerType(@Nonnull File sourceFolder, boolean withDebug)
throws Exception {
- File monoDex = TestTools.createTempFile("mono", ".dex");
+ File monoDexFolder = TestTools.createTempDir("mono", "dex");
+ File monoDex = new File(monoDexFolder, DexFileWriter.DEX_FILENAME);
Options options = new Options();
options.addProperty(Options.EMIT_LINE_NUMBER_DEBUG_INFO.getName(), Boolean.toString(withDebug));
options.addProperty(ScheduleInstance.DEFAULT_RUNNER.getName(), "single-threaded");
options.addProperty(CodeItemBuilder.FORCE_JUMBO.getName(), "true");
TestTools
.compileSourceToDex(options, sourceFolder, TestTools.getDefaultBootclasspathString(),
- monoDex, false /* zip */, null /* jarjarRules */, null /* flagFiles */,
+ monoDexFolder, false /* zip */, null /* jarjarRules */, null /* flagFiles */,
withDebug /* withDebugInfo */);
File oneDexPerTypeMerged = buildOneDexPerType(sourceFolder, withDebug);
@@ -66,7 +68,8 @@ public class MergerTestTools {
public boolean compareMonoDexWithOneDexPerTypeByUsingJackFiles(@Nonnull File sourceFolder,
boolean withDebug) throws Exception {
- File monoDex = TestTools.createTempFile("mono", ".dex");
+ File monoDexFolder = TestTools.createTempDir("mono", "dex");
+ File monoDex = new File(monoDexFolder, DexFileWriter.DEX_FILENAME);
Options options = new Options();
options.addProperty(Options.GENERATE_JACK_FILE.getName(), "true");
@@ -79,7 +82,7 @@ public class MergerTestTools {
options.addProperty(Options.EMIT_LINE_NUMBER_DEBUG_INFO.getName(), Boolean.toString(withDebug));
options.addProperty(ScheduleInstance.DEFAULT_RUNNER.getName(), "single-threaded");
options.addProperty(CodeItemBuilder.FORCE_JUMBO.getName(), "true");
- TestTools.compileSourceToDex(options, sourceFolder, null, monoDex, false);
+ TestTools.compileSourceToDex(options, sourceFolder, null, monoDexFolder, false);
File oneDexPerTypeMerged = buildOneDexPerTypeFromJack(jackOutputFolder, true);
@@ -94,31 +97,34 @@ public class MergerTestTools {
public File buildOneDexPerTypeFromJack(@Nonnull File sourceFolder, boolean withDebug)
throws Exception {
- File multiDex = TestTools.createTempFile("multi", ".dex");
File multiDexFolder = TestTools.createTempDir("multi", "dex");
+ File multiDex = new File(multiDexFolder, DexFileWriter.DEX_FILENAME);
+ File multiDexOnTypePerTypeFolder = TestTools.createTempDir("multiOnDexPerType", "dex");
Options options = new Options();
options.addProperty(Options.EMIT_LINE_NUMBER_DEBUG_INFO.getName(), Boolean.toString(withDebug));
options.addProperty(ScheduleInstance.DEFAULT_RUNNER.getName(), "single-threaded");
options.addProperty(Options.GENERATE_ONE_DEX_PER_TYPE.getName(), "true");
- options.addProperty(Options.DEX_FILE_FOLDER.getName(), multiDexFolder.getAbsolutePath());
+ options.addProperty(Options.DEX_FILE_FOLDER.getName(),
+ multiDexOnTypePerTypeFolder.getAbsolutePath());
- TestTools.compileJackToDex(options, sourceFolder, multiDex, false);
+ TestTools.compileJackToDex(options, sourceFolder, multiDexFolder, false);
return multiDex;
}
public File buildOneDexPerType(@Nonnull File sourceFolder, boolean withDebug) throws Exception {
Options options;
- File multiDex = TestTools.createTempFile("multi", ".dex");
File multiDexFolder = TestTools.createTempDir("multi", "dex");
+ File multiDex = new File(multiDexFolder, DexFileWriter.DEX_FILENAME);
+ File multiDexOnTypePerTypeFolder = TestTools.createTempDir("multiOnDexPerType", "dex");
options = new Options();
options.addProperty(Options.EMIT_LINE_NUMBER_DEBUG_INFO.getName(), Boolean.toString(withDebug));
options.addProperty(ScheduleInstance.DEFAULT_RUNNER.getName(), "single-threaded");
options.addProperty(Options.GENERATE_ONE_DEX_PER_TYPE.getName(), "true");
- options.addProperty(Options.DEX_FILE_FOLDER.getName(), multiDexFolder.getAbsolutePath());
+ options.addProperty(Options.DEX_FILE_FOLDER.getName(), multiDexOnTypePerTypeFolder.getAbsolutePath());
TestTools
.compileSourceToDex(options, sourceFolder, TestTools.getDefaultBootclasspathString(),
- multiDex, false /* zip */, null /* jarjarRules */, null /* flagFiles */,
+ multiDexFolder, false /* zip */, null /* jarjarRules */, null /* flagFiles */,
withDebug /* withDebugInfo */);
return multiDex;
diff --git a/jack/tests/com/android/jack/transformations/cast/UselessCastRemoverTest.java b/jack/tests/com/android/jack/transformations/cast/UselessCastRemoverTest.java
index 7ee5008b..8be4f387 100644
--- a/jack/tests/com/android/jack/transformations/cast/UselessCastRemoverTest.java
+++ b/jack/tests/com/android/jack/transformations/cast/UselessCastRemoverTest.java
@@ -19,6 +19,7 @@ package com.android.jack.transformations.cast;
import com.android.jack.Options;
import com.android.jack.TestTools;
+import com.android.jack.backend.dex.DexFileWriter;
import com.android.jack.ir.InternalCompilerException;
import com.android.jack.ir.ast.JCastOperation;
import com.android.jack.ir.ast.JMethod;
@@ -149,10 +150,12 @@ public class UselessCastRemoverTest {
@Test
public void test001() throws Exception {
- File out = TestTools.createTempFile("uselessCastInstructions", ".dex");
+ File outFolder = TestTools.createTempDir("uselessCastInstructions", "dex");
+ File out = new File(outFolder, DexFileWriter.DEX_FILENAME);
+
TestTools.compileSourceToDex(new Options(),
TestTools.getJackTestsWithJackFolder("cast/test001"),
- TestTools.getClasspathAsString(TestTools.getDefaultBootclasspath()), out, false);
+ TestTools.getClasspathAsString(TestTools.getDefaultBootclasspath()), outFolder, false);
DexFile dexFile = new DexFile(out);
CodeItem ci =
@@ -166,10 +169,11 @@ public class UselessCastRemoverTest {
@Test
public void test002() throws Exception {
- File out = TestTools.createTempFile("uselessCastInstructions", ".dex");
+ File outFolder = TestTools.createTempDir("uselessCastInstructions", "dex");
+ File out = new File(outFolder, DexFileWriter.DEX_FILENAME);
TestTools.compileSourceToDex(new Options(),
TestTools.getJackTestsWithJackFolder("cast/test002"),
- TestTools.getClasspathAsString(TestTools.getDefaultBootclasspath()), out, false);
+ TestTools.getClasspathAsString(TestTools.getDefaultBootclasspath()), outFolder, false);
DexFile dexFile = new DexFile(out);
CodeItem ci =
@@ -183,10 +187,11 @@ public class UselessCastRemoverTest {
@Test
public void test003() throws Exception {
- File out = TestTools.createTempFile("uselessCastInstructions", ".dex");
+ File outFolder = TestTools.createTempDir("uselessCastInstructions", "dex");
+ File out = new File(outFolder, DexFileWriter.DEX_FILENAME);
TestTools.compileSourceToDex(new Options(),
TestTools.getJackTestsWithJackFolder("cast/test003"),
- TestTools.getClasspathAsString(TestTools.getDefaultBootclasspath()), out, false);
+ TestTools.getClasspathAsString(TestTools.getDefaultBootclasspath()), outFolder, false);
DexFile dexFile = new DexFile(out);
CodeItem ci =
diff --git a/sched/src/com/android/sched/util/codec/OutputVDirCodec.java b/sched/src/com/android/sched/util/codec/OutputVDirCodec.java
index 2fe93f2c..f41be159 100644
--- a/sched/src/com/android/sched/util/codec/OutputVDirCodec.java
+++ b/sched/src/com/android/sched/util/codec/OutputVDirCodec.java
@@ -81,8 +81,6 @@ public class OutputVDirCodec extends FileOrDirCodec
case ZIP:
containerName = "a zip archive";
break;
- case FILE:
- throw new AssertionError();
default:
throw new AssertionError();
}
diff --git a/sched/src/com/android/sched/vfs/Container.java b/sched/src/com/android/sched/vfs/Container.java
index 5a9ab334..894aead0 100644
--- a/sched/src/com/android/sched/vfs/Container.java
+++ b/sched/src/com/android/sched/vfs/Container.java
@@ -20,7 +20,6 @@ package com.android.sched.vfs;
* Container types.
*/
public enum Container {
- FILE,
DIR,
ZIP
} \ No newline at end of file