aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar twerth <twerth@google.com>2018-06-26 06:23:24 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-26 06:24:27 -0700
commitaf0825dd2d588e4074f84392af16f4799895f6c4 (patch)
tree5d422d086827ee43f24edd21bde6eaeb70250a8c
parentacd21a57bbe47e30f46e6fd6a843e63196c28078 (diff)
Add convenience methods to check for flag existence and values in command lines.
RELNOTES: None PiperOrigin-RevId: 202118168
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java32
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;