Home | History | Annotate | Download | only in go
      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.
      4 
      5 package main
      6 
      7 import "testing"
      8 
      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",
     26 
     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",
     47 }
     48 
     49 var selectTagTests = []struct {
     50 	version  string
     51 	selected string
     52 }{
     53 	/*
     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"},
     79 
     80 		// faulty versions:
     81 		{"release.f00", ""},
     82 		{"weekly.1999-01-01", ""},
     83 		{"junk", ""},
     84 		{"", ""},
     85 		{"go2x", ""},
     86 		{"go200000000000", ""},
     87 		{"go2.", ""},
     88 		{"go2.0", ""},
     89 	*/
     90 	{"anything", "go1"},
     91 }
     92 
     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)
     98 		}
     99 	}
    100 }
    101