From 3d443255d201d1e64ff0995dc89cb52bc4e5f07f Mon Sep 17 00:00:00 2001 From: janakr Date: Tue, 10 Oct 2017 23:03:26 +0200 Subject: Small refactoring of AnalysisTestCase to allow alternate SkyframeExecutor implementations. PiperOrigin-RevId: 171730718 --- .../build/lib/analysis/util/AnalysisTestCase.java | 41 +++++++++++++--------- 1 file changed, 25 insertions(+), 16 deletions(-) (limited to 'src/test/java/com/google/devtools/build/lib/analysis/util') diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java index a93637c7af..0960a53c83 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java @@ -13,7 +13,6 @@ // limitations under the License. package com.google.devtools.build.lib.analysis.util; -import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSortedSet; @@ -30,6 +29,7 @@ import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.ServerDirectories; +import com.google.devtools.build.lib.analysis.buildinfo.BuildInfoFactory; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection; import com.google.devtools.build.lib.analysis.config.BuildOptions; @@ -55,14 +55,13 @@ import com.google.devtools.build.lib.pkgcache.PathPackageLocator; import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction; import com.google.devtools.build.lib.skyframe.BazelSkyframeExecutorConstants; import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey; -import com.google.devtools.build.lib.skyframe.DiffAwareness; import com.google.devtools.build.lib.skyframe.PrecomputedValue; import com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor; -import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker; import com.google.devtools.build.lib.skyframe.SkyframeExecutor; import com.google.devtools.build.lib.skyframe.util.SkyframeExecutorTestUtils; import com.google.devtools.build.lib.testutil.FoundationTestCase; import com.google.devtools.build.lib.testutil.TestConstants; +import com.google.devtools.build.lib.testutil.TestConstants.InternalTestExecutionMode; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; @@ -158,6 +157,23 @@ public abstract class AnalysisTestCase extends FoundationTestCase { useRuleClassProvider(analysisMock.createRuleClassProvider()); } + protected SkyframeExecutor createSkyframeExecutor( + PackageFactory pkgFactory, ImmutableList buildInfoFactories) { + return SequencedSkyframeExecutor.create( + pkgFactory, + directories, + workspaceStatusActionFactory, + buildInfoFactories, + ImmutableList.of(), + input -> false, + analysisMock.getSkyFunctions(directories), + ImmutableList.of(), + PathFragment.EMPTY_FRAGMENT, + BazelSkyframeExecutorConstants.CROSS_REPOSITORY_LABEL_VIOLATION_STRATEGY, + BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY, + BazelSkyframeExecutorConstants.ACTION_ON_IO_EXCEPTION_READING_BUILD_FILE); + } + /** * Changes the rule class provider to be used for the loading and the analysis phase. */ @@ -169,19 +185,8 @@ public abstract class AnalysisTestCase extends FoundationTestCase { .getPackageFactoryBuilderForTesting(directories) .build(ruleClassProvider, scratch.getFileSystem()); skyframeExecutor = - SequencedSkyframeExecutor.create( - pkgFactory, - directories, - workspaceStatusActionFactory, - ruleClassProvider.getBuildInfoFactories(), - ImmutableList.of(), - Predicates.alwaysFalse(), - analysisMock.getSkyFunctions(directories), - ImmutableList.of(), - PathFragment.EMPTY_FRAGMENT, - BazelSkyframeExecutorConstants.CROSS_REPOSITORY_LABEL_VIOLATION_STRATEGY, - BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY, - BazelSkyframeExecutorConstants.ACTION_ON_IO_EXCEPTION_READING_BUILD_FILE); + createSkyframeExecutor(pkgFactory, ruleClassProvider.getBuildInfoFactories()); + TestConstants.processSkyframeExecutorForTesting(skyframeExecutor); PackageCacheOptions packageCacheOptions = Options.getDefaults(PackageCacheOptions.class); packageCacheOptions.showLoadingProgress = true; @@ -210,6 +215,10 @@ public abstract class AnalysisTestCase extends FoundationTestCase { return AnalysisMock.get(); } + protected InternalTestExecutionMode getInternalTestExecutionMode() { + return InternalTestExecutionMode.NORMAL; + } + /** * Sets host and target configuration using the specified options, falling back to the default * options for unspecified ones, and recreates the build view. -- cgit v1.2.3