Check for additions to the directory in new_local_repository
Fixes #806.
RELNOTES: External repository correctness fix: adding a new file/directory as a
child of a new_local_repository is now noticed.
--
MOS_MIGRATED_REVID=120557511
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
index 76b2c11..db0744d 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
@@ -71,7 +71,9 @@
setupRoot(new CustomInMemoryFs());
AtomicReference<PathPackageLocator> pkgLocator = new AtomicReference<>(new PathPackageLocator(
root.getFileSystem().getPath("/outputbase"), ImmutableList.of(root)));
- ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator, false);
+ BlazeDirectories directories = new BlazeDirectories(root, root, root);
+ ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(
+ pkgLocator, false, directories);
differencer = new RecordingDifferencer();
evaluator =
new InMemoryMemoizingEvaluator(
@@ -95,7 +97,7 @@
new WorkspaceFileFunction(
TestRuleClassProvider.getRuleClassProvider(),
new PackageFactory(TestRuleClassProvider.getRuleClassProvider()),
- new BlazeDirectories(root, root, root)))
+ directories))
.put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction())
.build(),
differencer);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
index aa6dcd9..22a8dbe 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
@@ -20,6 +20,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.testing.EqualsTester;
+import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.events.NullEventHandler;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
@@ -59,7 +60,8 @@
AtomicReference<PathPackageLocator> pkgLocator =
new AtomicReference<>(new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)));
deletedPackages = new AtomicReference<>(ImmutableSet.<PackageIdentifier>of());
- ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator, false);
+ ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(
+ pkgLocator, false, new BlazeDirectories(rootDirectory, rootDirectory, rootDirectory));
Map<SkyFunctionName, SkyFunction> skyFunctions = new HashMap<>();
skyFunctions.put(SkyFunctions.PACKAGE_LOOKUP, new PackageLookupFunction(deletedPackages));
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 7e1e1cb..b046950 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
@@ -122,8 +122,9 @@
private SequentialBuildDriver makeDriver(boolean errorOnExternalFiles) {
AtomicReference<PathPackageLocator> pkgLocatorRef = new AtomicReference<>(pkgLocator);
+ BlazeDirectories directories = new BlazeDirectories(pkgRoot, outputBase, pkgRoot);
ExternalFilesHelper externalFilesHelper =
- new ExternalFilesHelper(pkgLocatorRef, errorOnExternalFiles);
+ new ExternalFilesHelper(pkgLocatorRef, errorOnExternalFiles, directories);
differencer = new RecordingDifferencer();
MemoizingEvaluator evaluator =
new InMemoryMemoizingEvaluator(
@@ -152,7 +153,7 @@
new WorkspaceFileFunction(
TestRuleClassProvider.getRuleClassProvider(),
new PackageFactory(TestRuleClassProvider.getRuleClassProvider()),
- new BlazeDirectories(pkgRoot, outputBase, pkgRoot)))
+ directories))
.put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction())
.build(),
differencer);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java
index da88d1f..0dcc58f 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java
@@ -30,6 +30,7 @@
import com.google.devtools.build.lib.actions.FilesetTraversalParams.PackageBoundaryMode;
import com.google.devtools.build.lib.actions.FilesetTraversalParamsFactory;
import com.google.devtools.build.lib.actions.Root;
+import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.events.NullEventHandler;
@@ -82,7 +83,8 @@
new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)));
AtomicReference<ImmutableSet<PackageIdentifier>> deletedPackages =
new AtomicReference<>(ImmutableSet.<PackageIdentifier>of());
- ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator, false);
+ ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(
+ pkgLocator, false, new BlazeDirectories(outputBase, outputBase, rootDirectory));
Map<SkyFunctionName, SkyFunction> skyFunctions = new HashMap<>();
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
index 6be70e2..75a9429 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
@@ -103,7 +103,9 @@
AtomicReference<PathPackageLocator> pkgLocator = new AtomicReference<>(new PathPackageLocator(
fs.getPath("/output_base"), ImmutableList.of(pkgRoot)));
- ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator, false);
+ BlazeDirectories directories = new BlazeDirectories(pkgRoot, pkgRoot, pkgRoot);
+ ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(
+ pkgLocator, false, directories);
skyFunctions.put(SkyFunctions.FILE_STATE, new FileStateFunction(
new AtomicReference<TimestampGranularityMonitor>(), externalFilesHelper));
skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator));
@@ -121,7 +123,7 @@
skyFunctions.put(SkyFunctions.WORKSPACE_FILE,
new WorkspaceFileFunction(TestRuleClassProvider.getRuleClassProvider(),
new PackageFactory(TestRuleClassProvider.getRuleClassProvider()),
- new BlazeDirectories(pkgRoot, pkgRoot, pkgRoot)));
+ directories));
skyFunctions.put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction());
differencer = new RecordingDifferencer();
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java
index 95bf419..850a510 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java
@@ -26,6 +26,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.testing.EqualsTester;
+import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.events.NullEventHandler;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
@@ -122,7 +123,8 @@
private Map<SkyFunctionName, SkyFunction> createFunctionMap() {
AtomicReference<ImmutableSet<PackageIdentifier>> deletedPackages =
new AtomicReference<>(ImmutableSet.<PackageIdentifier>of());
- ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator, false);
+ ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(
+ pkgLocator, false, new BlazeDirectories(root, root, root));
Map<SkyFunctionName, SkyFunction> skyFunctions = new HashMap<>();
skyFunctions.put(SkyFunctions.GLOB, new GlobFunction(alwaysUseDirListing()));
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
index 07edc60..df83967 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
@@ -72,8 +72,9 @@
AtomicReference<PathPackageLocator> pkgLocator = new AtomicReference<>(
new PathPackageLocator(outputBase, ImmutableList.of(emptyPackagePath, rootDirectory)));
deletedPackages = new AtomicReference<>(ImmutableSet.<PackageIdentifier>of());
- ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator, false);
BlazeDirectories directories = new BlazeDirectories(rootDirectory, outputBase, rootDirectory);
+ ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(
+ pkgLocator, false, directories);
Map<SkyFunctionName, SkyFunction> skyFunctions = new HashMap<>();
skyFunctions.put(SkyFunctions.PACKAGE_LOOKUP,
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
index 507e93a..b2a02fb 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
@@ -85,7 +85,9 @@
new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)));
AtomicReference<ImmutableSet<PackageIdentifier>> deletedPackages =
new AtomicReference<>(ImmutableSet.<PackageIdentifier>of());
- ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator, false);
+ BlazeDirectories directories = new BlazeDirectories(rootDirectory, outputBase, rootDirectory);
+ ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(
+ pkgLocator, false, directories);
Map<SkyFunctionName, SkyFunction> skyFunctions = new HashMap<>();
@@ -110,7 +112,7 @@
skyFunctions.put(SkyFunctions.WORKSPACE_FILE,
new WorkspaceFileFunction(TestRuleClassProvider.getRuleClassProvider(),
new PackageFactory(TestRuleClassProvider.getRuleClassProvider()),
- new BlazeDirectories(rootDirectory, outputBase, rootDirectory)));
+ directories));
skyFunctions.put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction());
progressReceiver = new RecordingEvaluationProgressReceiver();
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
index e4e15ef..35afe3c 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
@@ -139,7 +139,9 @@
AtomicReference<PathPackageLocator> pkgLocator =
new AtomicReference<>(new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)));
AtomicReference<TimestampGranularityMonitor> tsgmRef = new AtomicReference<>(tsgm);
- ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator, false);
+ BlazeDirectories directories = new BlazeDirectories(rootDirectory, outputBase, rootDirectory);
+ ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(
+ pkgLocator, false, directories);
differencer = new RecordingDifferencer();
ActionExecutionStatusReporter statusReporter =
@@ -174,7 +176,7 @@
new WorkspaceFileFunction(
TestRuleClassProvider.getRuleClassProvider(),
new PackageFactory(TestRuleClassProvider.getRuleClassProvider()),
- new BlazeDirectories(rootDirectory, outputBase, rootDirectory)))
+ directories))
.put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction())
.build(),
differencer,