summaryrefslogtreecommitdiffstats
path: root/jack-tests/src
diff options
context:
space:
mode:
authorJean-Marie Hénaff <jmhenaff@google.com>2015-03-06 16:34:11 +0000
committerJean-Marie Hénaff <jmhenaff@google.com>2015-03-06 16:34:11 +0000
commitb43732ee3d9f9ffcd7595ab657e4c683a1751b3a (patch)
tree6f61704ce9553abc48924becc947ff099a52951e /jack-tests/src
parentd235ed6f21b7b21aefb4b066b0c64acfa2bbb229 (diff)
downloadtoolchain_jack-b43732ee3d9f9ffcd7595ab657e4c683a1751b3a.zip
toolchain_jack-b43732ee3d9f9ffcd7595ab657e4c683a1751b3a.tar.gz
toolchain_jack-b43732ee3d9f9ffcd7595ab657e4c683a1751b3a.tar.bz2
Revert "Start using jack-api for jack API based test toolchains"
This reverts commit d235ed6f21b7b21aefb4b066b0c64acfa2bbb229. Change-Id: Idceeda07056275eb887d42a5aa75b624024554e0
Diffstat (limited to 'jack-tests/src')
-rw-r--r--jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java6
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java14
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java269
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/JackApiToolchainBase.java125
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java193
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java36
-rw-r--r--jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java25
7 files changed, 313 insertions, 355 deletions
diff --git a/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java b/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java
index 11af77b..90bffbc 100644
--- a/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java
+++ b/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java
@@ -22,7 +22,7 @@ import com.android.jack.test.runner.AbstractRuntimeRunner;
import com.android.jack.test.runner.RuntimeRunner;
import com.android.jack.test.toolchain.AbstractTestTools;
import com.android.jack.test.toolchain.IToolchain;
-import com.android.jack.test.toolchain.JackApiToolchainBase;
+import com.android.jack.test.toolchain.JackApiToolchain;
import com.android.jack.test.toolchain.JackBasedToolchain.MultiDexKind;
import com.android.jack.test.toolchain.JillBasedToolchain;
@@ -176,8 +176,8 @@ public class IncrementalTestHelper {
List<Class<? extends IToolchain>> excludeList = new ArrayList<Class<? extends IToolchain>>(1);
excludeList.add(JillBasedToolchain.class);
- JackApiToolchainBase jackToolchain =
- AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class, excludeList);
+ JackApiToolchain jackToolchain =
+ AbstractTestTools.getCandidateToolchain(JackApiToolchain.class, excludeList);
jackToolchain.setIncrementalFolder(getCompilerStateFolder());
jackToolchain.addStaticLibs(imports.toArray(new File[imports.size()]));
jackToolchain.setMultiDexKind(multiDexKind);
diff --git a/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java b/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java
index be3414b..0c9fa32 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/AbstractTestTools.java
@@ -82,10 +82,10 @@ public abstract class AbstractTestTools {
static {
toolchainBuilders = new HashMap<String, ToolchainBuilder>();
- toolchainBuilders.put("jack-cli" , new JackCliToolchainBuilder());
- toolchainBuilders.put("jack-api-v01" , new JackApiV01ToolchainBuilder());
- toolchainBuilders.put("legacy" , new LegacyToolchainBuilder());
- toolchainBuilders.put("jill-legacy" , new LegacyJillToolchainBuilder());
+ toolchainBuilders.put("jack-cli" , new JackCliToolchainBuilder());
+ toolchainBuilders.put("jack-api" , new JackApiToolchainBuilder());
+ toolchainBuilders.put("legacy" , new LegacyToolchainBuilder());
+ toolchainBuilders.put("jill-legacy", new LegacyJillToolchainBuilder());
try {
runtimes.addAll(parseRuntimeList(TestsProperties.getProperty(RUNTIME_LIST_KEY)));
@@ -122,12 +122,12 @@ public abstract class AbstractTestTools {
}
}
- private static class JackApiV01ToolchainBuilder implements ToolchainBuilder {
+ private static class JackApiToolchainBuilder implements ToolchainBuilder {
@Override
@Nonnull
- public JackApiV01Toolchain build() {
- return new JackApiV01Toolchain(getPrebuilt("jack"));
+ public JackApiToolchain build() {
+ return new JackApiToolchain();
}
}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java
new file mode 100644
index 0000000..e48177e
--- /dev/null
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchain.java
@@ -0,0 +1,269 @@
+/*
+ * 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.test.toolchain;
+
+import com.android.jack.Jack;
+import com.android.jack.Options;
+import com.android.jack.Sourcelist;
+import com.android.jack.backend.dex.rop.CodeItemBuilder;
+import com.android.jack.shrob.spec.Flags;
+import com.android.sched.util.config.cli.TokenIterator;
+import com.android.sched.util.location.NoLocation;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import javax.annotation.Nonnull;
+
+/**
+ * This class implements a {@link JackBasedToolchain} by calling Jack via API.
+ */
+public class JackApiToolchain extends JackBasedToolchain {
+
+ @Nonnull
+ private Options jackOptions = new Options();
+
+ JackApiToolchain() {}
+
+ @Override
+ @Nonnull
+ protected JackApiToolchain setVerbosityLevel(@Nonnull Options.VerbosityLevel level) {
+ jackOptions.setVerbosityLevel(level);
+ return this;
+ }
+
+ @Override
+ public void srcToExe(@Nonnull File out, boolean zipFile,
+ @Nonnull File... sources) throws Exception {
+
+ try {
+
+ srcToCommon(sources);
+
+ if (zipFile) {
+ jackOptions.setOutputZip(out);
+ } else {
+ jackOptions.setOutputDir(out);
+ }
+
+ System.setOut(outRedirectStream);
+ System.setErr(errRedirectStream);
+
+ Jack.checkAndRun(jackOptions);
+ } finally {
+ System.setOut(stdOut);
+ System.setErr(stdErr);
+ }
+ }
+
+ @Override
+ public void srcToLib(@Nonnull File out, boolean zipFiles,
+ @Nonnull File... sources) throws Exception {
+
+ try {
+
+ srcToCommon(sources);
+
+ if (zipFiles) {
+ jackOptions.setJayceOutputZip(out);
+ } else {
+ jackOptions.setJayceOutputDir(out);
+ }
+
+ System.setOut(outRedirectStream);
+ System.setErr(errRedirectStream);
+
+ Jack.checkAndRun(jackOptions);
+ } finally {
+ System.setOut(stdOut);
+ System.setErr(stdErr);
+ }
+ }
+
+ private void srcToCommon(@Nonnull File... sources) throws Exception {
+ addProperties(properties, jackOptions);
+
+ jackOptions.setSanityChecks(sanityChecks);
+
+ if (jackOptions.getFlags() != null) {
+ jackOptions.applyShrobFlags();
+ }
+
+ if (classpath.size() > 0) {
+ jackOptions.setClasspath(getClasspathAsString());
+ }
+
+ fillEcjArgs(sources);
+
+ for (File res : resImport) {
+ jackOptions.addResource(res);
+ }
+
+ jackOptions.setImportedLibraries(staticLibs);
+
+ if (jarjarRules != null) {
+ jackOptions.setJarjarRulesFile(jarjarRules);
+ }
+
+ if (proguardFlags.size() > 0) {
+ jackOptions.setProguardFlagsFile(proguardFlags);
+ }
+
+ jackOptions.addProperty(Options.EMIT_LOCAL_DEBUG_INFO.getName(),
+ Boolean.toString(withDebugInfos));
+
+ jackOptions.addProperty(CodeItemBuilder.DEX_OPTIMIZE.getName(),
+ Boolean.toString(!withDebugInfos));
+
+ }
+
+ @Override
+ public void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception {
+
+ try {
+
+ libToCommon(in);
+
+ if (zipFile) {
+ jackOptions.setOutputZip(out);
+ } else {
+ jackOptions.setOutputDir(out);
+ }
+
+ System.setOut(outRedirectStream);
+ System.setErr(errRedirectStream);
+
+ Jack.checkAndRun(jackOptions);
+ } finally {
+ System.setOut(stdOut);
+ System.setErr(stdErr);
+ }
+ }
+
+ @Override
+ public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
+
+ try {
+
+ libToCommon(in);
+
+ if (zipFiles) {
+ jackOptions.setJayceOutputZip(out);
+ } else {
+ jackOptions.setJayceOutputDir(out);
+ }
+
+ System.setOut(outRedirectStream);
+ System.setErr(errRedirectStream);
+
+ Jack.checkAndRun(jackOptions);
+ } finally {
+ System.setOut(stdOut);
+ System.setErr(stdErr);
+ }
+ }
+
+ private void libToCommon(@Nonnull File[] in) {
+ addProperties(properties, jackOptions);
+
+ jackOptions.setSanityChecks(sanityChecks);
+
+ if (jarjarRules != null) {
+ jackOptions.setJarjarRulesFile(jarjarRules);
+ }
+
+ if (classpath.size() > 0) {
+ jackOptions.setClasspath(getClasspathAsString());
+ }
+
+ if (jackOptions.getFlags() != null) {
+ jackOptions.applyShrobFlags();
+ }
+
+ if (proguardFlags.size() > 0) {
+ jackOptions.setProguardFlagsFile(proguardFlags);
+ }
+
+ for (File res : resImport) {
+ jackOptions.addResource(res);
+ }
+
+ List<File> libsToImport = new ArrayList<File>();
+ for (File staticLib : in) {
+ libsToImport.add(staticLib);
+ }
+ libsToImport.addAll(staticLibs);
+ jackOptions.setImportedLibraries(libsToImport);
+
+ }
+
+ @Nonnull
+ public JackApiToolchain setShrobFlags(@Nonnull Flags shrobFlags) {
+ jackOptions.setFlags(shrobFlags);
+ return this;
+ }
+
+ @Override
+ @Nonnull
+ public JackApiToolchain setIncrementalFolder(@Nonnull File incrementalFolder) {
+ jackOptions.setIncrementalFolder(incrementalFolder);
+ return this;
+ }
+
+ private static final void addProperties(@Nonnull Map<String, String> properties,
+ @Nonnull Options jackOptions) {
+ for (Entry<String, String> entry : properties.entrySet()) {
+ jackOptions.addProperty(entry.getKey(), entry.getValue());
+ }
+ }
+
+ private final void fillEcjArgs(@Nonnull File... sources) throws Exception {
+ List<String> ecjArgs = new ArrayList<String>();
+
+ if (annotationProcessorClass != null) {
+ ecjArgs.add("-processor");
+ ecjArgs.add(annotationProcessorClass.getName());
+ }
+
+ if (annotationProcessorOutDir != null) {
+ ecjArgs.add("-d");
+ ecjArgs.add(annotationProcessorOutDir.getAbsolutePath());
+ }
+
+ ArrayList<File> toCompile = new ArrayList<File>();
+ for (File srcFile : sources) {
+ if (srcFile instanceof Sourcelist) {
+ TokenIterator iterator =
+ new TokenIterator(new NoLocation(), '@' + srcFile.getAbsolutePath());
+ while (iterator.hasNext()) {
+ toCompile.add(new File(iterator.next()));
+ }
+ } else {
+ toCompile.add(srcFile);
+ }
+ }
+
+ if (sources.length > 0) {
+ jackOptions.setEcjExtraArguments(ecjArgs);
+ jackOptions.setInputSources(toCompile);
+ }
+ }
+
+}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchainBase.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchainBase.java
deleted file mode 100644
index 33fb3dd..0000000
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiToolchainBase.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2015 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.test.toolchain;
-
-import com.android.jack.api.ConfigNotSupportedException;
-import com.android.jack.api.JackConfig;
-import com.android.jack.api.JackConfigProvider;
-import com.android.jack.api.example.Main;
-import com.android.jack.api.v01.VerbosityLevel;
-import com.android.jack.shrob.spec.Flags;
-import com.android.jack.test.TestConfigurationException;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-
-import javax.annotation.CheckForNull;
-import javax.annotation.Nonnull;
-
-/**
- * This class implements a {@link JackBasedToolchain} by calling Jack via API.
- */
-public abstract class JackApiToolchainBase extends JackBasedToolchain {
-
- @Nonnull
- protected JackConfig config;
-
- @Nonnull
- private String compilerCodeName;
- @Nonnull
- private String compilerVersion;
- @Nonnull
- private String compilerBuildId;
- @Nonnull
- private String compilerCodeBase;
-
- @CheckForNull
- protected File incrementalFolder;
- @Nonnull
- protected VerbosityLevel verbosityLevel = VerbosityLevel.WARNING;
-
- public String getCompilerCodeName() {
- return compilerCodeName;
- }
-
- public String getCompilerVersion() {
- return compilerVersion;
- }
-
- public String getCompilerBuildId() {
- return compilerBuildId;
- }
-
- public String getCompilerCodeBase() {
- return compilerCodeBase;
- }
-
- protected <T extends JackConfig> JackApiToolchainBase(@Nonnull File jackPrebuilt,
- @Nonnull Class<T> jackConfig) {
- try {
- ClassLoader loader;
- JackConfigProvider confProvider;
- loader = URLClassLoader.newInstance(new URL[] {jackPrebuilt.toURI().toURL()},
- Main.class.getClassLoader());
-
- Class<? extends JackConfigProvider> confProviderClass = Class.forName(
- JackConfigProvider.CLASS_NAME, true, loader).asSubclass(JackConfigProvider.class);
-
- JackConfigProvider configProvider = confProviderClass.getConstructor().newInstance();
-
- compilerCodeName = configProvider.getCompilerCodeName();
- compilerVersion = configProvider.getCompilerVersion();
- compilerBuildId = configProvider.getCompilerBuildId();
- compilerCodeBase = configProvider.getCompilerCodeBase();
-
- config = confProviderClass.getConstructor().newInstance().getConfig(jackConfig);
-
- } catch (ConfigNotSupportedException e) {
- throw new TestConfigurationException("Jack API v01 not supported", e);
- } catch (MalformedURLException e) {
- throw new TestConfigurationException(e);
- } catch (ClassNotFoundException e) {
- throw new TestConfigurationException(e);
- } catch (InstantiationException e) {
- throw new TestConfigurationException(e);
- } catch (IllegalAccessException e) {
- throw new TestConfigurationException(e);
- } catch (IllegalArgumentException e) {
- throw new TestConfigurationException(e);
- } catch (InvocationTargetException e) {
- throw new TestConfigurationException(e);
- } catch (NoSuchMethodException e) {
- throw new TestConfigurationException(e);
- } catch (SecurityException e) {
- throw new TestConfigurationException(e);
- }
- }
-
- @Override
- @Nonnull
- public JackApiToolchainBase setIncrementalFolder(@Nonnull File incrementalFolder) {
- this.incrementalFolder = incrementalFolder;
- return this;
- }
-
- @Nonnull
- public abstract JackApiToolchainBase setShrobFlags(@Nonnull Flags shrobFlags);
-
-}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
deleted file mode 100644
index 83efb1e..0000000
--- a/jack-tests/src/com/android/jack/test/toolchain/JackApiV01Toolchain.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2015 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.test.toolchain;
-
-import com.google.common.collect.Lists;
-
-import com.android.jack.Options;
-import com.android.jack.api.v01.Api01Config;
-import com.android.jack.api.v01.ConfigurationException;
-import com.android.jack.api.v01.VerbosityLevel;
-import com.android.jack.shrob.spec.Flags;
-import com.android.jack.test.TestConfigurationException;
-import com.android.sched.vfs.Container;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import javax.annotation.Nonnull;
-
-/**
- * This {@link Toolchain} uses Jack through v01 API
- */
-public class JackApiV01Toolchain extends JackApiToolchainBase {
-
- @Nonnull
- private Api01Config apiV01Config;
-
- JackApiV01Toolchain(@Nonnull File jackPrebuilt) {
- super(jackPrebuilt, Api01Config.class);
- apiV01Config = (Api01Config) config;
- }
-
- @Override
- public void srcToExe(@Nonnull File out, boolean zipFile, @Nonnull File... sources)
- throws Exception {
- srcToCommon(sources);
- setOutputDex(out);
- apiV01Config.getTask().run();
- }
-
- @Override
- public void srcToLib(@Nonnull File out, boolean zipFiles, @Nonnull File... sources)
- throws Exception {
- srcToCommon(sources);
- setOutputJack(out);
- apiV01Config.getTask().run();
- }
-
- @Override
- public void libToExe(@Nonnull File[] in, @Nonnull File out, boolean zipFile) throws Exception {
- libToCommon(in);
- setOutputDex(out);
- apiV01Config.getTask().run();
- }
-
- @Override
- public void libToLib(@Nonnull File[] in, @Nonnull File out, boolean zipFiles) throws Exception {
- libToCommon(in);
- setOutputJack(out);
- apiV01Config.getTask().run();
- }
-
- @Override
- @Nonnull
- public JackApiV01Toolchain setIncrementalFolder(@Nonnull File incrementalFolder) {
- try {
- apiV01Config.setIncrementalDir(incrementalFolder);
- return this;
- } catch (ConfigurationException e) {
- throw new TestConfigurationException(e);
- }
- }
-
- @Override
- @Nonnull
- public JackApiV01Toolchain setVerbose(boolean isVerbose) {
- super.setVerbose(isVerbose);
- try {
- if (isVerbose) {
- apiV01Config.setVerbosityLevel(VerbosityLevel.DEBUG);
- } else {
- apiV01Config.setVerbosityLevel(VerbosityLevel.WARNING);
- }
- return this;
- } catch (ConfigurationException e) {
- throw new TestConfigurationException(e);
- }
- }
-
- @Override
- @Nonnull
- public final JackApiV01Toolchain addProperty(@Nonnull String propertyName,
- @Nonnull String propertyValue) {
- try {
- apiV01Config.setProperty(propertyName, propertyValue);
- return this;
- } catch (ConfigurationException e) {
- throw new TestConfigurationException(e);
- }
- }
-
- @Override
- @Nonnull
- public JackApiV01Toolchain setWithDebugInfos(boolean withDebugInfos) {
- try {
- apiV01Config.setEmitDebug(withDebugInfos);
- return this;
- } catch (ConfigurationException e) {
- throw new TestConfigurationException(e);
- }
- }
-
- @Override
- @Nonnull
- public JackApiV01Toolchain setShrobFlags(@Nonnull Flags shrobFlags) {
- // STOPSHIP(jmhenaff): another CL remove the need for this API
- throw new AssertionError("Must no be used");
- }
-
- @Override
- @Nonnull
- public JackApiV01Toolchain setSanityChecks(boolean sanityChecks) {
- try {
- apiV01Config.setProperty(Options.SANITY_CHECKS.getName(), Boolean.toString(sanityChecks));
- return this;
- } catch (ConfigurationException e) {
- throw new TestConfigurationException(e);
- }
- }
-
- private void srcToCommon(@Nonnull File... sources) throws Exception {
- apiV01Config.setClasspath(classpath);
- apiV01Config.setImportedJackLibraryFiles(staticLibs);
- apiV01Config.setSourceEntries(Lists.newArrayList(sources));
- apiV01Config.setResourceDirs(resImport);
- apiV01Config.setProguardConfigFiles(proguardFlags);
- if (jarjarRules != null) {
- apiV01Config.setJarJarConfigFile(jarjarRules);
- }
- }
-
- private void libToCommon(@Nonnull File... in) throws Exception {
- apiV01Config.setClasspath(classpath);
- List<File> importedLibs = new ArrayList<File>(staticLibs);
- Collections.addAll(importedLibs, in);
- apiV01Config.setImportedJackLibraryFiles(importedLibs);
- apiV01Config.setResourceDirs(resImport);
- apiV01Config.setProguardConfigFiles(proguardFlags);
- if (jarjarRules != null) {
- apiV01Config.setJarJarConfigFile(jarjarRules);
- }
- }
-
- private void setOutputDex(@Nonnull File outDex) throws Exception {
- if (outDex.isDirectory()) {
- apiV01Config.setOutputDexDir(outDex);
- } else {
- apiV01Config.setProperty(Options.DEX_OUTPUT_CONTAINER_TYPE.getName(), Container.ZIP.name());
- apiV01Config.setProperty(Options.GENERATE_DEX_FILE.getName(), "true");
- apiV01Config.setProperty(Options.DEX_OUTPUT_ZIP.getName(), outDex.getAbsolutePath());
- }
- }
-
- private void setOutputJack(@Nonnull File outjack) throws Exception {
- if (!outjack.isDirectory()) {
- apiV01Config.setOutputJackFile(outjack);
- } else {
- apiV01Config.setProperty(Options.LIBRARY_OUTPUT_CONTAINER_TYPE.getName(),
- Container.DIR.name());
- apiV01Config.setProperty(Options.LIBRARY_OUTPUT_DIR.getName(), outjack.getAbsolutePath());
- apiV01Config.setProperty(Options.GENERATE_JACK_LIBRARY.getName(), "true");
- apiV01Config.setProperty(Options.GENERATE_JAYCE_IN_LIBRARY.getName(), "true");
- apiV01Config.setProperty(Options.GENERATE_DEPENDENCIES_IN_LIBRARY.getName(), "true");
- }
- }
-
-}
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java
index 34610eb..b7f0f55 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackBasedToolchain.java
@@ -16,6 +16,8 @@
package com.android.jack.test.toolchain;
+import com.android.jack.Options;
+import com.android.jack.Options.VerbosityLevel;
import com.android.jack.backend.dex.DexFileWriter;
import com.android.jack.backend.dex.MultiDexLegacy;
import com.android.jack.backend.dex.rop.CodeItemBuilder;
@@ -23,7 +25,9 @@ import com.android.jack.test.TestsProperties;
import java.io.File;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
@@ -42,15 +46,21 @@ public abstract class JackBasedToolchain extends AndroidToolchain {
LEGACY
}
-
+ @Nonnull
+ protected final Map<String, String> properties = new HashMap<String, String>();
@CheckForNull
protected File annotationProcessorOutDir;
@Nonnull
protected List<File> resImport = new ArrayList<File>();
+ protected boolean sanityChecks = true;
+
@Nonnull
- public abstract JackBasedToolchain addProperty(@Nonnull String propertyName,
- @Nonnull String propertyValue);
+ public final JackBasedToolchain addProperty(@Nonnull String propertyName,
+ @Nonnull String propertyValue) {
+ properties.put(propertyName, propertyValue);
+ return this;
+ }
public final JackBasedToolchain setMultiDexKind(@Nonnull MultiDexKind kind) {
switch (kind) {
@@ -109,8 +119,26 @@ public abstract class JackBasedToolchain extends AndroidToolchain {
return this;
}
+ @Override
@Nonnull
- public abstract JackBasedToolchain setSanityChecks(boolean sanityChecks);
+ public JackBasedToolchain setVerbose(boolean isVerbose) {
+ super.setVerbose(isVerbose);
+ if (isVerbose) {
+ setVerbosityLevel(VerbosityLevel.DEBUG);
+ } else {
+ setVerbosityLevel(VerbosityLevel.WARNING);
+ }
+ return this;
+ }
+
+ @Nonnull
+ protected abstract JackBasedToolchain setVerbosityLevel(@Nonnull Options.VerbosityLevel level);
+
+ @Nonnull
+ public JackBasedToolchain setSanityChecks(boolean sanityChecks){
+ this.sanityChecks = sanityChecks;
+ return this;
+ }
@Override
@Nonnull
diff --git a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
index 3542d03..280f8c9 100644
--- a/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
+++ b/jack-tests/src/com/android/jack/test/toolchain/JackCliToolchain.java
@@ -22,7 +22,6 @@ import com.android.jack.util.ExecuteFile;
import java.io.File;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -44,10 +43,6 @@ public class JackCliToolchain extends JackBasedToolchain {
protected File incrementalFolder;
@Nonnull
protected Options.VerbosityLevel verbosityLevel = VerbosityLevel.WARNING;
- @Nonnull
- protected final Map<String, String> properties = new HashMap<String, String>();
-
- protected boolean sanityChecks = true;
JackCliToolchain(@Nonnull File prebuilt) {
this.jackPrebuilt = prebuilt;
@@ -55,9 +50,8 @@ public class JackCliToolchain extends JackBasedToolchain {
@Override
@Nonnull
- public JackCliToolchain setVerbose(boolean isVerbose) {
- super.setVerbose(isVerbose);
- verbosityLevel = isVerbose ? VerbosityLevel.DEBUG : VerbosityLevel.WARNING;
+ protected JackCliToolchain setVerbosityLevel(@Nonnull Options.VerbosityLevel level) {
+ verbosityLevel = level;
return this;
}
@@ -312,14 +306,6 @@ public class JackCliToolchain extends JackBasedToolchain {
return this;
}
- @Override
- @Nonnull
- public JackBasedToolchain addProperty(@Nonnull String propertyName,
- @Nonnull String propertyValue) {
- properties.put(propertyName, propertyValue);
- return this;
- }
-
protected static void addProperties(@Nonnull Map<String, String> properties,
@Nonnull List<String> args) {
for (Entry<String, String> entry : properties.entrySet()) {
@@ -328,11 +314,4 @@ public class JackCliToolchain extends JackBasedToolchain {
}
}
- @Override
- @Nonnull
- public JackBasedToolchain setSanityChecks(boolean sanityChecks){
- this.sanityChecks = sanityChecks;
- return this;
- }
-
}