diff options
author | 2017-09-07 22:16:06 +0200 | |
---|---|---|
committer | 2017-09-08 09:47:26 +0200 | |
commit | d852e484d8114829ad2d7a98f075a823889f5469 (patch) | |
tree | 7cc5fa6eb7d2853e2ce6e1a523a380b7eeb2a7ab /src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctionEnvironmentForTesting.java | |
parent | f7fc22e6fd665e73fe98846efa36a60e4bad05fe (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.java | 12 |
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(); |