diff options
author | ccalvarin <ccalvarin@google.com> | 2018-06-21 18:57:26 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-06-21 18:59:08 -0700 |
commit | bda12a1b239235de0169b14760214e43f839bed8 (patch) | |
tree | ad47596f2e0d52dbaf7faf1fb7239145cbaa8b8f /src/test/java/com/google/devtools/build/lib/vfs | |
parent | a8d7357b7dc66e0531c298e4d369e6342fcf94b7 (diff) |
Move HashFunction out of FileSystem, and turn it into a class, instead of an enum.
Now that we aren't using enum names for the hash functions, we also accept the standard names, such as SHA-256.
RELNOTES: None.
PiperOrigin-RevId: 201624286
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/vfs')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/vfs/DigestHashFunctionTest.java | 67 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java | 7 |
2 files changed, 71 insertions, 3 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/DigestHashFunctionTest.java b/src/test/java/com/google/devtools/build/lib/vfs/DigestHashFunctionTest.java new file mode 100644 index 0000000000..e39b3c0a54 --- /dev/null +++ b/src/test/java/com/google/devtools/build/lib/vfs/DigestHashFunctionTest.java @@ -0,0 +1,67 @@ +// Copyright 2018 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package com.google.devtools.build.lib.vfs; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.common.hash.Hashing; +import com.google.devtools.build.lib.vfs.DigestHashFunction.DigestFunctionConverter; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** + * Tests for DigestHashFunction, notably that the static instances can be compared with reference + * equality. + */ +@RunWith(JUnit4.class) +public class DigestHashFunctionTest { + private final DigestFunctionConverter converter = new DigestFunctionConverter(); + + @Test + public void convertReturnsTheSameValueAsTheConstant() throws Exception { + assertThat(converter.convert("sha-256")).isSameAs(DigestHashFunction.SHA256); + assertThat(converter.convert("SHA-256")).isSameAs(DigestHashFunction.SHA256); + assertThat(converter.convert("SHA256")).isSameAs(DigestHashFunction.SHA256); + assertThat(converter.convert("sha256")).isSameAs(DigestHashFunction.SHA256); + + assertThat(converter.convert("SHA-1")).isSameAs(DigestHashFunction.SHA1); + assertThat(converter.convert("sha-1")).isSameAs(DigestHashFunction.SHA1); + assertThat(converter.convert("SHA1")).isSameAs(DigestHashFunction.SHA1); + assertThat(converter.convert("sha1")).isSameAs(DigestHashFunction.SHA1); + + assertThat(converter.convert("MD5")).isSameAs(DigestHashFunction.MD5); + assertThat(converter.convert("md5")).isSameAs(DigestHashFunction.MD5); + } + + @Test + public void lateRegistrationGetsPickedUpByConverter() throws Exception { + DigestHashFunction.register(Hashing.goodFastHash(32), "goodFastHash32"); + + assertThat(converter.convert("goodFastHash32")).isSameAs(converter.convert("GOODFASTHASH32")); + } + + @Test + public void lateRegistrationWithAlternativeNamesGetsPickedUpByConverter() throws Exception { + DigestHashFunction.register( + Hashing.goodFastHash(64), "goodFastHash64", "goodFastHash-64", "good-fast-hash-64"); + + assertThat(converter.convert("goodFastHash64")).isSameAs(converter.convert("GOODFASTHASH64")); + assertThat(converter.convert("goodFastHash64")).isSameAs(converter.convert("goodFastHash-64")); + assertThat(converter.convert("goodFastHash64")) + .isSameAs(converter.convert("good-fast-hash-64")); + assertThat(converter.convert("goodFastHash64")) + .isSameAs(converter.convert("GOOD-fast-HASH-64")); + } +} diff --git a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java index 39c75eaeaa..fdf94298d3 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java @@ -23,7 +23,6 @@ import com.google.devtools.build.lib.testutil.MoreAsserts; import com.google.devtools.build.lib.testutil.TestUtils; import com.google.devtools.build.lib.unix.NativePosixFiles; import com.google.devtools.build.lib.util.Fingerprint; -import com.google.devtools.build.lib.vfs.FileSystem.HashFunction; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; @@ -1305,7 +1304,8 @@ public abstract class FileSystemTest { Fingerprint fp = new Fingerprint(); fp.addBytes(new byte[0]); assertThat(fp.hexDigestAndReset()) - .isEqualTo(BaseEncoding.base16().lowerCase().encode(xFile.getDigest(HashFunction.MD5))); + .isEqualTo( + BaseEncoding.base16().lowerCase().encode(xFile.getDigest(DigestHashFunction.MD5))); } @Test @@ -1318,7 +1318,8 @@ public abstract class FileSystemTest { Fingerprint fp = new Fingerprint(); fp.addBytes(buffer); assertThat(fp.hexDigestAndReset()) - .isEqualTo(BaseEncoding.base16().lowerCase().encode(xFile.getDigest(HashFunction.MD5))); + .isEqualTo( + BaseEncoding.base16().lowerCase().encode(xFile.getDigest(DigestHashFunction.MD5))); } @Test |