aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar Benjamin Peterson <bp@benjamin.pe>2017-08-23 16:56:18 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-08-24 13:53:57 +0200
commit8eafe6b57f2838fb911d9f8986309b7dccd93616 (patch)
treee0ce695ab624e789dd65b5d2787e2de3fdff3068 /src/test/java/com
parent317a269f17e0ebb3a5d210b80860b681ffbdd923 (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.java23
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);
+ }
}