diff options
author | 2016-04-06 12:31:07 +0000 | |
---|---|---|
committer | 2016-04-07 11:45:11 +0000 | |
commit | c0e5bc50f946c6b127485aeee133c149283ae352 (patch) | |
tree | cd382125be5cc2a5132646312c164f2c95be90c1 /src/test/java/com/google/devtools/build/lib/analysis | |
parent | c23ba45553699b5d8b8ac1520adb307fd7e4e7ee (diff) |
Move FDO support to the analysis phase by wrapping FdoSupport in its own SkyFunction.
This removes one of the two reasons for the existence of BuildConfiguration#prepareToBuild() which makes implementing dynamic configurations impossible and also makes FDO support halfway sane; now FDO is exactly as ugly as remote repositories, that is to say, reasonably okay.
Ideally, we'd implement the zip extraction as an Action and make it a TreeArtifact, but support for TreeArtifacts is not mature yet enough, so it's not possible at the moment.
--
MOS_MIGRATED_REVID=119150223
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis')
3 files changed, 21 insertions, 1 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java index 86c2f9727b..670780c611 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java @@ -16,7 +16,9 @@ package com.google.devtools.build.lib.analysis.mock; import com.google.common.base.Functions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList.Builder; +import com.google.common.collect.ImmutableMap; import com.google.common.io.ByteStreams; +import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.ConfigurationCollectionFactory; import com.google.devtools.build.lib.analysis.config.ConfigurationFactory; import com.google.devtools.build.lib.analysis.util.AnalysisMock; @@ -32,6 +34,8 @@ import com.google.devtools.build.lib.packages.util.MockToolsConfig; import com.google.devtools.build.lib.rules.android.AndroidConfiguration; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader; +import com.google.devtools.build.lib.rules.cpp.FdoSupportFunction; +import com.google.devtools.build.lib.rules.cpp.FdoSupportValue; import com.google.devtools.build.lib.rules.java.JavaConfigurationLoader; import com.google.devtools.build.lib.rules.java.JvmConfigurationLoader; import com.google.devtools.build.lib.rules.objc.J2ObjcConfiguration; @@ -42,6 +46,8 @@ import com.google.devtools.build.lib.testutil.BuildRuleWithDefaultsBuilder; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; +import com.google.devtools.build.skyframe.SkyFunction; +import com.google.devtools.build.skyframe.SkyFunctionName; import java.io.IOException; import java.io.InputStream; @@ -221,4 +227,12 @@ public final class BazelAnalysisMock extends AnalysisMock { public MockCcSupport ccSupport() { return BazelMockCcSupport.INSTANCE; } + + @Override + public ImmutableMap<SkyFunctionName, SkyFunction> getSkyFunctions(BlazeDirectories directories) { + ImmutableMap.Builder<SkyFunctionName, SkyFunction> skyFunctions = ImmutableMap.builder(); + skyFunctions.putAll(super.getSkyFunctions(directories)); + skyFunctions.put(FdoSupportValue.SKYFUNCTION, new FdoSupportFunction()); + return skyFunctions.build(); + } } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java index ba70915558..e9e9844082 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java @@ -134,5 +134,11 @@ public abstract class AnalysisMock { public Collection<String> getOptionOverrides() { return delegate.getOptionOverrides(); } + + @Override + public ImmutableMap<SkyFunctionName, SkyFunction> getSkyFunctions( + BlazeDirectories directories) { + return delegate.getSkyFunctions(directories); + } } } 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 abb7a79772..a690340f7c 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 @@ -1503,7 +1503,7 @@ public abstract class BuildViewTestCase extends FoundationTestCase { @Override public Artifact getEmbeddedToolArtifact(String embeddedPath) { - throw new UnsupportedOperationException(); + return null; } @Override |