istio

Форк
0
/
version_test.go 
137 строк · 3.0 Кб
1
// Copyright 2017 Istio Authors
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15
package version
16

17
import (
18
	"fmt"
19
	"runtime"
20
	"testing"
21
)
22

23
func TestNewBuildInfoFromOldString(t *testing.T) {
24
	cases := []struct {
25
		name       string
26
		in         string
27
		expectFail bool
28
		want       BuildInfo
29
	}{
30
		{
31
			"Correct input 1",
32
			`Version: 1.0.0
33
GitRevision: 3a136c90ec5e308f236e0d7ebb5c4c5e405217f4
34
GolangVersion: go1.10.1
35
BuildStatus: Clean
36
GitTag: tag
37
`,
38
			false,
39
			BuildInfo{
40
				Version:       "1.0.0",
41
				GitRevision:   "3a136c90ec5e308f236e0d7ebb5c4c5e405217f4",
42
				GolangVersion: "go1.10.1",
43
				BuildStatus:   "Clean",
44
				GitTag:        "tag",
45
			},
46
		},
47
		{
48
			"Legacy input 1",
49
			`Version: 1.0.0
50
GitRevision: 3a136c90ec5e308f236e0d7ebb5c4c5e405217f4
51
User: root@71a9470ea93c
52
Host: foo
53
Hub: docker.io/istio
54
GolangVersion: go1.10.1
55
BuildStatus: Clean
56
GitTag: tag
57
`,
58
			false,
59
			BuildInfo{
60
				Version:       "1.0.0",
61
				GitRevision:   "3a136c90ec5e308f236e0d7ebb5c4c5e405217f4",
62
				GolangVersion: "go1.10.1",
63
				BuildStatus:   "Clean",
64
				GitTag:        "tag",
65
			},
66
		},
67
		{
68
			"Invalid input 1",
69
			"Xuxa",
70
			true,
71
			BuildInfo{},
72
		},
73
		{
74
			"Invalid input 2",
75
			"Xuxa:Xuxo",
76
			false,
77
			BuildInfo{},
78
		},
79
	}
80

81
	for _, v := range cases {
82
		t.Run(v.name, func(t *testing.T) {
83
			got, err := NewBuildInfoFromOldString(v.in)
84
			if v.expectFail && err == nil {
85
				t.Errorf("Expected failure, got success")
86
			}
87
			if !v.expectFail && err != nil {
88
				t.Errorf("Got %v, expected success", err)
89
			}
90

91
			if got != v.want {
92
				t.Errorf("Got %v, expected %v", got, v.want)
93
			}
94
		})
95
	}
96
}
97

98
func TestBuildInfo(t *testing.T) {
99
	versionedString := fmt.Sprintf(`version.BuildInfo{Version:"unknown", GitRevision:"unknown", `+
100
		`GolangVersion:"%s", BuildStatus:"unknown", GitTag:"unknown"}`,
101
		runtime.Version())
102

103
	cases := []struct {
104
		name     string
105
		in       BuildInfo
106
		want     string
107
		longWant string
108
	}{
109
		{
110
			"all specified",
111
			BuildInfo{
112
				Version:       "VER",
113
				GitRevision:   "GITREV",
114
				GolangVersion: "GOLANGVER",
115
				BuildStatus:   "STATUS",
116
				GitTag:        "TAG",
117
			},
118
			"VER-GITREV-STATUS",
119
			`version.BuildInfo{Version:"VER", GitRevision:"GITREV", GolangVersion:"GOLANGVER", ` +
120
				`BuildStatus:"STATUS", GitTag:"TAG"}`,
121
		},
122

123
		{"init", Info, "unknown-unknown-unknown", versionedString},
124
	}
125

126
	for _, v := range cases {
127
		t.Run(v.name, func(t *testing.T) {
128
			if v.in.String() != v.want {
129
				t.Errorf("got %s; want %s", v.in.String(), v.want)
130
			}
131

132
			if v.in.LongForm() != v.longWant {
133
				t.Errorf("got\n%s\nwant\n%s", v.in.LongForm(), v.longWant)
134
			}
135
		})
136
	}
137
}
138

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.