Просмотр исходного кода

x/mode: more tests and a quick note

Blake Mizerany 1 год назад
Родитель
Сommit
be7fe0d6d8
2 измененных файлов с 6 добавлено и 0 удалено
  1. 4 0
      x/model/name.go
  2. 2 0
      x/model/name_test.go

+ 4 - 0
x/model/name.go

@@ -477,6 +477,10 @@ func Parts(s string) iter.Seq2[NamePart, string] {
 		state, j := PartDigest, len(s)
 		for i := len(s) - 1; i >= 0; i-- {
 			if partLen++; partLen > MaxNamePartLen {
+				// catch a part that is too long early, so
+				// we don't keep spinning on it, waiting for
+				// an isInValidPart check which would scan
+				// over it again.
 				yield(PartInvalid, "")
 				return
 			}

+ 2 - 0
x/model/name_test.go

@@ -60,6 +60,8 @@ var testNames = map[string]fields{
 	"x@sha123-1": {model: "x", digest: "sha123-1"},
 	"@sha456-2":  {digest: "sha456-2"},
 
+	"@@sha123-1": {},
+
 	// preserves case for build
 	"x+b": {model: "x", build: "b"},