Cleanup dump options
This removes dumpInputToFile and dumpInputToDirectory from InternalOptions and instead makes an instance of DumpInputFlags available from InternalOptions.
This also removes the `skipDump` flag from the command builders by instead setting DumpInputFlags.noDump().
Bug: b/236449152
Change-Id: I9c92126d4ca17640ff9936cb1a60279011828970
diff --git a/src/main/java/com/android/tools/r8/BaseCompilerCommand.java b/src/main/java/com/android/tools/r8/BaseCompilerCommand.java
index 7e93145..08c7a84 100644
--- a/src/main/java/com/android/tools/r8/BaseCompilerCommand.java
+++ b/src/main/java/com/android/tools/r8/BaseCompilerCommand.java
@@ -245,7 +245,7 @@
private List<AssertionsConfiguration> assertionsConfiguration = new ArrayList<>();
private List<Consumer<Inspector>> outputInspections = new ArrayList<>();
protected StringConsumer proguardMapConsumer = null;
- private DumpInputFlags dumpInputFlags = DumpInputFlags.noDump();
+ private DumpInputFlags dumpInputFlags = DumpInputFlags.getDefault();
private MapIdProvider mapIdProvider = null;
private SourceFileProvider sourceFileProvider = null;
private boolean isAndroidPlatformBuild = false;
@@ -664,6 +664,15 @@
return isAndroidPlatformBuild;
}
+ /**
+ * Allow to skip to dump into file and dump into directory instruction, this is primarily used
+ * for chained compilation in L8 so there are no duplicated dumps.
+ */
+ B skipDump() {
+ dumpInputFlags = DumpInputFlags.noDump();
+ return self();
+ }
+
B dumpInputToFile(Path file) {
dumpInputFlags = DumpInputFlags.dumpToFile(file);
return self();
diff --git a/src/main/java/com/android/tools/r8/D8Command.java b/src/main/java/com/android/tools/r8/D8Command.java
index 7ea383c..76c2966 100644
--- a/src/main/java/com/android/tools/r8/D8Command.java
+++ b/src/main/java/com/android/tools/r8/D8Command.java
@@ -90,7 +90,6 @@
private String synthesizedClassPrefix = "";
private boolean enableMainDexListCheck = true;
private boolean minimalMainDex = false;
- private boolean skipDump = false;
private final List<ProguardConfigurationSource> mainDexRules = new ArrayList<>();
private boolean enableMissingLibraryApiModeling = false;
@@ -265,15 +264,6 @@
return self();
}
- /**
- * Allow to skip to dump into file and dump into directory instruction, this is primarily used
- * for chained compilation in L8 so there are no duplicated dumps.
- */
- Builder skipDump() {
- skipDump = true;
- return self();
- }
-
@Override
Builder self() {
return this;
@@ -427,7 +417,6 @@
getAssertionsConfiguration(),
getOutputInspections(),
synthesizedClassPrefix,
- skipDump,
enableMainDexListCheck,
minimalMainDex,
mainDexKeepRules,
@@ -447,7 +436,6 @@
private final StringConsumer desugaredLibraryKeepRuleConsumer;
private final DesugaredLibrarySpecification desugaredLibrarySpecification;
private final String synthesizedClassPrefix;
- private final boolean skipDump;
private final boolean enableMainDexListCheck;
private final boolean minimalMainDex;
private final ImmutableList<ProguardConfigurationRule> mainDexKeepRules;
@@ -519,7 +507,6 @@
List<AssertionsConfiguration> assertionsConfiguration,
List<Consumer<Inspector>> outputInspections,
String synthesizedClassPrefix,
- boolean skipDump,
boolean enableMainDexListCheck,
boolean minimalMainDex,
ImmutableList<ProguardConfigurationRule> mainDexKeepRules,
@@ -554,7 +541,6 @@
this.desugaredLibraryKeepRuleConsumer = desugaredLibraryKeepRuleConsumer;
this.desugaredLibrarySpecification = desugaredLibrarySpecification;
this.synthesizedClassPrefix = synthesizedClassPrefix;
- this.skipDump = skipDump;
this.enableMainDexListCheck = enableMainDexListCheck;
this.minimalMainDex = minimalMainDex;
this.mainDexKeepRules = mainDexKeepRules;
@@ -571,7 +557,6 @@
desugaredLibraryKeepRuleConsumer = null;
desugaredLibrarySpecification = null;
synthesizedClassPrefix = null;
- skipDump = false;
enableMainDexListCheck = true;
minimalMainDex = false;
mainDexKeepRules = null;
@@ -669,7 +654,7 @@
internal.configureAndroidPlatformBuild(getAndroidPlatformBuild());
- internal.setDumpInputFlags(getDumpInputFlags(), skipDump);
+ internal.setDumpInputFlags(getDumpInputFlags());
internal.dumpOptions = dumpOptions();
return internal;
diff --git a/src/main/java/com/android/tools/r8/L8Command.java b/src/main/java/com/android/tools/r8/L8Command.java
index dce9604..b9fe11b 100644
--- a/src/main/java/com/android/tools/r8/L8Command.java
+++ b/src/main/java/com/android/tools/r8/L8Command.java
@@ -217,7 +217,7 @@
internal.apiModelingOptions().disableApiCallerIdentification();
internal.apiModelingOptions().disableMissingApiModeling();
- internal.setDumpInputFlags(getDumpInputFlags(), false);
+ internal.setDumpInputFlags(getDumpInputFlags());
internal.dumpOptions = dumpOptions();
return internal;
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index 1496f40..d2ec70f 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java
+++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -114,7 +114,6 @@
private InputDependencyGraphConsumer inputDependencyGraphConsumer = null;
private final List<FeatureSplit> featureSplits = new ArrayList<>();
private String synthesizedClassPrefix = "";
- private boolean skipDump = false;
private boolean enableMissingLibraryApiModeling = false;
private final ProguardConfigurationParserOptions.Builder parserOptionsBuilder =
@@ -286,15 +285,6 @@
}
/**
- * Allow to skip to dump into file and dump into directory instruction, this is primarily used
- * for chained compilation in L8 so there are no duplicated dumps.
- */
- Builder skipDump() {
- skipDump = true;
- return self();
- }
-
- /**
* Set a consumer for receiving the proguard usage information.
*
* <p>Note that any subsequent calls to this method will replace the previous setting.
@@ -632,7 +622,6 @@
getAssertionsConfiguration(),
getOutputInspections(),
synthesizedClassPrefix,
- skipDump,
getThreadCount(),
getDumpInputFlags(),
getMapIdProvider(),
@@ -734,7 +723,6 @@
private final DesugaredLibrarySpecification desugaredLibrarySpecification;
private final FeatureSplitConfiguration featureSplitConfiguration;
private final String synthesizedClassPrefix;
- private final boolean skipDump;
private final boolean enableMissingLibraryApiModeling;
/** Get a new {@link R8Command.Builder}. */
@@ -820,7 +808,6 @@
List<AssertionsConfiguration> assertionsConfiguration,
List<Consumer<Inspector>> outputInspections,
String synthesizedClassPrefix,
- boolean skipDump,
int threadCount,
DumpInputFlags dumpInputFlags,
MapIdProvider mapIdProvider,
@@ -865,7 +852,6 @@
this.desugaredLibrarySpecification = desugaredLibrarySpecification;
this.featureSplitConfiguration = featureSplitConfiguration;
this.synthesizedClassPrefix = synthesizedClassPrefix;
- this.skipDump = skipDump;
this.enableMissingLibraryApiModeling = enableMissingLibraryApiModeling;
}
@@ -889,7 +875,6 @@
desugaredLibrarySpecification = null;
featureSplitConfiguration = null;
synthesizedClassPrefix = null;
- skipDump = false;
enableMissingLibraryApiModeling = false;
}
@@ -1053,7 +1038,7 @@
internal.threadCount = getThreadCount();
}
- internal.setDumpInputFlags(getDumpInputFlags(), skipDump);
+ internal.setDumpInputFlags(getDumpInputFlags());
internal.dumpOptions = dumpOptions();
return internal;
diff --git a/src/main/java/com/android/tools/r8/dex/ApplicationReader.java b/src/main/java/com/android/tools/r8/dex/ApplicationReader.java
index f00f7fb..c5f80d7 100644
--- a/src/main/java/com/android/tools/r8/dex/ApplicationReader.java
+++ b/src/main/java/com/android/tools/r8/dex/ApplicationReader.java
@@ -41,6 +41,7 @@
import com.android.tools.r8.utils.ClasspathClassCollection;
import com.android.tools.r8.utils.DescriptorUtils;
import com.android.tools.r8.utils.DexVersion;
+import com.android.tools.r8.utils.DumpInputFlags;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.LibraryClassCollection;
import com.android.tools.r8.utils.MainDexListParser;
@@ -49,9 +50,7 @@
import com.android.tools.r8.utils.ThreadUtils;
import com.android.tools.r8.utils.Timing;
import java.io.IOException;
-import java.nio.file.Files;
import java.nio.file.Path;
-import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -113,7 +112,7 @@
inputApp.getProguardMapInputData(),
executorService,
ProgramClassCollection.defaultConflictResolver(options.reporter),
- false);
+ DumpInputFlags.noDump());
}
public final LazyLoadedDexApplication read(
@@ -131,19 +130,17 @@
ExecutorService executorService,
ProgramClassConflictResolver resolver)
throws IOException {
- return read(proguardMap, executorService, resolver, true);
+ return read(proguardMap, executorService, resolver, options.getDumpInputFlags());
}
public final LazyLoadedDexApplication read(
StringResource proguardMap,
ExecutorService executorService,
ProgramClassConflictResolver resolver,
- boolean shouldDump)
+ DumpInputFlags dumpInputFlags)
throws IOException {
assert verifyMainDexOptionsCompatible(inputApp, options);
- if (shouldDump) {
- dumpApplication();
- }
+ dumpApplication(dumpInputFlags);
if (options.testing.verifyInputs) {
inputApp.validateInputs();
@@ -184,31 +181,19 @@
return builder.build();
}
- private void dumpApplication() throws IOException {
- Path dumpOutput = null;
- boolean cleanDump = false;
- if (options.dumpInputToFile != null) {
- dumpOutput = Paths.get(options.dumpInputToFile);
- } else if (options.dumpInputToDirectory != null) {
- dumpOutput =
- Paths.get(options.dumpInputToDirectory).resolve("dump" + System.nanoTime() + ".zip");
- } else if (options.testing.dumpAll) {
- cleanDump = true;
- dumpOutput = Paths.get("/tmp").resolve("dump" + System.nanoTime() + ".zip");
+ private void dumpApplication(DumpInputFlags dumpInputFlags) {
+ if (dumpInputFlags.isNoDump()) {
+ return;
}
- if (dumpOutput != null) {
- timing.begin("ApplicationReader.dump");
- inputApp.dump(dumpOutput, options.dumpOptions, options.reporter, options.dexItemFactory());
- if (cleanDump) {
- Files.delete(dumpOutput);
- }
- timing.end();
- Diagnostic message = new StringDiagnostic("Dumped compilation inputs to: " + dumpOutput);
- if (options.dumpInputToFile != null) {
- throw options.reporter.fatalError(message);
- } else if (!cleanDump) {
- options.reporter.info(message);
- }
+ Path dumpOutput = dumpInputFlags.getDumpPath();
+ timing.begin("ApplicationReader.dump");
+ inputApp.dump(dumpOutput, options.dumpOptions, options.reporter, options.dexItemFactory());
+ timing.end();
+ Diagnostic message = new StringDiagnostic("Dumped compilation inputs to: " + dumpOutput);
+ if (dumpInputFlags.shouldFailCompilation()) {
+ throw options.reporter.fatalError(message);
+ } else {
+ options.reporter.info(message);
}
}
diff --git a/src/main/java/com/android/tools/r8/utils/DumpInputFlags.java b/src/main/java/com/android/tools/r8/utils/DumpInputFlags.java
index d37de80..905ba91 100644
--- a/src/main/java/com/android/tools/r8/utils/DumpInputFlags.java
+++ b/src/main/java/com/android/tools/r8/utils/DumpInputFlags.java
@@ -3,53 +3,83 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.utils;
+import com.android.tools.r8.errors.Unreachable;
import java.nio.file.Path;
+import java.nio.file.Paths;
public abstract class DumpInputFlags {
+ private static final String DUMP_INPUT_TO_FILE_PROPERTY = "com.android.tools.r8.dumpinputtofile";
+ private static final String DUMP_INPUT_TO_DIRECTORY_PROPERTY =
+ "com.android.tools.r8.dumpinputtodirectory";
+
+ public static DumpInputFlags getDefault() {
+ String dumpInputToFile = System.getProperty(DUMP_INPUT_TO_FILE_PROPERTY);
+ if (dumpInputToFile != null) {
+ return dumpToFile(Paths.get(dumpInputToFile));
+ }
+ String dumpInputToDirectory = System.getProperty(DUMP_INPUT_TO_DIRECTORY_PROPERTY);
+ if (dumpInputToDirectory != null) {
+ return dumpToDirectory(Paths.get(dumpInputToDirectory));
+ }
+ return noDump();
+ }
+
public static DumpInputFlags noDump() {
return new DumpInputFlags() {
+
@Override
- Path getDumpInputToFile() {
- return null;
+ public Path getDumpPath() {
+ throw new Unreachable();
}
@Override
- Path getDumpInputToDirectory() {
- return null;
+ public boolean isNoDump() {
+ return true;
+ }
+
+ @Override
+ public boolean shouldFailCompilation() {
+ throw new Unreachable();
}
};
}
public static DumpInputFlags dumpToFile(Path file) {
return new DumpInputFlags() {
+
@Override
- Path getDumpInputToFile() {
+ public Path getDumpPath() {
return file;
}
@Override
- Path getDumpInputToDirectory() {
- return null;
+ public boolean shouldFailCompilation() {
+ return true;
}
};
}
- public static DumpInputFlags dumpToDirectory(Path file) {
+ public static DumpInputFlags dumpToDirectory(Path directory) {
return new DumpInputFlags() {
+
@Override
- Path getDumpInputToFile() {
- return null;
+ public Path getDumpPath() {
+ return directory.resolve("dump" + System.nanoTime() + ".zip");
}
@Override
- Path getDumpInputToDirectory() {
- return file;
+ public boolean shouldFailCompilation() {
+ return false;
}
};
}
- abstract Path getDumpInputToFile();
+ public abstract Path getDumpPath();
- abstract Path getDumpInputToDirectory();
+ public boolean isNoDump() {
+ return false;
+ }
+
+ public abstract boolean shouldFailCompilation();
}
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index d338a11..7759cc3 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -278,10 +278,6 @@
// To print memory one also have to enable printtimes.
public boolean printMemory = System.getProperty("com.android.tools.r8.printmemory") != null;
- public String dumpInputToFile = System.getProperty("com.android.tools.r8.dumpinputtofile");
- public String dumpInputToDirectory =
- System.getProperty("com.android.tools.r8.dumpinputtodirectory");
-
// Flag to toggle if DEX code objects should pass-through without IR processing.
public boolean passthroughDexCode = false;
@@ -414,6 +410,8 @@
public boolean emitPermittedSubclassesAnnotationsInDex =
System.getProperty("com.android.tools.r8.emitPermittedSubclassesAnnotationsInDex") != null;
+ private DumpInputFlags dumpInputFlags = DumpInputFlags.getDefault();
+
// Contain the contents of the build properties file from the compiler command.
public DumpOptions dumpOptions;
@@ -462,19 +460,8 @@
return marker;
}
- public void setDumpInputFlags(DumpInputFlags dumpInputFlags, boolean skipDump) {
- if (skipDump) {
- dumpInputToDirectory = null;
- dumpInputToFile = null;
- return;
- }
-
- if (dumpInputFlags.getDumpInputToFile() != null) {
- dumpInputToFile = dumpInputFlags.getDumpInputToFile().toString();
- }
- if (dumpInputFlags.getDumpInputToDirectory() != null) {
- dumpInputToDirectory = dumpInputFlags.getDumpInputToDirectory().toString();
- }
+ public void setDumpInputFlags(DumpInputFlags dumpInputFlags) {
+ this.dumpInputFlags = dumpInputFlags;
}
public boolean hasConsumer() {
@@ -872,6 +859,10 @@
return cfCodeAnalysisOptions;
}
+ public DumpInputFlags getDumpInputFlags() {
+ return dumpInputFlags;
+ }
+
public OpenClosedInterfacesOptions getOpenClosedInterfacesOptions() {
return openClosedInterfacesOptions;
}
@@ -1953,10 +1944,6 @@
public boolean disableShortenLiveRanges = false;
- // Force each call of application read to dump its inputs to a file, which is subsequently
- // deleted. Useful to check that our dump functionality does not cause compilation failure.
- public boolean dumpAll = false;
-
// Option for testing outlining with interface array arguments, see b/132420510.
public boolean allowOutlinerInterfaceArrayArguments = false;
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDumpInputsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDumpInputsTest.java
index 6200ec5..1e475ce 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDumpInputsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDumpInputsTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification;
import com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification;
+import com.android.tools.r8.utils.DumpInputFlags;
import com.android.tools.r8.utils.ZipUtils;
import java.io.IOException;
import java.nio.file.Files;
@@ -58,7 +59,8 @@
testForDesugaredLibrary(parameters, libraryDesugaringSpecification, compilationSpecification)
.addProgramClasses(TestClass.class)
.addKeepMainRule(TestClass.class)
- .addOptionsModification(options -> options.dumpInputToDirectory = dumpDir.toString())
+ .addOptionsModification(
+ options -> options.setDumpInputFlags(DumpInputFlags.dumpToDirectory(dumpDir)))
.allowDiagnosticInfoMessages()
.compile()
.inspectDiagnosticMessages(
diff --git a/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java b/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java
index 05824cc..9fca511 100644
--- a/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java
+++ b/src/test/java/com/android/tools/r8/dump/DumpInputsTest.java
@@ -3,16 +3,19 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dump;
+import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.utils.DescriptorUtils;
+import com.android.tools.r8.utils.DumpInputFlags;
import com.android.tools.r8.utils.ZipUtils;
import java.io.IOException;
import java.nio.file.Files;
@@ -40,6 +43,28 @@
}
@Test
+ public void testDumpToFileOptionsModification() throws Exception {
+ Path dump = temp.newFolder().toPath().resolve("dump.zip");
+ try {
+ testForR8(parameters.getBackend())
+ .addProgramClasses(TestClass.class)
+ .addLibraryFiles(ToolHelper.getJava8RuntimeJar())
+ .addKeepMainRule(TestClass.class)
+ .addOptionsModification(
+ options -> options.setDumpInputFlags(DumpInputFlags.dumpToFile(dump)))
+ .allowDiagnosticErrorMessages()
+ .compileWithExpectedDiagnostics(
+ diagnostics ->
+ diagnostics.assertErrorsMatch(
+ diagnosticMessage(containsString("Dumped compilation inputs to:"))));
+ fail("Expected compilation to fail");
+ } catch (CompilationFailedException e) {
+ // Expected.
+ }
+ verifyDump(dump, false, true);
+ }
+
+ @Test
public void testDumpToFileSystemProperty() throws Exception {
Path dump = temp.newFolder().toPath().resolve("dump.zip");
try {
@@ -47,11 +72,11 @@
.addJvmFlag("-Dcom.android.tools.r8.dumpinputtofile=" + dump)
.addProgramClasses(TestClass.class)
.compile();
+ fail("Expected external compilation to exit");
} catch (AssertionError e) {
- verifyDump(dump, false, true);
- return;
+ // Expected.
}
- fail("Expected external compilation to exit");
+ verifyDump(dump, false, true);
}
@Test
@@ -70,7 +95,7 @@
}
@Test
- public void testDumpToDirectorySystemProperty() throws Exception {
+ public void testDumpToDirectoryOptionsModification() throws Exception {
Path dumpDir = temp.newFolder().toPath();
testForR8(parameters.getBackend())
.addProgramClasses(TestClass.class)
@@ -78,14 +103,28 @@
// Ensure the compilation and run can actually succeed.
.addLibraryFiles(ToolHelper.getJava8RuntimeJar())
.addKeepMainRule(TestClass.class)
- .addOptionsModification(options -> options.dumpInputToDirectory = dumpDir.toString())
+ .addOptionsModification(
+ options -> options.setDumpInputFlags(DumpInputFlags.dumpToDirectory(dumpDir)))
.allowDiagnosticInfoMessages()
.compile()
.assertAllInfoMessagesMatch(containsString("Dumped compilation inputs to:"))
.run(parameters.getRuntime(), TestClass.class)
.assertSuccessWithOutputLines("Hello, world");
+ verifyDumpDirectory(dumpDir, false, true);
+ }
- verifyDumpDirectory(dumpDir, false, false);
+ @Test
+ public void testDumpToDirectorySystemProperty() throws Exception {
+ Path dumpDir = temp.newFolder().toPath();
+ testForExternalR8(parameters.getBackend(), parameters.getRuntime())
+ .addJvmFlag("-Dcom.android.tools.r8.dumpinputtodirectory=" + dumpDir.toString())
+ .addProgramClasses(TestClass.class)
+ // Setting a directory will allow compilation to continue.
+ // Ensure the compilation and run can actually succeed.
+ .addLibraryFiles(ToolHelper.getJava8RuntimeJar())
+ .addKeepMainRule(TestClass.class)
+ .compile();
+ verifyDumpDirectory(dumpDir, false, true);
}
@Test
@@ -95,7 +134,6 @@
.dumpInputToDirectory(dumpDir.toString())
.addProgramClasses(TestClass.class)
.compile();
-
verifyDumpDirectory(dumpDir, false, false);
}
diff --git a/src/test/java/com/android/tools/r8/dump/DumpMainDexInputsTest.java b/src/test/java/com/android/tools/r8/dump/DumpMainDexInputsTest.java
index 1d01be7..f0372a8 100644
--- a/src/test/java/com/android/tools/r8/dump/DumpMainDexInputsTest.java
+++ b/src/test/java/com/android/tools/r8/dump/DumpMainDexInputsTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
import com.android.tools.r8.utils.AndroidApiLevel;
+import com.android.tools.r8.utils.DumpInputFlags;
import com.android.tools.r8.utils.FileUtils;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.ZipUtils;
@@ -103,7 +104,8 @@
.addMainDexListFiles(
mainDexListForMainDexFile1AndMainDexFile2(), mainDexListForMainDexFile3())
.addMainDexListClasses(MainDexClass1.class, MainDexClass2.class, TestClass.class)
- .addOptionsModification(options -> options.dumpInputToDirectory = dumpDir.toString())
+ .addOptionsModification(
+ options -> options.setDumpInputFlags(DumpInputFlags.dumpToDirectory(dumpDir)))
.compileWithExpectedDiagnostics(
diagnostics ->
diagnostics
@@ -131,7 +133,8 @@
.addInnerClasses(DumpMainDexInputsTest.class)
.addMainDexRulesFiles(newMainDexRulesPath1(), newMainDexRulesPath2())
.addMainDexKeepClassRules(MainDexClass1.class, MainDexClass2.class, TestClass.class)
- .addOptionsModification(options -> options.dumpInputToDirectory = dumpDir.toString())
+ .addOptionsModification(
+ options -> options.setDumpInputFlags(DumpInputFlags.dumpToDirectory(dumpDir)))
.compile()
.assertAllInfoMessagesMatch(containsString("Dumped compilation inputs to:"))
.run(parameters.getRuntime(), TestClass.class)
@@ -150,7 +153,8 @@
.addInnerClasses(DumpMainDexInputsTest.class)
.addMainDexRuleFiles(newMainDexRulesPath1(), newMainDexRulesPath2())
.addMainDexKeepClassRules(MainDexClass1.class, MainDexClass2.class, TestClass.class)
- .addOptionsModification(options -> options.dumpInputToDirectory = dumpDir.toString())
+ .addOptionsModification(
+ options -> options.setDumpInputFlags(DumpInputFlags.dumpToDirectory(dumpDir)))
.addKeepAllClassesRule()
.allowDiagnosticMessages()
.compile()