aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
diff options
context:
space:
mode:
authorGravatar brandjon <brandjon@google.com>2017-04-27 18:34:33 +0200
committerGravatar Vladimir Moskva <vladmos@google.com>2017-04-28 01:01:31 +0200
commit7dc34167d797af692add7c87e6e14208efada585 (patch)
tree4a27819c133a06a0c2b8549e14c73f25e39ac044 /src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
parent4edc6422a5675a975168fab184b1a1d6aeaffc16 (diff)
Store Skylark command-line flags in Skyframe
This is the first of two CLs for making command line options able to affect the Skylark interpreter. It introduces SkylarkSemanticsOptions, and stores it as a precomputed (injected) value in Skyframe. The next CL will read these options from Skyframe when constructing the Skylark environment. This CL affects the dataflow from command/test initialization to Skyframe. Some code paths, like those used for testing, use the default SkylarkSemanticsOptions and therefore won't be able to use (for example) --incompatible_* flags. The call sites to update were found by searching for uses of defaultVisibility and working upward from there. RELNOTES: None PiperOrigin-RevId: 154432058
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java10
1 files changed, 9 insertions, 1 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 7aa206f881..a7ddfa9228 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
@@ -61,6 +61,7 @@ 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.syntax.SkylarkSemanticsOptions;
import com.google.devtools.build.lib.testutil.FoundationTestCase;
import com.google.devtools.build.lib.testutil.TestRuleClassProvider;
import com.google.devtools.build.lib.util.BlazeClock;
@@ -189,6 +190,7 @@ public abstract class AnalysisTestCase extends FoundationTestCase {
skyframeExecutor.preparePackageLoading(
pkgLocator,
packageCacheOptions,
+ Options.getDefaults(SkylarkSemanticsOptions.class),
ruleClassProvider.getDefaultsPackageContent(
analysisMock.getInvocationPolicyEnforcer().getInvocationPolicy()),
UUID.randomUUID(),
@@ -225,6 +227,7 @@ public abstract class AnalysisTestCase extends FoundationTestCase {
optionsParser = OptionsParser.newOptionsParser(Iterables.concat(Arrays.asList(
ExecutionOptions.class,
PackageCacheOptions.class,
+ SkylarkSemanticsOptions.class,
BuildRequestOptions.class,
BuildView.Options.class),
ruleClassProvider.getConfigurationOptions()));
@@ -314,15 +317,20 @@ public abstract class AnalysisTestCase extends FoundationTestCase {
viewOptions.loadingPhaseThreads = LOADING_PHASE_THREADS;
BuildOptions buildOptions = ruleClassProvider.createBuildOptions(optionsParser);
- PackageCacheOptions packageCacheOptions = optionsParser.getOptions(PackageCacheOptions.class);
+ PackageCacheOptions packageCacheOptions = optionsParser.getOptions(PackageCacheOptions.class);
PathPackageLocator pathPackageLocator = PathPackageLocator.create(
outputBase, packageCacheOptions.packagePath, reporter, rootDirectory, rootDirectory);
packageCacheOptions.showLoadingProgress = true;
packageCacheOptions.globbingThreads = 7;
+
+ SkylarkSemanticsOptions skylarkSemanticsOptions =
+ optionsParser.getOptions(SkylarkSemanticsOptions.class);
+
skyframeExecutor.preparePackageLoading(
pathPackageLocator,
packageCacheOptions,
+ skylarkSemanticsOptions,
ruleClassProvider.getDefaultsPackageContent(
analysisMock.getInvocationPolicyEnforcer().getInvocationPolicy()),
UUID.randomUUID(),