[gold] Move mapper.IsValidDiffImgID to validation package.
Bug: skia:9350
Change-Id: I38c7eb9a0661c17f35983d22ebd65ca21afcd045
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/236118
Auto-Submit: Leandro Lovisolo <lovisolo@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
diff --git a/golden/go/diffstore/mapper/mapper.go b/golden/go/diffstore/mapper/mapper.go
index 48d824c..5417c2e 100644
--- a/golden/go/diffstore/mapper/mapper.go
+++ b/golden/go/diffstore/mapper/mapper.go
@@ -6,7 +6,6 @@
"go.skia.org/infra/go/util"
"go.skia.org/infra/golden/go/types"
- "go.skia.org/infra/golden/go/validation"
)
// Mapper is the interface to define how the diff metric between two images
@@ -51,15 +50,6 @@
return types.Digest(imageIDs[0]), types.Digest(imageIDs[1])
}
-// IsValidDiffImgID returns true if the given diffImgID is in the correct format.
-func IsValidDiffImgID(diffID string) bool {
- imageIDs := strings.Split(diffID, DiffImageSeparator)
- if len(imageIDs) != 2 {
- return false
- }
- return validation.IsValidDigest(imageIDs[0]) && validation.IsValidDigest(imageIDs[1])
-}
-
func getOrderedDiffID(left, right types.Digest) (types.Digest, types.Digest, string) {
if right < left {
// Make sure the smaller digest is left imageID.
diff --git a/golden/go/diffstore/mem_diffstore.go b/golden/go/diffstore/mem_diffstore.go
index e696f70..c59bf5e 100644
--- a/golden/go/diffstore/mem_diffstore.go
+++ b/golden/go/diffstore/mem_diffstore.go
@@ -294,7 +294,7 @@
fileServer.ServeHTTP(w, r)
} else {
// Validate the requested diff image ID.
- if !mapper.IsValidDiffImgID(imgID) {
+ if !validation.IsValidDiffImgID(imgID) {
noCacheNotFound(w, r)
return
}
diff --git a/golden/go/validation/validation.go b/golden/go/validation/validation.go
index 998bd6f..aed72d2 100644
--- a/golden/go/validation/validation.go
+++ b/golden/go/validation/validation.go
@@ -1,5 +1,11 @@
package validation
+import (
+ "strings"
+
+ "go.skia.org/infra/golden/go/diffstore/mapper"
+)
+
// IsValidDigest returns true if the given string is a valid digest
// on the string level, i.e. it does not check whether we have
// actually seen the given hash but whether it complies with the format
@@ -20,3 +26,12 @@
}
return true
}
+
+// IsValidDiffImgID returns true if the given diffImgID is in the correct format.
+func IsValidDiffImgID(diffID string) bool {
+ imageIDs := strings.Split(diffID, mapper.DiffImageSeparator)
+ if len(imageIDs) != 2 {
+ return false
+ }
+ return IsValidDigest(imageIDs[0]) && IsValidDigest(imageIDs[1])
+}
diff --git a/golden/go/validation/validation_test.go b/golden/go/validation/validation_test.go
index 5ca583c..bf501e2 100644
--- a/golden/go/validation/validation_test.go
+++ b/golden/go/validation/validation_test.go
@@ -17,3 +17,15 @@
assert.False(t, IsValidDigest("766923700b970e4e7ECf9508b8455e0x"))
assert.False(t, IsValidDigest("766923700b970e4e7ecf08b8455e0f"))
}
+
+func TestIsValidDiffImgID(t *testing.T) {
+ unittest.SmallTest(t)
+
+ assert.False(t, IsValidDiffImgID(""))
+ assert.False(t, IsValidDiffImgID("nope"))
+ assert.False(t, IsValidDiffImgID("098f6b-1660f0783f4076284bc18c5f4bdc9608"))
+ assert.False(t, IsValidDiffImgID("098f6bcd4621d373cade4e832627b4f6-1660f0"))
+ assert.False(t, IsValidDiffImgID("HELLOWORLD21d373cade4e832627b4f6-1660f0783f4076284bc18c5f4bdc9608"))
+ assert.False(t, IsValidDiffImgID("098f6bcd4621d373cade4e832627b4f6-HELLOWORLD4076284bc18c5f4bdc9608"))
+ assert.True(t, IsValidDiffImgID("098f6bcd4621d373cade4e832627b4f6-1660f0783f4076284bc18c5f4bdc9608"))
+}