diff options
author | 2017-08-23 16:56:18 +0200 | |
---|---|---|
committer | 2017-08-24 13:53:57 +0200 | |
commit | 8eafe6b57f2838fb911d9f8986309b7dccd93616 (patch) | |
tree | e0ce695ab624e789dd65b5d2787e2de3fdff3068 /src/test/java/com | |
parent | 317a269f17e0ebb3a5d210b80860b681ffbdd923 (diff) |
Store content digests in repository marker files. https://www.bazel.build/designs/2016/10/18/repository-invalidation.html
Change-Id: I6cb01397a35cd32169a0e415f8d7f944e7d840df
PiperOrigin-RevId: 166200841
Diffstat (limited to 'src/test/java/com')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryFunctionTest.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryFunctionTest.java b/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryFunctionTest.java index d550924212..722067011e 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryFunctionTest.java @@ -17,13 +17,20 @@ package com.google.devtools.build.lib.rules.repository; import static com.google.common.truth.Truth.assertThat; import com.google.common.annotations.VisibleForTesting; +import com.google.common.io.BaseEncoding; import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.skyframe.FileContentsProxy; +import com.google.devtools.build.lib.skyframe.FileStateValue; +import com.google.devtools.build.lib.skyframe.FileStateValue.RegularFileStateValue; +import com.google.devtools.build.lib.skyframe.FileValue; +import com.google.devtools.build.lib.skyframe.FileValue.RegularFileValue; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.build.lib.vfs.RootedPath; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyFunctionException; import java.util.Map; @@ -112,4 +119,20 @@ public class RepositoryFunctionTest extends BuildViewTestCase { assertMarkerFileEscaping("a \\\nb"); assertMarkerFileEscaping("a \nb"); } + + @Test + public void testFileValueToMarkerValue() throws Exception { + RootedPath path = RootedPath.toRootedPath(rootDirectory, scratch.file("foo", "bar")); + + // Digest should be returned if the FileStateValue has it. + FileStateValue fsv = new RegularFileStateValue(3, 100, new byte[] {1, 2, 3, 4}, null); + FileValue fv = new RegularFileValue(path, fsv); + assertThat(RepositoryFunction.fileValueToMarkerValue(fv)).isEqualTo("01020304"); + + // Digest should also be returned if the FileStateValue doesn't have it. + fsv = new RegularFileStateValue(3, 100, null, new FileContentsProxy(100, 200)); + fv = new RegularFileValue(path, fsv); + String expectedDigest = BaseEncoding.base16().lowerCase().encode(path.asPath().getDigest()); + assertThat(RepositoryFunction.fileValueToMarkerValue(fv)).isEqualTo(expectedDigest); + } } |