summaryrefslogtreecommitdiffstats
path: root/dexcomparator/testing/com/android/jack/dexcomparator/test/TestTools.java
diff options
context:
space:
mode:
Diffstat (limited to 'dexcomparator/testing/com/android/jack/dexcomparator/test/TestTools.java')
-rw-r--r--dexcomparator/testing/com/android/jack/dexcomparator/test/TestTools.java60
1 files changed, 60 insertions, 0 deletions
diff --git a/dexcomparator/testing/com/android/jack/dexcomparator/test/TestTools.java b/dexcomparator/testing/com/android/jack/dexcomparator/test/TestTools.java
new file mode 100644
index 00000000..c7aff74d
--- /dev/null
+++ b/dexcomparator/testing/com/android/jack/dexcomparator/test/TestTools.java
@@ -0,0 +1,60 @@
+/*
+ * 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.dexcomparator.test;
+
+import com.android.jack.util.ExecuteFile;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.Nonnull;
+
+public class TestTools {
+
+ @Nonnull
+ private static final File jackJar = new File("../jack/dist/jack.jar");
+ @Nonnull
+ private static final File coreStubsMini = new File("../jack/libs/core-stubs-mini.jar");
+
+ public static void compileToDexWithJack(@Nonnull List<File> sources, @Nonnull File dex) {
+ int size = 8 + sources.size();
+ List<String> argList = new ArrayList<String>(size);
+ argList.add("java");
+ argList.add("-jar");
+ argList.add(jackJar.getAbsolutePath());
+ argList.add("-cp");
+ argList.add(coreStubsMini.getAbsolutePath());
+ argList.add("-o");
+ argList.add(dex.getAbsolutePath());
+ argList.add("--ecj");
+ for (File source : sources) {
+ argList.add(source.getAbsolutePath());
+ }
+
+ ExecuteFile execFile = new ExecuteFile(argList.toArray(new String[size]));
+ if (!execFile.run()) {
+ throw new RuntimeException("Jack exited with an error");
+ }
+ }
+
+ public static void compileToDexWithJack(@Nonnull File source, @Nonnull File dex) {
+ compileToDexWithJack(Collections.singletonList(source), dex);
+ }
+
+}