Add an intermediate SkyFunction for resolving the external package
The WORKSPACE file parsing needs to be separated into several parts
to enable load of labels in the WORKSPACE file.
This change adds an intermediate SkyFunction, ExternalPackageFunction,
that requires all the WORKSPACE file part to be parsed to resolve
//external: labels.
Issue #824 Step 1.
--
MOS_MIGRATED_REVID=113984026
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
index 7780f7f..ed239f3 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
@@ -130,22 +130,30 @@
new InMemoryMemoizingEvaluator(
ImmutableMap.<SkyFunctionName, SkyFunction>builder()
.put(SkyFunctions.FILE_STATE, new FileStateFunction(tsgm, externalFilesHelper))
- .put(SkyFunctions.FILE_SYMLINK_CYCLE_UNIQUENESS,
+ .put(
+ SkyFunctions.FILE_SYMLINK_CYCLE_UNIQUENESS,
new FileSymlinkCycleUniquenessFunction())
- .put(SkyFunctions.FILE_SYMLINK_INFINITE_EXPANSION_UNIQUENESS,
+ .put(
+ SkyFunctions.FILE_SYMLINK_INFINITE_EXPANSION_UNIQUENESS,
new FileSymlinkInfiniteExpansionUniquenessFunction())
.put(SkyFunctions.FILE, new FileFunction(pkgLocatorRef))
- .put(SkyFunctions.PACKAGE,
+ .put(
+ SkyFunctions.PACKAGE,
new PackageFunction(null, null, null, null, null, null, null))
- .put(SkyFunctions.PACKAGE_LOOKUP,
- new PackageLookupFunction(new AtomicReference<>(
- ImmutableSet.<PackageIdentifier>of())))
- .put(SkyFunctions.WORKSPACE_AST,
+ .put(
+ SkyFunctions.PACKAGE_LOOKUP,
+ new PackageLookupFunction(
+ new AtomicReference<>(ImmutableSet.<PackageIdentifier>of())))
+ .put(
+ SkyFunctions.WORKSPACE_AST,
new WorkspaceASTFunction(TestRuleClassProvider.getRuleClassProvider()))
- .put(SkyFunctions.WORKSPACE_FILE,
- new WorkspaceFileFunction(TestRuleClassProvider.getRuleClassProvider(),
+ .put(
+ SkyFunctions.WORKSPACE_FILE,
+ new WorkspaceFileFunction(
+ TestRuleClassProvider.getRuleClassProvider(),
new PackageFactory(TestRuleClassProvider.getRuleClassProvider()),
new BlazeDirectories(pkgRoot, outputBase, pkgRoot)))
+ .put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction())
.build(),
differencer);
PrecomputedValue.BUILD_ID.set(differencer, UUID.randomUUID());