X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/022107bd52092c658208e74161581c6bedda4a5f..869c50de9a61a8607f9980abd190724d4426aa7d:/services/keepstore/keepstore_test.go diff --git a/services/keepstore/keepstore_test.go b/services/keepstore/keepstore_test.go index 28049506f6..f9d9888f98 100644 --- a/services/keepstore/keepstore_test.go +++ b/services/keepstore/keepstore_test.go @@ -606,7 +606,7 @@ func (s *keepstoreSuite) TestBlockWrite_SkipReadOnly(c *C) { c.Check(ks.mounts["zzzzz-nyw5e-222222222222222"].volume.(*stubVolume).stubLog.String(), HasLen, 0) } -func (s *keepstoreSuite) TestParseLocator(c *C) { +func (s *keepstoreSuite) TestGetLocatorInfo(c *C) { for _, trial := range []struct { locator string ok bool @@ -622,6 +622,15 @@ func (s *keepstoreSuite) TestParseLocator(c *C) { ok: true, expect: locatorInfo{size: 1234, remote: true}}, {locator: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+12345+Zexample+Rzzzzz-abcdef", ok: true, expect: locatorInfo{size: 12345, remote: true}}, + {locator: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+123456+👶🦈+Rzzzzz-abcdef", + ok: true, expect: locatorInfo{size: 123456, remote: true}}, + // invalid: bad hash char + {locator: "aaaaaaaaaaaaaazaaaaaaaaaaaaaaaaa+1234", + ok: false}, + {locator: "aaaaaaaaaaaaaaFaaaaaaaaaaaaaaaaa+1234", + ok: false}, + {locator: "aaaaaaaaaaaaaa⛵aaaaaaaaaaaaaaaaa+1234", + ok: false}, // invalid: hash length != 32 {locator: "", ok: false}, @@ -636,9 +645,18 @@ func (s *keepstoreSuite) TestParseLocator(c *C) { // invalid: first hint is not size {locator: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+Abcdef+1234", ok: false}, + // invalid: leading/trailing/double + + {locator: "+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1234", + ok: false}, + {locator: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1234+", + ok: false}, + {locator: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa++1234", + ok: false}, + {locator: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1234++Abcdef@abcdef", + ok: false}, } { c.Logf("=== %s", trial.locator) - li, err := parseLocator(trial.locator) + li, err := getLocatorInfo(trial.locator) if !trial.ok { c.Check(err, NotNil) continue