aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2018-05-02 03:54:12 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-02 03:55:24 -0700
commit769a424f64636967a886c76a8efc24e34eb22f7a (patch)
treeae020bf48283bcddeca8fb3b47784238954c3739 /src/test/java/com/google/devtools/build/lib/analysis
parent4ee7f114387187c8b578b7f41674b9e68593d20e (diff)
Update test code to support finding deferred param files.
RELNOTES: None PiperOrigin-RevId: 195072243
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java44
1 files changed, 29 insertions, 15 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index 5e438a77c5..f80db7e6d1 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -44,9 +44,12 @@ import com.google.devtools.build.lib.actions.ArtifactRoot;
import com.google.devtools.build.lib.actions.CommandAction;
import com.google.devtools.build.lib.actions.CommandLine;
import com.google.devtools.build.lib.actions.CommandLineExpansionException;
+import com.google.devtools.build.lib.actions.CommandLines;
+import com.google.devtools.build.lib.actions.CommandLines.CommandLineAndParamFileInfo;
import com.google.devtools.build.lib.actions.MapBasedActionGraph;
import com.google.devtools.build.lib.actions.MiddlemanFactory;
import com.google.devtools.build.lib.actions.MutableActionGraph;
+import com.google.devtools.build.lib.actions.ParameterFile;
import com.google.devtools.build.lib.actions.ResourceManager;
import com.google.devtools.build.lib.actions.ResourceSet;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
@@ -660,6 +663,14 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
/** Locates the first parameter file used by the action and returns its command line. */
@Nullable
protected final CommandLine paramFileCommandLineForAction(Action action) {
+ if (action instanceof SpawnAction) {
+ CommandLines commandLines = ((SpawnAction) action).getCommandLines();
+ for (CommandLineAndParamFileInfo pair : commandLines.getCommandLines()) {
+ if (pair.paramFileInfo != null) {
+ return pair.commandLine;
+ }
+ }
+ }
ParameterFileWriteAction parameterFileWriteAction = paramFileWriteActionForAction(action);
return parameterFileWriteAction != null ? parameterFileWriteAction.getCommandLine() : null;
}
@@ -668,10 +679,8 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
@Nullable
protected final Iterable<String> paramFileArgsForAction(Action action)
throws CommandLineExpansionException {
- ParameterFileWriteAction parameterFileWriteAction = paramFileWriteActionForAction(action);
- return parameterFileWriteAction != null
- ? parameterFileWriteAction.getCommandLine().arguments()
- : null;
+ CommandLine commandLine = paramFileCommandLineForAction(action);
+ return commandLine != null ? commandLine.arguments() : null;
}
/**
@@ -682,27 +691,32 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
@Nullable
protected final Iterable<String> paramFileArgsOrActionArgs(CommandAction action)
throws CommandLineExpansionException {
- ParameterFileWriteAction parameterFileWriteAction = paramFileWriteActionForAction(action);
- return parameterFileWriteAction != null
- ? parameterFileWriteAction.getCommandLine().arguments()
- : action.getArguments();
+ CommandLine commandLine = paramFileCommandLineForAction(action);
+ return commandLine != null ? commandLine.arguments() : action.getArguments();
}
/** Locates the first parameter file used by the action and returns its contents. */
@Nullable
protected final String paramFileStringContentsForAction(Action action)
throws CommandLineExpansionException, IOException {
+ if (action instanceof SpawnAction) {
+ CommandLines commandLines = ((SpawnAction) action).getCommandLines();
+ for (CommandLineAndParamFileInfo pair : commandLines.getCommandLines()) {
+ if (pair.paramFileInfo != null) {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ParameterFile.writeParameterFile(
+ out,
+ pair.commandLine.arguments(),
+ pair.paramFileInfo.getFileType(),
+ pair.paramFileInfo.getCharset());
+ return new String(out.toByteArray(), pair.paramFileInfo.getCharset());
+ }
+ }
+ }
ParameterFileWriteAction parameterFileWriteAction = paramFileWriteActionForAction(action);
return parameterFileWriteAction != null ? parameterFileWriteAction.getStringContents() : null;
}
- // TODO(b/37444705): Remove this method
- @Deprecated
- @Nullable
- protected final ParameterFileWriteAction findParamsFileAction(SpawnAction spawnAction) {
- return paramFileWriteActionForAction(spawnAction);
- }
-
@Nullable
private ParameterFileWriteAction paramFileWriteActionForAction(Action action) {
for (Artifact input : action.getInputs()) {