| // Copyright 2011 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package get |
| |
| import "testing" |
| |
| var selectTagTestTags = []string{ |
| "go.r58", |
| "go.r58.1", |
| "go.r59", |
| "go.r59.1", |
| "go.r61", |
| "go.r61.1", |
| "go.weekly.2010-01-02", |
| "go.weekly.2011-10-12", |
| "go.weekly.2011-10-12.1", |
| "go.weekly.2011-10-14", |
| "go.weekly.2011-11-01", |
| "go1", |
| "go1.0.1", |
| "go1.999", |
| "go1.9.2", |
| "go5", |
| |
| // these should be ignored: |
| "release.r59", |
| "release.r59.1", |
| "release", |
| "weekly.2011-10-12", |
| "weekly.2011-10-12.1", |
| "weekly", |
| "foo", |
| "bar", |
| "go.f00", |
| "go!r60", |
| "go.1999-01-01", |
| "go.2x", |
| "go.20000000000000", |
| "go.2.", |
| "go.2.0", |
| "go2x", |
| "go20000000000000", |
| "go2.", |
| "go2.0", |
| } |
| |
| var selectTagTests = []struct { |
| version string |
| selected string |
| }{ |
| /* |
| {"release.r57", ""}, |
| {"release.r58.2", "go.r58.1"}, |
| {"release.r59", "go.r59"}, |
| {"release.r59.1", "go.r59.1"}, |
| {"release.r60", "go.r59.1"}, |
| {"release.r60.1", "go.r59.1"}, |
| {"release.r61", "go.r61"}, |
| {"release.r66", "go.r61.1"}, |
| {"weekly.2010-01-01", ""}, |
| {"weekly.2010-01-02", "go.weekly.2010-01-02"}, |
| {"weekly.2010-01-02.1", "go.weekly.2010-01-02"}, |
| {"weekly.2010-01-03", "go.weekly.2010-01-02"}, |
| {"weekly.2011-10-12", "go.weekly.2011-10-12"}, |
| {"weekly.2011-10-12.1", "go.weekly.2011-10-12.1"}, |
| {"weekly.2011-10-13", "go.weekly.2011-10-12.1"}, |
| {"weekly.2011-10-14", "go.weekly.2011-10-14"}, |
| {"weekly.2011-10-14.1", "go.weekly.2011-10-14"}, |
| {"weekly.2011-11-01", "go.weekly.2011-11-01"}, |
| {"weekly.2014-01-01", "go.weekly.2011-11-01"}, |
| {"weekly.3000-01-01", "go.weekly.2011-11-01"}, |
| {"go1", "go1"}, |
| {"go1.1", "go1.0.1"}, |
| {"go1.998", "go1.9.2"}, |
| {"go1.1000", "go1.999"}, |
| {"go6", "go5"}, |
| |
| // faulty versions: |
| {"release.f00", ""}, |
| {"weekly.1999-01-01", ""}, |
| {"junk", ""}, |
| {"", ""}, |
| {"go2x", ""}, |
| {"go200000000000", ""}, |
| {"go2.", ""}, |
| {"go2.0", ""}, |
| */ |
| {"anything", "go1"}, |
| } |
| |
| func TestSelectTag(t *testing.T) { |
| for _, c := range selectTagTests { |
| selected := selectTag(c.version, selectTagTestTags) |
| if selected != c.selected { |
| t.Errorf("selectTag(%q) = %q, want %q", c.version, selected, c.selected) |
| } |
| } |
| } |