diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java b/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java index 56d37d5529..975160dc0d 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java @@ -40,6 +40,7 @@ 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.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; @@ -65,6 +66,8 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { private static final int GLOBBING_THREADS = 7; protected LoadingMock loadingMock; + private PackageCacheOptions packageCacheOptions; + private SkylarkSemanticsOptions skylarkSemanticsOptions; protected ConfiguredRuleClassProvider ruleClassProvider; protected PackageFactory packageFactory; protected SkyframeExecutor skyframeExecutor; @@ -72,6 +75,8 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { @Before public final void initializeSkyframeExecutor() throws Exception { loadingMock = LoadingMock.get(); + packageCacheOptions = parsePackageCacheOptions(); + skylarkSemanticsOptions = parseSkylarkSemanticsOptions(); List<RuleDefinition> extraRules = getExtraRules(); if (!extraRules.isEmpty()) { ConfiguredRuleClassProvider.Builder builder = new ConfiguredRuleClassProvider.Builder(); @@ -88,7 +93,7 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { .getPackageFactoryForTesting() .create(ruleClassProvider, null, getEnvironmentExtensions(), scratch.getFileSystem()); skyframeExecutor = createSkyframeExecutor(); - setUpSkyframe(parsePackageCacheOptions()); + setUpSkyframe(); } /** Allows subclasses to augment the {@link RuleDefinition}s available in this test. */ @@ -128,6 +133,7 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { skyframeExecutor.preparePackageLoading( new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)), packageCacheOptions, + Options.getDefaults(SkylarkSemanticsOptions.class), defaultsPackageContents, UUID.randomUUID(), ImmutableMap.<String, String>of(), @@ -135,7 +141,7 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { new TimestampGranularityMonitor(BlazeClock.instance())); } - private void setUpSkyframe(PackageCacheOptions packageCacheOptions) { + private void setUpSkyframe() { PathPackageLocator pkgLocator = PathPackageLocator.create( outputBase, packageCacheOptions.packagePath, reporter, rootDirectory, rootDirectory); packageCacheOptions.showLoadingProgress = true; @@ -143,6 +149,7 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { skyframeExecutor.preparePackageLoading( pkgLocator, packageCacheOptions, + skylarkSemanticsOptions, loadingMock.getDefaultsPackageContent(), UUID.randomUUID(), ImmutableMap.<String, String>of(), @@ -152,15 +159,28 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { ImmutableSet.copyOf(packageCacheOptions.getDeletedPackages())); } - private PackageCacheOptions parsePackageCacheOptions(String... options) throws Exception { + private static PackageCacheOptions parsePackageCacheOptions(String... options) throws Exception { OptionsParser parser = OptionsParser.newOptionsParser(PackageCacheOptions.class); - parser.parse(new String[] { "--default_visibility=public" }); + parser.parse("--default_visibility=public"); parser.parse(options); return parser.getOptions(PackageCacheOptions.class); } + private static SkylarkSemanticsOptions parseSkylarkSemanticsOptions(String... options) + throws Exception { + OptionsParser parser = OptionsParser.newOptionsParser(SkylarkSemanticsOptions.class); + parser.parse(options); + return parser.getOptions(SkylarkSemanticsOptions.class); + } + protected void setPackageCacheOptions(String... options) throws Exception { - setUpSkyframe(parsePackageCacheOptions(options)); + packageCacheOptions = parsePackageCacheOptions(options); + setUpSkyframe(); + } + + protected void setSkylarkSemanticsOptions(String... options) throws Exception { + skylarkSemanticsOptions = parseSkylarkSemanticsOptions(options); + setUpSkyframe(); } protected Target getTarget(String label) |