go-hep.org/x/hep@v0.38.1/version_test.go (about) 1 // Copyright ©2019 The go-hep 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 //go:build go1.12 6 7 package hep 8 9 import ( 10 "reflect" 11 "runtime/debug" 12 "testing" 13 ) 14 15 func TestVersion(t *testing.T) { 16 type vsum struct { 17 version, sum string 18 } 19 20 for _, tc := range []struct { 21 b *debug.BuildInfo 22 want vsum 23 }{ 24 { 25 b: nil, 26 want: vsum{"", ""}, 27 }, 28 { 29 b: &debug.BuildInfo{}, 30 want: vsum{"", ""}, 31 }, 32 { 33 b: &debug.BuildInfo{ 34 Deps: []*debug.Module{ 35 { 36 Path: "gonum.org/v1/gonum", 37 Version: "v0.1.0", 38 Sum: "12345XYZ", 39 }, 40 }, 41 }, 42 want: vsum{"", ""}, 43 }, 44 { 45 b: &debug.BuildInfo{ 46 Deps: []*debug.Module{ 47 { 48 Path: "gonum.org/v1/gonum", 49 Version: "v0.1.0", 50 Sum: "12345XYZ", 51 }, 52 { 53 Path: "go-hep.org/x/hep", 54 Version: "v0.18.0", 55 Sum: "12345", 56 }, 57 }, 58 }, 59 want: vsum{"v0.18.0", "12345"}, 60 }, 61 { 62 b: &debug.BuildInfo{ 63 Deps: []*debug.Module{ 64 { 65 Path: "gonum.org/v1/gonum", 66 Version: "v0.1.0", 67 Sum: "12345XYZ", 68 }, 69 { 70 Path: "go-hep.org/x/hep", 71 Version: "v0.18.0", 72 Sum: "12345", 73 Replace: &debug.Module{ 74 Path: "go-hep.org/x/hep-fixup", 75 Version: "v0.18.0-fixup", 76 Sum: "11111", 77 }, 78 }, 79 }, 80 }, 81 want: vsum{"go-hep.org/x/hep-fixup v0.18.0-fixup", "11111"}, 82 }, 83 { 84 b: &debug.BuildInfo{ 85 Deps: []*debug.Module{ 86 { 87 Path: "gonum.org/v1/gonum", 88 Version: "v0.1.0", 89 Sum: "12345XYZ", 90 }, 91 { 92 Path: "go-hep.org/x/hep", 93 Version: "v0.18.0", 94 Sum: "12345", 95 Replace: &debug.Module{ 96 Version: "v0.18.0-fixup", 97 Sum: "11111", 98 }, 99 }, 100 }, 101 }, 102 want: vsum{"v0.18.0-fixup", "11111"}, 103 }, 104 { 105 b: &debug.BuildInfo{ 106 Deps: []*debug.Module{ 107 { 108 Path: "gonum.org/v1/gonum", 109 Version: "v0.1.0", 110 Sum: "12345XYZ", 111 }, 112 { 113 Path: "go-hep.org/x/hep", 114 Version: "v0.18.0", 115 Sum: "12345", 116 Replace: &debug.Module{ 117 Path: "go-hep.org/x/hep-fixup", 118 Sum: "11111", 119 }, 120 }, 121 }, 122 }, 123 want: vsum{"go-hep.org/x/hep-fixup", "11111"}, 124 }, 125 { 126 b: &debug.BuildInfo{ 127 Deps: []*debug.Module{ 128 { 129 Path: "gonum.org/v1/gonum", 130 Version: "v0.1.0", 131 Sum: "12345XYZ", 132 }, 133 { 134 Path: "go-hep.org/x/hep", 135 Version: "v0.18.0", 136 Sum: "12345", 137 Replace: &debug.Module{ 138 Sum: "11111", 139 }, 140 }, 141 }, 142 }, 143 want: vsum{"v0.18.0*", ""}, 144 }, 145 } { 146 t.Run("", func(t *testing.T) { 147 version, sum := versionOf(tc.b) 148 got := vsum{ 149 version: version, 150 sum: sum, 151 } 152 153 if !reflect.DeepEqual(got, tc.want) { 154 t.Fatalf("error:\ngot= %#v\nwant=%#v\n", got, tc.want) 155 } 156 }) 157 } 158 159 vers, sum := Version() 160 if got, want := (vsum{vers, sum}), (vsum{}); !reflect.DeepEqual(got, want) { 161 // this might fail when GO111MODULE=on and module support percolates everywhere. 162 t.Fatalf("error:\ngot= %#v\nwant=%#v\n", got, want) 163 } 164 }