mosn

Форк
0
/
common_test.go 
124 строки · 4.3 Кб
1
package integrate
2

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

7
	"mosn.io/mosn/pkg/protocol/xprotocol/bolt"
8
	"mosn.io/mosn/pkg/protocol/xprotocol/dubbo"
9
	"mosn.io/mosn/pkg/protocol/xprotocol/tars"
10

11
	"mosn.io/mosn/pkg/protocol"
12
	_ "mosn.io/mosn/pkg/stream/http"
13
	_ "mosn.io/mosn/pkg/stream/http2"
14
	_ "mosn.io/mosn/pkg/stream/xprotocol"
15
	"mosn.io/mosn/test/util"
16
)
17

18
// Notice can'T use APP(HTTPX) to MESH(SofaRPC),
19
// because SofaRPC is a group of protocols,such as boltV1, boltV2.
20
func TestCommon(t *testing.T) {
21
	appaddr := "127.0.0.1:8080"
22
	testCases := []*TestCase{
23
		NewTestCase(t, protocol.HTTP1, protocol.HTTP1, util.NewHTTPServer(t, nil)),
24
		// http convert case use transcoder filter instead
25
		//	NewTestCase(t, protocol.HTTP1, protocol.HTTP2, util.NewHTTPServer(t, nil)),
26
		//	NewTestCase(t, protocol.HTTP2, protocol.HTTP1, util.NewUpstreamHTTP2(t, appaddr, nil)),
27
		NewTestCase(t, protocol.HTTP2, protocol.HTTP2, util.NewUpstreamHTTP2(t, appaddr, nil)),
28

29
		//Protocol-auto
30
		NewTestCase(t, protocol.HTTP2, protocol.Auto, util.NewUpstreamHTTP2(t, appaddr, nil)),
31
		NewTestCase(t, protocol.HTTP1, protocol.Auto, util.NewHTTPServer(t, nil)),
32
	}
33
	for i, tc := range testCases {
34
		t.Logf("start case #%d\n", i)
35
		tc.Start(false)
36
		go tc.RunCase(1, 0)
37
		select {
38
		case err := <-tc.C:
39
			if err != nil {
40
				t.Errorf("[ERROR MESSAGE] #%d %v to mesh %v test failed, error: %v\n", i, tc.AppProtocol, tc.MeshProtocol, err)
41
			}
42
		case <-time.After(15 * time.Second):
43
			t.Errorf("[ERROR MESSAGE] #%d %v to mesh %v hang\n", i, tc.AppProtocol, tc.MeshProtocol)
44
		}
45
		tc.FinishCase()
46
	}
47
}
48

49
func TestTLS(t *testing.T) {
50
	appaddr := "127.0.0.1:8080"
51
	testCases := []*TestCase{
52
		NewTestCase(t, protocol.HTTP1, protocol.HTTP1, util.NewHTTPServer(t, nil)),
53
		// NewTestCase(t, protocol.HTTP1, protocol.HTTP2, util.NewHTTPServer(t, nil)),
54
		// NewTestCase(t, protocol.HTTP2, protocol.HTTP1, util.NewUpstreamHTTP2(t, appaddr, nil)),
55
		NewTestCase(t, protocol.HTTP2, protocol.HTTP2, util.NewUpstreamHTTP2(t, appaddr, nil)),
56

57
		//Protocol-auto
58
		NewTestCase(t, protocol.HTTP2, protocol.Auto, util.NewUpstreamHTTP2(t, appaddr, nil)),
59
		NewTestCase(t, protocol.HTTP1, protocol.Auto, util.NewHTTPServer(t, nil)),
60
	}
61
	for i, tc := range testCases {
62
		t.Logf("start case #%d\n", i)
63
		tc.Start(true)
64
		go tc.RunCase(1, 0)
65
		select {
66
		case err := <-tc.C:
67
			if err != nil {
68
				t.Errorf("[ERROR MESSAGE] #%d %v to mesh %v tls test failed, error: %v\n", i, tc.AppProtocol, tc.MeshProtocol, err)
69
			}
70
		case <-time.After(15 * time.Second):
71
			t.Errorf("[ERROR MESSAGE] #%d %v to mesh %v hang\n", i, tc.AppProtocol, tc.MeshProtocol)
72
		}
73
		tc.FinishCase()
74
	}
75

76
}
77

78
func TestXprotocol(t *testing.T) {
79
	appaddr := "127.0.0.1:8080"
80
	testCases := []*XTestCase{
81
		NewXTestCase(t, bolt.ProtocolName, util.NewRPCServer(t, appaddr, bolt.ProtocolName)),
82
		NewXTestCase(t, dubbo.ProtocolName, util.NewRPCServer(t, appaddr, dubbo.ProtocolName)),
83
		NewXTestCase(t, tars.ProtocolName, util.NewRPCServer(t, appaddr, tars.ProtocolName)),
84
		//TODO: boltv2
85
	}
86
	for i, tc := range testCases {
87
		t.Logf("start case #%d\n", i)
88
		tc.Start(false)
89
		go tc.RunCase(1, 0)
90
		select {
91
		case err := <-tc.C:
92
			if err != nil {
93
				t.Errorf("[ERROR MESSAGE] #%d %v to mesh %v xprotocol: %s test failed, error: %v\n", i, tc.AppProtocol, tc.MeshProtocol, tc.SubProtocol, err)
94
			}
95
		case <-time.After(15 * time.Second):
96
			t.Errorf("[ERROR MESSAGE] #%d %v to mesh %v xprotocol: %s hang\n", i, tc.AppProtocol, tc.MeshProtocol, tc.SubProtocol)
97
		}
98
		tc.FinishCase()
99
	}
100
}
101

102
func TestXprotocolTLS(t *testing.T) {
103
	appaddr := "127.0.0.1:8080"
104
	testCases := []*XTestCase{
105
		NewXTestCase(t, bolt.ProtocolName, util.NewRPCServer(t, appaddr, bolt.ProtocolName)),
106
		NewXTestCase(t, dubbo.ProtocolName, util.NewRPCServer(t, appaddr, dubbo.ProtocolName)),
107
		NewXTestCase(t, tars.ProtocolName, util.NewRPCServer(t, appaddr, tars.ProtocolName)),
108
		//TODO: boltv2
109
	}
110
	for i, tc := range testCases {
111
		t.Logf("start case #%d\n", i)
112
		tc.Start(true)
113
		go tc.RunCase(1, 0)
114
		select {
115
		case err := <-tc.C:
116
			if err != nil {
117
				t.Errorf("[ERROR MESSAGE] #%d %v to mesh %v xprotocol: %s test failed, error: %v\n", i, tc.AppProtocol, tc.MeshProtocol, tc.SubProtocol, err)
118
			}
119
		case <-time.After(15 * time.Second):
120
			t.Errorf("[ERROR MESSAGE] #%d %v to mesh %v xprotocol: %s hang\n", i, tc.AppProtocol, tc.MeshProtocol, tc.SubProtocol)
121
		}
122
		tc.FinishCase()
123
	}
124
}
125

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

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

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

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