@ -122,21 +122,6 @@ func TestParseNameParts(t *testing.T) {
} ,
wantFilepath : filepath . Join ( part350 , part80 , part80 , part80 ) ,
} ,
{
in : "@digest" ,
want : Name {
RawDigest : "digest" ,
} ,
wantValidDigest : false ,
} ,
{
in : "model@sha256:123" ,
want : Name {
Model : "model" ,
RawDigest : "sha256:123" ,
} ,
wantValidDigest : true ,
} ,
}
for _ , tt := range cases {
@ -160,22 +145,18 @@ var testCases = map[string]bool{ // name -> valid
"_why/_the/_lucky:_stiff" : true ,
// minimal
"h/n/m:t@d " : true ,
"h/n/m:t" : true ,
"host/namespace/model:tag" : true ,
"host/namespace/model" : false ,
"namespace/model" : false ,
"model" : false ,
"@sha256-1000000000000000000000000000000000000000000000000000000000000000" : false ,
"model@sha256-1000000000000000000000000000000000000000000000000000000000000000" : false ,
"model@sha256:1000000000000000000000000000000000000000000000000000000000000000" : false ,
// long (but valid)
part80 + "/" + part80 + "/" + part80 + ":" + part80 : true ,
part350 + "/" + part80 + "/" + part80 + ":" + part80 : true ,
"h/nn/mm:t@sha256-1000000000000000000000000000000000000000000000000000000000000000" : true , // bare minimum part sizes
"h/nn/mm:t@sha256:1000000000000000000000000000000000000000000000000000000000000000" : true , // bare minimum part sizes
"h/nn/mm:t" : true , // bare minimum part sizes
// unqualified
"m" : false ,
@ -196,11 +177,10 @@ var testCases = map[string]bool{ // name -> valid
"@" : false ,
// not starting with alphanum
"-hh/nn/mm:tt@dd" : false ,
"hh/-nn/mm:tt@dd" : false ,
"hh/nn/-mm:tt@dd" : false ,
"hh/nn/mm:-tt@dd" : false ,
"hh/nn/mm:tt@-dd" : false ,
"-hh/nn/mm:tt" : false ,
"hh/-nn/mm:tt" : false ,
"hh/nn/-mm:tt" : false ,
"hh/nn/mm:-tt" : false ,
// hosts
"host:https/namespace/model:tag" : true ,
@ -334,7 +314,7 @@ func FuzzName(f *testing.F) {
f . Fuzz ( func ( t * testing . T , s string ) {
n := ParseNameBare ( s )
if n . IsValid ( ) {
parts := [ ... ] string { n . Host , n . Namespace , n . Model , n . Tag , n . RawDigest }
parts := [ ... ] string { n . Host , n . Namespace , n . Model , n . Tag }
for _ , part := range parts {
if part == ".." {
t . Errorf ( "unexpected .. as valid part" )