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 }