diff options
author | Kristina Chodorow <kchodorow@google.com> | 2015-12-08 12:49:31 +0000 |
---|---|---|
committer | Lukacs Berki <lberki@google.com> | 2015-12-08 13:17:04 +0000 |
commit | f9fdc8dfced8b2b14561720623126a91e04b22cb (patch) | |
tree | 3dd323db49d99bcf61bef0cf9abe4b93a8c1f84b /src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java | |
parent | 258af7b294706bde162a965390ab39f9917a87b1 (diff) |
Don't treat external files as immutable
Fixes #352.
RELNOTES: Files in external repositories are now treated as mutable, which will make the correctness guarantees of using external repositories stronger (existent), but may cause performance penalties.
--
MOS_MIGRATED_REVID=109676408
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java index e05464299f..f7cb45029c 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java @@ -33,9 +33,12 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.MissingInputFileException; import com.google.devtools.build.lib.actions.Root; import com.google.devtools.build.lib.actions.util.TestAction.DummyAction; +import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.events.NullEventHandler; +import com.google.devtools.build.lib.packages.PackageFactory; import com.google.devtools.build.lib.pkgcache.PathPackageLocator; import com.google.devtools.build.lib.skyframe.ActionLookupValue.ActionLookupKey; +import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.testutil.TestUtils; import com.google.devtools.build.lib.util.BlazeClock; import com.google.devtools.build.lib.util.Pair; @@ -91,24 +94,36 @@ public class ArtifactFunctionTest { public final void setUp() throws Exception { setupRoot(new CustomInMemoryFs()); AtomicReference<PathPackageLocator> pkgLocator = - new AtomicReference<>(PathPackageLocator.EMPTY); - ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator); + new AtomicReference<>(new PathPackageLocator(root)); + ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator, false); differencer = new RecordingDifferencer(); evaluator = new InMemoryMemoizingEvaluator( - ImmutableMap.of( - SkyFunctions.FILE_STATE, new FileStateFunction(tsgm, externalFilesHelper), - SkyFunctions.FILE, new FileFunction(pkgLocator, tsgm, externalFilesHelper), - SkyFunctions.ARTIFACT, new ArtifactFunction(Predicates.<PathFragment>alwaysFalse()), - SkyFunctions.ACTION_EXECUTION, new SimpleActionExecutionFunction()), + ImmutableMap.<SkyFunctionName, SkyFunction>builder() + .put(SkyFunctions.FILE_STATE, new FileStateFunction(tsgm, externalFilesHelper)) + .put(SkyFunctions.FILE, new FileFunction(pkgLocator)) + .put(SkyFunctions.ARTIFACT, + new ArtifactFunction(Predicates.<PathFragment>alwaysFalse())) + .put(SkyFunctions.ACTION_EXECUTION, new SimpleActionExecutionFunction()) + .put(SkyFunctions.PACKAGE, + new PackageFunction(null, null, null, null, null, null, null)) + .put(SkyFunctions.PACKAGE_LOOKUP, new PackageLookupFunction(null)) + .put(SkyFunctions.WORKSPACE_FILE, + new WorkspaceFileFunction(TestRuleClassProvider.getRuleClassProvider(), + new PackageFactory(TestRuleClassProvider.getRuleClassProvider()), + new BlazeDirectories(root, root, root))) + .build(), differencer); driver = new SequentialBuildDriver(evaluator); PrecomputedValue.BUILD_ID.set(differencer, UUID.randomUUID()); + PrecomputedValue.PATH_PACKAGE_LOCATOR.set(differencer, pkgLocator.get()); actions = new HashSet<>(); } - private void setupRoot(CustomInMemoryFs fs) { + private void setupRoot(CustomInMemoryFs fs) throws IOException { root = fs.getPath(TestUtils.tmpDir()); + FileSystemUtils.createDirectoryAndParents(root); + FileSystemUtils.createEmptyFile(root.getRelative("WORKSPACE")); } private void assertFileArtifactValueMatches(boolean expectDigest) throws Throwable { |