diff options
author | 2017-06-19 16:55:24 -0400 | |
---|---|---|
committer | 2017-06-20 14:35:24 -0400 | |
commit | bfd1d3384b41ac9e563afe5c95afa010d8c19f4a (patch) | |
tree | 275fb466b04a28b668685655f7473d4b32f863da /src/test/java/com/google/devtools/build/lib/skyframe | |
parent | 44dd226a540ace2ef1c348f778512616de82ce31 (diff) |
Adding support for SHA256 for remote execution. Switch remote execution to use
the currently defined hash function for blobs. Some refactoring. Adding an option to set the hash function in the remote worker, defaulting to the current behavior (unfortunately it is a build option, have not found a clean way to specify it at runtime).
BUG=62622420
TESTED=remote worker
RELNOTES: none
PiperOrigin-RevId: 159473116
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skyframe')
4 files changed, 13 insertions, 11 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 b8afb21ad9..16b7a39387 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 @@ -40,6 +40,7 @@ import com.google.devtools.build.lib.actions.util.TestAction.DummyAction; import com.google.devtools.build.lib.events.NullEventHandler; import com.google.devtools.build.lib.util.Pair; import com.google.devtools.build.lib.vfs.FileStatus; +import com.google.devtools.build.lib.vfs.FileSystem.HashFunction; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; @@ -82,7 +83,7 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase { Artifact output = createDerivedArtifact("output"); Path path = output.getPath(); file(path, "contents"); - assertValueMatches(path.stat(), expectDigest ? path.getMD5Digest() : null, evaluateFAN(output)); + assertValueMatches(path.stat(), expectDigest ? path.getDigest() : null, evaluateFAN(output)); } @Test @@ -129,10 +130,10 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase { setupRoot( new CustomInMemoryFs() { @Override - public byte[] getMD5Digest(Path path) throws IOException { + public byte[] getDigest(Path path, HashFunction hf) throws IOException { return path.getBaseName().equals("unreadable") ? expectedDigest - : super.getMD5Digest(path); + : super.getDigest(path, hf); } }); @@ -186,7 +187,7 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase { setupRoot( new CustomInMemoryFs() { @Override - public byte[] getMD5Digest(Path path) throws IOException { + public byte[] getDigest(Path path, HashFunction hf) throws IOException { throw exception; } }); @@ -231,7 +232,7 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase { Path path = artifact.getPath(); writeFile(path, "hello"); //Non-empty file. FileArtifactValue value = create(artifact); - assertThat(value.getDigest()).isEqualTo(path.getMD5Digest()); + assertThat(value.getDigest()).isEqualTo(path.getDigest()); try { value.getModifiedTime(); fail("mtime for non-empty file should not be stored."); @@ -259,7 +260,7 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase { writeFile(path, ""); path.setLastModifiedTime(1L); FileArtifactValue value = create(artifact); - assertThat(value.getDigest()).isEqualTo(path.getMD5Digest()); + assertThat(value.getDigest()).isEqualTo(path.getDigest()); assertThat(value.getSize()).isEqualTo(0L); } diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java index 43d0353a1a..50b98a6967 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java @@ -49,6 +49,7 @@ import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; import com.google.devtools.build.lib.vfs.FileStatus; import com.google.devtools.build.lib.vfs.FileSystem; +import com.google.devtools.build.lib.vfs.FileSystem.HashFunction; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; @@ -814,15 +815,15 @@ public class FileFunctionTest { fs = new CustomInMemoryFs(manualClock) { @Override - protected byte[] getMD5Digest(Path path) throws IOException { + protected byte[] getDigest(Path path, HashFunction hf) throws IOException { digestCalls.incrementAndGet(); - return super.getMD5Digest(path); + return super.getDigest(path, hf); } }; pkgRoot = fs.getRootDirectory().getRelative("root"); Path file = file("file"); FileSystemUtils.writeContentAsLatin1(file, Strings.repeat("a", 20)); - byte[] digest = file.getMD5Digest(); + byte[] digest = file.getDigest(); expectedCalls++; assertThat(digestCalls.get()).isEqualTo(expectedCalls); FileValue value = valueForPath(file); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java index 515096105b..2bd2ba9f44 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java @@ -822,7 +822,7 @@ public class FilesystemValueCheckerTest { @Nullable @Override public byte[] getDigest() throws IOException { - return path.getMD5Digest(); + return path.getDigest(); } @Override diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java index 647d90f885..1c4af40c85 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java @@ -102,7 +102,7 @@ public class TreeArtifactMetadataTest extends ArtifactFunctionTestCase { // breaking changes. Map<String, Metadata> digestBuilder = new HashMap<>(); for (PathFragment child : children) { - Metadata subdigest = new Metadata(tree.getPath().getRelative(child).getMD5Digest()); + Metadata subdigest = new Metadata(tree.getPath().getRelative(child).getDigest()); digestBuilder.put(child.getPathString(), subdigest); } assertThat(DigestUtils.fromMetadata(digestBuilder).getDigestBytesUnsafe()) |