aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis/util
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2017-10-10 23:03:26 +0200
committerGravatar Marcel Hlopko <hlopko@google.com>2017-10-11 10:57:28 +0200
commit3d443255d201d1e64ff0995dc89cb52bc4e5f07f (patch)
treef38e15217d4b513dd68329a5938524b9f72efb97 /src/test/java/com/google/devtools/build/lib/analysis/util
parentb2a2b8c931ef420078ff11dce16120de8f725c88 (diff)
Small refactoring of AnalysisTestCase to allow alternate SkyframeExecutor implementations.
PiperOrigin-RevId: 171730718
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis/util')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java41
1 files changed, 25 insertions, 16 deletions
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<BuildInfoFactory> 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.<DiffAwareness.Factory>of(),
- Predicates.<PathFragment>alwaysFalse(),
- analysisMock.getSkyFunctions(directories),
- ImmutableList.<SkyValueDirtinessChecker>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.