github.com/zxy12/go_duplicate_112_new@v0.0.0-20200807091221-747231827200/src/cmd/go/internal/modfetch/pseudo_test.go (about)

     1  // Copyright 2018 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 modfetch
     6  
     7  import (
     8  	"testing"
     9  	"time"
    10  )
    11  
    12  var pseudoTests = []struct {
    13  	major   string
    14  	older   string
    15  	version string
    16  }{
    17  	{"", "", "v0.0.0-20060102150405-hash"},
    18  	{"v0", "", "v0.0.0-20060102150405-hash"},
    19  	{"v1", "", "v1.0.0-20060102150405-hash"},
    20  	{"v2", "", "v2.0.0-20060102150405-hash"},
    21  	{"unused", "v0.0.0", "v0.0.1-0.20060102150405-hash"},
    22  	{"unused", "v1.2.3", "v1.2.4-0.20060102150405-hash"},
    23  	{"unused", "v1.2.99999999999999999", "v1.2.100000000000000000-0.20060102150405-hash"},
    24  	{"unused", "v1.2.3-pre", "v1.2.3-pre.0.20060102150405-hash"},
    25  	{"unused", "v1.3.0-pre", "v1.3.0-pre.0.20060102150405-hash"},
    26  }
    27  
    28  var pseudoTime = time.Date(2006, 1, 2, 15, 4, 5, 0, time.UTC)
    29  
    30  func TestPseudoVersion(t *testing.T) {
    31  	for _, tt := range pseudoTests {
    32  		v := PseudoVersion(tt.major, tt.older, pseudoTime, "hash")
    33  		if v != tt.version {
    34  			t.Errorf("PseudoVersion(%q, %q, ...) = %v, want %v", tt.major, tt.older, v, tt.version)
    35  		}
    36  	}
    37  }
    38  
    39  func TestIsPseudoVersion(t *testing.T) {
    40  	for _, tt := range pseudoTests {
    41  		if !IsPseudoVersion(tt.version) {
    42  			t.Errorf("IsPseudoVersion(%q) = false, want true", tt.version)
    43  		}
    44  		if IsPseudoVersion(tt.older) {
    45  			t.Errorf("IsPseudoVersion(%q) = true, want false", tt.older)
    46  		}
    47  	}
    48  }
    49  
    50  func TestPseudoVersionTime(t *testing.T) {
    51  	for _, tt := range pseudoTests {
    52  		tm, err := PseudoVersionTime(tt.version)
    53  		if tm != pseudoTime || err != nil {
    54  			t.Errorf("PseudoVersionTime(%q) = %v, %v, want %v, nil", tt.version, tm.Format(time.RFC3339), err, pseudoTime.Format(time.RFC3339))
    55  		}
    56  		tm, err = PseudoVersionTime(tt.older)
    57  		if tm != (time.Time{}) || err == nil {
    58  			t.Errorf("PseudoVersionTime(%q) = %v, %v, want %v, error", tt.older, tm.Format(time.RFC3339), err, time.Time{}.Format(time.RFC3339))
    59  		}
    60  	}
    61  }
    62  
    63  func TestPseudoVersionRev(t *testing.T) {
    64  	for _, tt := range pseudoTests {
    65  		rev, err := PseudoVersionRev(tt.version)
    66  		if rev != "hash" || err != nil {
    67  			t.Errorf("PseudoVersionRev(%q) = %q, %v, want %q, nil", tt.older, rev, err, "hash")
    68  		}
    69  		rev, err = PseudoVersionRev(tt.older)
    70  		if rev != "" || err == nil {
    71  			t.Errorf("PseudoVersionRev(%q) = %q, %v, want %q, error", tt.older, rev, err, "")
    72  		}
    73  	}
    74  }