istio

Форк
0
/
progress_test.go 
76 строк · 2.1 Кб
1
// Copyright 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 progress
16

17
import (
18
	"bytes"
19
	"io"
20
	"testing"
21

22
	"istio.io/istio/operator/pkg/name"
23
)
24

25
func TestProgressLog(t *testing.T) {
26
	buf := bytes.NewBuffer(nil)
27
	testBuf := io.Writer(buf)
28
	testWriter = &testBuf
29
	expected := ""
30
	expect := func(e string) {
31
		t.Helper()
32
		// In buffer mode we don't overwrite old data, so we are constantly appending to the expected
33
		newExpected := expected + "\n" + e
34
		if newExpected != buf.String() {
35
			t.Fatalf("expected '%v', \ngot '%v'", newExpected, buf.String())
36
		}
37
		expected = newExpected
38
	}
39

40
	p := NewLog()
41
	cnp := name.PilotComponentName
42
	cnpo := name.UserFacingComponentName(cnp)
43
	cnb := name.IstioBaseComponentName
44
	cnbo := name.UserFacingComponentName(cnb)
45
	foo := p.NewComponent(string(cnp))
46
	foo.ReportProgress()
47
	expect(`- Processing resources for ` + cnpo + `.`)
48

49
	bar := p.NewComponent(string(cnb))
50
	bar.ReportProgress()
51
	// string buffer won't rewrite, so we append
52
	expect(`- Processing resources for ` + cnbo + `, ` + cnpo + `.`)
53
	bar.ReportProgress()
54
	bar.ReportProgress()
55

56
	bar.ReportWaiting([]string{"deployment"})
57
	expect(`- Processing resources for ` + cnbo + `, ` + cnpo + `. Waiting for deployment`)
58

59
	bar.ReportError("some error")
60
	expect(`✘ ` + cnbo + ` encountered an error: some error`)
61

62
	foo.ReportProgress()
63
	expect(`- Processing resources for ` + cnpo + `.`)
64

65
	foo.ReportFinished()
66
	expect(`✔ ` + cnpo + ` installed`)
67

68
	p.SetState(StatePruning)
69
	expect(`- Pruning removed resources`)
70

71
	p.SetState(StateComplete)
72
	expect(`✔ Installation complete`)
73

74
	p.SetState(StateUninstallComplete)
75
	expect(`✔ Uninstall complete`)
76
}
77

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

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

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

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