diff options
author | 2017-04-27 18:34:33 +0200 | |
---|---|---|
committer | 2017-04-28 01:01:31 +0200 | |
commit | 7dc34167d797af692add7c87e6e14208efada585 (patch) | |
tree | 4a27819c133a06a0c2b8549e14c73f25e39ac044 /src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java | |
parent | 4edc6422a5675a975168fab184b1a1d6aeaffc16 (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.java | 10 |
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(), |