libgo: update to go1.9
[official-gcc.git] / libgo / go / cmd / go / internal / get / tag_test.go
blob9a25dfafbc3559b5440c31f69a9ab9648c18516d
1 // Copyright 2011 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 package get
7 import "testing"
9 var selectTagTestTags = []string{
10 "go.r58",
11 "go.r58.1",
12 "go.r59",
13 "go.r59.1",
14 "go.r61",
15 "go.r61.1",
16 "go.weekly.2010-01-02",
17 "go.weekly.2011-10-12",
18 "go.weekly.2011-10-12.1",
19 "go.weekly.2011-10-14",
20 "go.weekly.2011-11-01",
21 "go1",
22 "go1.0.1",
23 "go1.999",
24 "go1.9.2",
25 "go5",
27 // these should be ignored:
28 "release.r59",
29 "release.r59.1",
30 "release",
31 "weekly.2011-10-12",
32 "weekly.2011-10-12.1",
33 "weekly",
34 "foo",
35 "bar",
36 "go.f00",
37 "go!r60",
38 "go.1999-01-01",
39 "go.2x",
40 "go.20000000000000",
41 "go.2.",
42 "go.2.0",
43 "go2x",
44 "go20000000000000",
45 "go2.",
46 "go2.0",
49 var selectTagTests = []struct {
50 version string
51 selected string
54 {"release.r57", ""},
55 {"release.r58.2", "go.r58.1"},
56 {"release.r59", "go.r59"},
57 {"release.r59.1", "go.r59.1"},
58 {"release.r60", "go.r59.1"},
59 {"release.r60.1", "go.r59.1"},
60 {"release.r61", "go.r61"},
61 {"release.r66", "go.r61.1"},
62 {"weekly.2010-01-01", ""},
63 {"weekly.2010-01-02", "go.weekly.2010-01-02"},
64 {"weekly.2010-01-02.1", "go.weekly.2010-01-02"},
65 {"weekly.2010-01-03", "go.weekly.2010-01-02"},
66 {"weekly.2011-10-12", "go.weekly.2011-10-12"},
67 {"weekly.2011-10-12.1", "go.weekly.2011-10-12.1"},
68 {"weekly.2011-10-13", "go.weekly.2011-10-12.1"},
69 {"weekly.2011-10-14", "go.weekly.2011-10-14"},
70 {"weekly.2011-10-14.1", "go.weekly.2011-10-14"},
71 {"weekly.2011-11-01", "go.weekly.2011-11-01"},
72 {"weekly.2014-01-01", "go.weekly.2011-11-01"},
73 {"weekly.3000-01-01", "go.weekly.2011-11-01"},
74 {"go1", "go1"},
75 {"go1.1", "go1.0.1"},
76 {"go1.998", "go1.9.2"},
77 {"go1.1000", "go1.999"},
78 {"go6", "go5"},
80 // faulty versions:
81 {"release.f00", ""},
82 {"weekly.1999-01-01", ""},
83 {"junk", ""},
84 {"", ""},
85 {"go2x", ""},
86 {"go200000000000", ""},
87 {"go2.", ""},
88 {"go2.0", ""},
90 {"anything", "go1"},
93 func TestSelectTag(t *testing.T) {
94 for _, c := range selectTagTests {
95 selected := selectTag(c.version, selectTagTestTags)
96 if selected != c.selected {
97 t.Errorf("selectTag(%q) = %q, want %q", c.version, selected, c.selected)