diff --git a/go/delivery/builder_reference_test.go b/go/delivery/builder_reference_test.go index dd9c68a..1f3a085 100644 --- a/go/delivery/builder_reference_test.go +++ b/go/delivery/builder_reference_test.go @@ -86,11 +86,38 @@ func TestOnlyAPushFailureIsBuiltAgainBeforeTheFingerprintChanges(t *testing.T) { {VersionTaken + "@novox/mesh-sdk@0.1.15 holds another file", false}, {RefusedKind + "a package in go", false}, {"go test: 2 failed", true}, + {Retake + "lookup git.novox.be: i/o timeout", true}, } { if got := FailedUntilChanged(c.err); got == c.again { t.Errorf("FailedUntilChanged(%q) = %v", c.err, got) } } + // A retakeable error opens with Retake and is not one that waits for the fingerprint; the count is on the key's value (issue 1748). + for _, c := range []struct { + err string + want bool + }{ + {Retake + "lookup git.novox.be: i/o timeout", true}, + {NotPinned + "x", false}, + {Retake[:4] + " not the prefix", false}, + {"go test: 2 failed", false}, + {"", false}, + {VersionTaken + Retake, false}, + } { + if got := Retakeable(c.err); got != c.want { + t.Errorf("Retakeable(%q) = %v", c.err, got) + } + } + data, err := EncodeBuilderBuild(BuilderBuild{State: BuildFailed, Error: Retake + "x", Retakes: 2}) + if err != nil { + t.Fatal(err) + } + if back, err := DecodeBuilderBuild(data); err != nil || back.Retakes != 2 { + t.Fatalf("decoded %+v, %v", back, err) + } + if Retake != "retakeable: " || MaxRetakes != 3 { + t.Fatal("the retake prefix or its bound changed") + } if NotStored != "not stored: " || NotPinned != "not pinned: " || VersionTaken != "version taken: " || RefusedKind != "refused kind: " { t.Fatal("a prefix changed its words") } @@ -141,32 +168,3 @@ func TestWaitsForIsAPrefixThatIsBuiltAgain(t *testing.T) { t.Fatalf("WaitsFor = %q", WaitsFor) } } - -// A retakeable error opens with Retake and is not one that waits for the fingerprint; the count is on the key's value (issue 1748). -func TestRetakeableIsAPrefixTheBuilderTakesAgain(t *testing.T) { - for _, c := range []struct { - err string - want bool - }{ - {Retake + "lookup git.novox.be: i/o timeout", true}, - {NotPinned + "x", false}, - {Retake[:4] + " not the prefix", false}, - {"go test: 2 failed", false}, - {"", false}, - {VersionTaken + Retake, false}, - } { - if got := Retakeable(c.err); got != c.want { - t.Errorf("Retakeable(%q) = %v", c.err, got) - } - } - if Retake != "retakeable: " || MaxRetakes != 3 { - t.Fatal("the retake prefix or its bound changed") - } - data, err := EncodeBuilderBuild(BuilderBuild{State: BuildFailed, Error: Retake + "x", Retakes: 2}) - if err != nil { - t.Fatal(err) - } - if back, err := DecodeBuilderBuild(data); err != nil || back.Retakes != 2 { - t.Fatalf("decoded %+v, %v", back, err) - } -}