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  }