github.com/glimps-jbo/go-licenses@v0.0.0-20230908151000-e06d3c113277/internal/third_party/pkgsite/stdlib/stdlib_test.go (about) 1 // Copyright 2019 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 stdlib 6 7 import ( 8 "testing" 9 ) 10 11 func TestTagForVersion(t *testing.T) { 12 for _, test := range []struct { 13 name string 14 version string 15 want string 16 wantErr bool 17 }{ 18 { 19 name: "std version v1.0.0", 20 version: "v1.0.0", 21 want: "go1", 22 }, 23 { 24 name: "std version v1.12.5", 25 version: "v1.12.5", 26 want: "go1.12.5", 27 }, 28 { 29 name: "std version v1.13, incomplete canonical version", 30 version: "v1.13", 31 want: "go1.13", 32 }, 33 { 34 name: "std version v1.13.0-beta.1", 35 version: "v1.13.0-beta.1", 36 want: "go1.13beta1", 37 }, 38 { 39 name: "std version v1.9.0-rc.2", 40 version: "v1.9.0-rc.2", 41 want: "go1.9rc2", 42 }, 43 { 44 name: "std with digitless prerelease", 45 version: "v1.13.0-prerelease", 46 want: "go1.13prerelease", 47 }, 48 { 49 name: "version v1.13.0", 50 version: "v1.13.0", 51 want: "go1.13", 52 }, 53 { 54 name: "master branch", 55 version: "master", 56 want: "master", 57 }, 58 { 59 name: "bad std semver", 60 version: "v1.x", 61 wantErr: true, 62 }, 63 { 64 name: "more bad std semver", 65 version: "v1.0-", 66 wantErr: true, 67 }, 68 { 69 name: "bad prerelease", 70 version: "v1.13.0-beta1", 71 wantErr: true, 72 }, 73 { 74 name: "another bad prerelease", 75 version: "v1.13.0-whatevs99", 76 wantErr: true, 77 }, 78 } { 79 t.Run(test.name, func(t *testing.T) { 80 got, err := TagForVersion(test.version) 81 if (err != nil) != test.wantErr { 82 t.Errorf("TagForVersion(%q) = %q, %v, wantErr %v", test.version, got, err, test.wantErr) 83 return 84 } 85 if got != test.want { 86 t.Errorf("TagForVersion(%q) = %q, %v, wanted %q, %v", test.version, got, err, test.want, nil) 87 } 88 }) 89 } 90 } 91 92 func TestDirectory(t *testing.T) { 93 for _, tc := range []struct { 94 version string 95 want string 96 }{ 97 { 98 version: "v1.3.0-beta2", 99 want: "src/pkg", 100 }, 101 { 102 version: "v1.16.0-beta1", 103 want: "src", 104 }, 105 { 106 version: "master", 107 want: "src", 108 }, 109 } { 110 got := Directory(tc.version) 111 if got != tc.want { 112 t.Errorf("Directory(%s) = %s, want %s", tc.version, got, tc.want) 113 } 114 } 115 }