diff options
author | 2018-06-26 06:23:24 -0700 | |
---|---|---|
committer | 2018-06-26 06:24:27 -0700 | |
commit | af0825dd2d588e4074f84392af16f4799895f6c4 (patch) | |
tree | 5d422d086827ee43f24edd21bde6eaeb70250a8c /src/test/java | |
parent | acd21a57bbe47e30f46e6fd6a843e63196c28078 (diff) |
Add convenience methods to check for flag existence and values in command lines.
RELNOTES: None
PiperOrigin-RevId: 202118168
Diffstat (limited to 'src/test/java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java | 32 |
1 files changed, 32 insertions, 0 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 704e7d1e00..fa47f7a6c3 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 @@ -163,6 +163,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -2095,6 +2096,37 @@ public abstract class BuildViewTestCase extends FoundationTestCase { return directories.getExecRoot(ruleClassProvider.getRunfilesPrefix()); } + /** Returns true iff commandLine contains the option --flagName followed by arg. */ + protected static boolean containsFlag(String flagName, String arg, Iterable<String> commandLine) { + Iterator<String> iterator = commandLine.iterator(); + while (iterator.hasNext()) { + if (flagName.equals(iterator.next()) && iterator.hasNext() && arg.equals(iterator.next())) { + return true; + } + } + return false; + } + + /** Returns the list of arguments in commandLine that follow after --flagName. */ + protected static ImmutableList<String> flagValue(String flagName, Iterable<String> commandLine) { + ImmutableList.Builder<String> resultBuilder = ImmutableList.builder(); + Iterator<String> iterator = commandLine.iterator(); + boolean found = false; + while (iterator.hasNext()) { + String val = iterator.next(); + if (found) { + if (val.startsWith("--")) { + break; + } + resultBuilder.add(val); + } else if (flagName.equals(val)) { + found = true; + } + } + Preconditions.checkArgument(found); + return resultBuilder.build(); + } + /** Creates instances of {@link ActionExecutionContext} consistent with test case. */ public class ActionExecutionContextBuilder { private MetadataProvider actionInputFileCache = null; |