mosn

Форк
0
/
boltv2_test.go 
64 строки · 1.5 Кб
1
package boltv2
2

3
import (
4
	"testing"
5
	"time"
6
)
7

8
func TestBoltSimple(t *testing.T) {
9
	config := &BoltServerConfig{
10
		Addr: "127.0.0.1:8080",
11
	}
12
	srv := NewBoltServer(config)
13
	srv.Start()
14
	defer srv.Stop()
15

16
	time.Sleep(time.Second) // wait server start
17
	client := NewBoltClient(&BoltClientConfig{
18
		TargetAddr: "127.0.0.1:8080",
19
		MaxConn:    1,
20
		Verify: &VerifyConfig{
21
			ExpectedStatusCode: 0,
22
		},
23
	})
24
	for i := 0; i < 10; i++ {
25
		if !client.SyncCall() {
26
			t.Fatal("request failed")
27
		}
28
	}
29
	// verify stats
30
	stats := srv.Stats()
31
	connTotal := stats.ConnectionTotal()
32
	connActive := stats.ConnectionActive()
33
	respInfo, total := stats.ResponseInfo()
34
	request := stats.Requests()
35
	if !(connTotal == 1 &&
36
		connActive == 1 &&
37
		respInfo[0] == 10 &&
38
		total == 10 &&
39
		request == 10) {
40
		t.Fatalf("server metrics not expected: %v", stats)
41
	}
42
	cstats := client.Stats()
43
	crespInfo, ctotal := cstats.ResponseInfo()
44
	if !(cstats.ConnectionTotal() == 1 &&
45
		cstats.ConnectionActive() == 1 &&
46
		cstats.Requests() == 10 &&
47
		cstats.ExpectedResponseCount() == 10 &&
48
		crespInfo[0] == 10 &&
49
		ctotal == 10) {
50
		t.Fatalf("client metrics not expected: %v", cstats)
51
	}
52
	// close connection
53
	client.Close()
54
	time.Sleep(time.Second) // wait connection closed event
55
	if !(cstats.ConnectionActive() == 0 &&
56
		cstats.ConnectionTotal() == 1 &&
57
		cstats.ConnectionClosed() == 1 &&
58
		stats.ConnectionActive() == 0 &&
59
		stats.ConnectionClosed() == 1 &&
60
		stats.ConnectionTotal() == 1) {
61
		t.Fatalf("conn metrics not expected: %v, %v", cstats, stats)
62
	}
63

64
}
65

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

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

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

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