From: Shenghou Ma Date: Wed, 8 Apr 2015 08:27:58 +0000 (-0400) Subject: cmd/api: make the test more robust X-Git-Tag: go1.5beta1~1259 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a50b24c649f09e5b65e707fc634637aa984b9d96;p=gostls13.git cmd/api: make the test more robust Previously, the TestCompareAPI test would fail if runtime.Version() is "dev", or, more importantly, "go1.5"; because compareAPI depends on runtime.Version and -allow_new flag. Move that logic out make its test more robust. Change-Id: I8f40daa1838b8acd26adac8848762d95315053b0 Reviewed-on: https://go-review.googlesource.com/8622 Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/api/goapi.go b/src/cmd/api/goapi.go index c42416db9e..7b2c643e11 100644 --- a/src/cmd/api/goapi.go +++ b/src/cmd/api/goapi.go @@ -202,7 +202,8 @@ func main() { } optional := fileFeatures(*nextFile) exception := fileFeatures(*exceptFile) - fail = !compareAPI(bw, features, required, optional, exception) + fail = !compareAPI(bw, features, required, optional, exception, + *allowNew && strings.Contains(runtime.Version(), "devel")) } // export emits the exported package features. @@ -238,7 +239,7 @@ func featureWithoutContext(f string) string { return spaceParensRx.ReplaceAllString(f, "") } -func compareAPI(w io.Writer, features, required, optional, exception []string) (ok bool) { +func compareAPI(w io.Writer, features, required, optional, exception []string, allowAdd bool) (ok bool) { ok = true optionalSet := set(optional) @@ -280,7 +281,7 @@ func compareAPI(w io.Writer, features, required, optional, exception []string) ( delete(optionalSet, newFeature) } else { fmt.Fprintf(w, "+%s\n", newFeature) - if !*allowNew || !strings.Contains(runtime.Version(), "devel") { + if !allowAdd { ok = false // we're in lock-down mode for next release } } diff --git a/src/cmd/api/goapi_test.go b/src/cmd/api/goapi_test.go index 9f5b0c8bb4..00c45c3bcd 100644 --- a/src/cmd/api/goapi_test.go +++ b/src/cmd/api/goapi_test.go @@ -131,7 +131,7 @@ func TestCompareAPI(t *testing.T) { } for _, tt := range tests { buf := new(bytes.Buffer) - gotok := compareAPI(buf, tt.features, tt.required, tt.optional, tt.exception) + gotok := compareAPI(buf, tt.features, tt.required, tt.optional, tt.exception, true) if gotok != tt.ok { t.Errorf("%s: ok = %v; want %v", tt.name, gotok, tt.ok) }