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  }