github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/tools/godoc/dl/dl_test.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by the Apache 2.0 3 // license that can be found in the LICENSE file. 4 5 // +build appengine 6 7 package dl 8 9 import ( 10 "sort" 11 "strings" 12 "testing" 13 ) 14 15 func TestParseVersion(t *testing.T) { 16 for _, c := range []struct { 17 in string 18 maj, min int 19 tail string 20 }{ 21 {"go1.5", 5, 0, ""}, 22 {"go1.5beta1", 5, 0, "beta1"}, 23 {"go1.5.1", 5, 1, ""}, 24 {"go1.5.1rc1", 5, 1, "rc1"}, 25 } { 26 maj, min, tail := parseVersion(c.in) 27 if maj != c.maj || min != c.min || tail != c.tail { 28 t.Errorf("parseVersion(%q) = %v, %v, %q; want %v, %v, %q", 29 c.in, maj, min, tail, c.maj, c.min, c.tail) 30 } 31 } 32 } 33 34 func TestFileOrder(t *testing.T) { 35 fs := []File{ 36 {Filename: "go1.3.src.tar.gz", Version: "go1.3", OS: "", Arch: "", Kind: "source"}, 37 {Filename: "go1.3.1.src.tar.gz", Version: "go1.3.1", OS: "", Arch: "", Kind: "source"}, 38 {Filename: "go1.3.linux-amd64.tar.gz", Version: "go1.3", OS: "linux", Arch: "amd64", Kind: "archive"}, 39 {Filename: "go1.3.1.linux-amd64.tar.gz", Version: "go1.3.1", OS: "linux", Arch: "amd64", Kind: "archive"}, 40 {Filename: "go1.3.darwin-amd64.tar.gz", Version: "go1.3", OS: "darwin", Arch: "amd64", Kind: "archive"}, 41 {Filename: "go1.3.darwin-amd64.pkg", Version: "go1.3", OS: "darwin", Arch: "amd64", Kind: "installer"}, 42 {Filename: "go1.3.darwin-386.tar.gz", Version: "go1.3", OS: "darwin", Arch: "386", Kind: "archive"}, 43 {Filename: "go1.3beta1.linux-amd64.tar.gz", Version: "go1.3beta1", OS: "linux", Arch: "amd64", Kind: "archive"}, 44 {Filename: "go1.3beta2.linux-amd64.tar.gz", Version: "go1.3beta2", OS: "linux", Arch: "amd64", Kind: "archive"}, 45 {Filename: "go1.3rc1.linux-amd64.tar.gz", Version: "go1.3rc1", OS: "linux", Arch: "amd64", Kind: "archive"}, 46 {Filename: "go1.2.linux-amd64.tar.gz", Version: "go1.2", OS: "linux", Arch: "amd64", Kind: "archive"}, 47 {Filename: "go1.2.2.linux-amd64.tar.gz", Version: "go1.2.2", OS: "linux", Arch: "amd64", Kind: "archive"}, 48 } 49 sort.Sort(fileOrder(fs)) 50 var s []string 51 for _, f := range fs { 52 s = append(s, f.Filename) 53 } 54 got := strings.Join(s, "\n") 55 want := strings.Join([]string{ 56 "go1.3.1.src.tar.gz", 57 "go1.3.1.linux-amd64.tar.gz", 58 "go1.3.src.tar.gz", 59 "go1.3.darwin-386.tar.gz", 60 "go1.3.darwin-amd64.tar.gz", 61 "go1.3.darwin-amd64.pkg", 62 "go1.3.linux-amd64.tar.gz", 63 "go1.2.2.linux-amd64.tar.gz", 64 "go1.2.linux-amd64.tar.gz", 65 "go1.3rc1.linux-amd64.tar.gz", 66 "go1.3beta2.linux-amd64.tar.gz", 67 "go1.3beta1.linux-amd64.tar.gz", 68 }, "\n") 69 if got != want { 70 t.Errorf("sort order is\n%s\nwant:\n%s", got, want) 71 } 72 }