aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctionEnvironmentForTesting.java
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-09-07 22:16:06 +0200
committerGravatar Yun Peng <pcloudy@google.com>2017-09-08 09:47:26 +0200
commitd852e484d8114829ad2d7a98f075a823889f5469 (patch)
tree7cc5fa6eb7d2853e2ce6e1a523a380b7eeb2a7ab /src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctionEnvironmentForTesting.java
parentf7fc22e6fd665e73fe98846efa36a60e4bad05fe (diff)
Add a new toolchain type for c++. In order to do this, PlatformConfiguration is made a legal configuration fragment for every rule class.
Add a default "dummy" c++ toolchain to prevent resolution errors when legacy toolchain selection logic is used. Add toolchain mocks to java and shell tests. PiperOrigin-RevId: 167901210
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctionEnvironmentForTesting.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctionEnvironmentForTesting.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctionEnvironmentForTesting.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctionEnvironmentForTesting.java
index 7df8afddd5..0acb49c1c6 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctionEnvironmentForTesting.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctionEnvironmentForTesting.java
@@ -14,7 +14,9 @@
package com.google.devtools.build.lib.skyframe;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.util.ResourceUsage;
import com.google.devtools.build.skyframe.AbstractSkyFunctionEnvironment;
@@ -33,21 +35,27 @@ public class SkyFunctionEnvironmentForTesting extends AbstractSkyFunctionEnviron
private final BuildDriver buildDriver;
private final ExtendedEventHandler eventHandler;
+ private final SkyframeExecutor skyframeExecutor;
/** Creates a SkyFunctionEnvironmentForTesting that uses a BuildDriver to evaluate skykeys. */
public SkyFunctionEnvironmentForTesting(
- BuildDriver buildDriver, ExtendedEventHandler eventHandler) {
+ BuildDriver buildDriver,
+ ExtendedEventHandler eventHandler,
+ SkyframeExecutor skyframeExecutor) {
this.buildDriver = buildDriver;
this.eventHandler = eventHandler;
+ this.skyframeExecutor = skyframeExecutor;
}
@Override
protected Map<SkyKey, ValueOrUntypedException> getValueOrUntypedExceptions(
Iterable<? extends SkyKey> depKeys) throws InterruptedException {
ImmutableMap.Builder<SkyKey, ValueOrUntypedException> resultMap = ImmutableMap.builder();
+ Iterable<SkyKey> keysToEvaluate = ImmutableList.copyOf(depKeys);
EvaluationResult<SkyValue> evaluationResult =
+ skyframeExecutor.evaluateSkyKeys(eventHandler, keysToEvaluate, true);
buildDriver.evaluate(depKeys, true, ResourceUsage.getAvailableProcessors(), eventHandler);
- for (SkyKey depKey : depKeys) {
+ for (SkyKey depKey : ImmutableSet.copyOf(depKeys)) {
resultMap.put(depKey, ValueOrExceptionUtils.ofValue(evaluationResult.get(depKey)));
}
return resultMap.build();