Inject BlazeDirectories into FdoSupportFunction directly, instead of depending on a precomputed value. BlazeDirectories don't change over the lifetime of the Blaze server, and certainly not over the lifetime of a SkyframeExecutor instance, which already had a reference to them.
The goal is getting rid of the precomputed value entirely, but since this change necessitated a fair number of testing changes, I'm mailing this out as a first step.
PiperOrigin-RevId: 169705474
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
index 2afdf03..36378e3 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/IncrementalLoadingTest.java
@@ -463,15 +463,17 @@
addFile("WORKSPACE");
LoadingMock loadingMock = LoadingMock.get();
+ BlazeDirectories directories =
+ new BlazeDirectories(
+ new ServerDirectories(fs.getPath("/install"), fs.getPath("/output")),
+ workspace,
+ loadingMock.getProductName());
skyframeExecutor =
SequencedSkyframeExecutor.create(
loadingMock
- .getPackageFactoryBuilderForTesting()
+ .getPackageFactoryBuilderForTesting(directories)
.build(loadingMock.createRuleClassProvider(), fs),
- new BlazeDirectories(
- new ServerDirectories(fs.getPath("/install"), fs.getPath("/output")),
- workspace,
- loadingMock.getProductName()),
+ directories,
null, /* BinTools */
null, /* workspaceStatusActionFactory */
loadingMock.createRuleClassProvider().getBuildInfoFactories(),