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(),