MCPcopy Index your code
hub / github.com/koding/kite / TestMultiple

Function TestMultiple

kite_test.go:103–175  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

101}
102
103func TestMultiple(t *testing.T) {
104 testDuration := time.Second * 10
105
106 // number of available mathworker kites to be called
107 kiteNumber := 3
108
109 // number of exp kites that will call mathwork kites
110 clientNumber := 3
111
112 // ports are starting from 6000 up to 6000 + kiteNumber
113 port := 6000
114
115 transport := transportFromEnv()
116
117 for i := 0; i < kiteNumber; i++ {
118 m := New("mathworker"+strconv.Itoa(i), "0.1."+strconv.Itoa(i))
119 m.Config.DisableAuthentication = true
120 m.Config.Transport = transport
121 m.Config.Port = port + i
122
123 m.OnConnect(panicHandler)
124 m.OnRegister(panicRegisterHandler)
125 m.OnDisconnect(panicHandler)
126 m.OnFirstRequest(panicHandler)
127
128 m.HandleFunc("square", Square)
129 go m.Run()
130 <-m.ServerReadyNotify()
131 defer m.Close()
132 }
133
134 clients := make([]*Client, clientNumber)
135 for i := 0; i < clientNumber; i++ {
136 cn := New("exp"+strconv.Itoa(i), "0.0.1")
137 cn.Config.Transport = transport
138
139 c := cn.NewClient("http://127.0.0.1:" + strconv.Itoa(port+i) + "/kite")
140 if err := c.Dial(); err != nil {
141 t.Fatal(err)
142 }
143
144 clients[i] = c
145 defer c.Close()
146 }
147
148 timeout := time.After(testDuration)
149
150 // every one second
151 for {
152 select {
153 case <-time.Tick(time.Second):
154 var wg sync.WaitGroup
155
156 for i := 0; i < clientNumber; i++ {
157 wg.Add(1)
158
159 go func(i int, t *testing.T) {
160 defer wg.Done()

Callers

nothing calls this directly

Calls 15

DialMethod · 0.95
CloseMethod · 0.95
transportFromEnvFunction · 0.85
OnRegisterMethod · 0.80
OnFirstRequestMethod · 0.80
HandleFuncMethod · 0.80
ServerReadyNotifyMethod · 0.80
NewClientMethod · 0.80
FatalMethod · 0.80
TellWithTimeoutMethod · 0.80
NewFunction · 0.70
AddMethod · 0.65

Tested by

no test coverage detected