Skip to content

Commit 8e3e122

Browse files
committed
review comments
Signed-off-by: alecholmez <[email protected]> move back recompute Signed-off-by: alecholmez <[email protected]>
1 parent 9a7589b commit 8e3e122

File tree

3 files changed

+48
-29
lines changed

3 files changed

+48
-29
lines changed

pkg/server/sotw/v3/server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func (s *server) process(str stream.Stream, reqCh <-chan *discovery.DiscoveryReq
8585
lastDiscoveryResponses := map[string]lastDiscoveryResponse{}
8686

8787
// a collection of stack allocated watches per request type
88-
watches := newWatches()
88+
watches := newWatches(reqCh)
8989

9090
defer func() {
9191
watches.Cancel()

pkg/server/sotw/v3/watches.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ type watches struct {
1717
}
1818

1919
// newWatches creates and initializes watches.
20-
func newWatches() watches {
21-
// deltaMuxedResponses needs a buffer to release go-routines populating it
20+
func newWatches(req <-chan *discovery.DiscoveryRequest) watches {
2221
return watches{
2322
responders: make(map[string]*watch, int(types.UnknownType)),
2423
cases: make([]reflect.SelectCase, 2), // We use 2 for the default computation here: ctx.Done() + reqCh.Recv()
@@ -32,7 +31,7 @@ func (w *watches) Cancel() {
3231
}
3332
}
3433

35-
// recomputeWatches will analyze the currently typed list of the known watches and increase the known list of dynamic channels if needed
34+
// recomputeWatches rebuilds the known list of dynamic channels if needed
3635
func (w *watches) RecomputeWatches(ctx context.Context, reqCh <-chan *discovery.DiscoveryRequest) {
3736
newCases := []reflect.SelectCase{
3837
{
@@ -45,7 +44,7 @@ func (w *watches) RecomputeWatches(ctx context.Context, reqCh <-chan *discovery.
4544
},
4645
}
4746

48-
index := 2
47+
index := len(newCases)
4948
for _, watch := range w.responders {
5049
newCases = append(newCases, watch.selectCase)
5150
watch.index = index

pkg/server/v3/server_test.go

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -372,72 +372,92 @@ func TestFetch(t *testing.T) {
372372

373373
s := server.NewServer(context.Background(), config, cb)
374374
out, err := s.FetchEndpoints(context.Background(), &discovery.DiscoveryRequest{Node: node})
375-
assert.False(t, out == nil || err != nil)
375+
assert.NotNil(t, out)
376+
assert.NoError(t, err)
376377

377378
out, err = s.FetchClusters(context.Background(), &discovery.DiscoveryRequest{Node: node})
378-
assert.False(t, out == nil || err != nil)
379+
assert.NotNil(t, out)
380+
assert.NoError(t, err)
379381

380382
out, err = s.FetchRoutes(context.Background(), &discovery.DiscoveryRequest{Node: node})
381-
assert.False(t, out == nil || err != nil)
383+
assert.NotNil(t, out)
384+
assert.NoError(t, err)
382385

383386
out, err = s.FetchListeners(context.Background(), &discovery.DiscoveryRequest{Node: node})
384-
assert.False(t, out == nil || err != nil)
387+
assert.NotNil(t, out)
388+
assert.NoError(t, err)
385389

386390
out, err = s.FetchSecrets(context.Background(), &discovery.DiscoveryRequest{Node: node})
387-
assert.False(t, out == nil || err != nil)
391+
assert.NotNil(t, out)
392+
assert.NoError(t, err)
388393

389394
out, err = s.FetchRuntime(context.Background(), &discovery.DiscoveryRequest{Node: node})
390-
assert.False(t, out == nil || err != nil)
395+
assert.NotNil(t, out)
396+
assert.NoError(t, err)
391397

392398
// try again and expect empty results
393399
out, err = s.FetchEndpoints(context.Background(), &discovery.DiscoveryRequest{Node: node})
394-
assert.False(t, out != nil || err == nil)
400+
assert.Nil(t, out)
401+
assert.Error(t, err)
395402

396403
out, err = s.FetchClusters(context.Background(), &discovery.DiscoveryRequest{Node: node})
397-
assert.False(t, out != nil || err == nil)
404+
assert.Nil(t, out)
405+
assert.Error(t, err)
398406

399407
out, err = s.FetchRoutes(context.Background(), &discovery.DiscoveryRequest{Node: node})
400-
assert.False(t, out != nil || err == nil)
408+
assert.Nil(t, out)
409+
assert.Error(t, err)
401410

402411
out, err = s.FetchListeners(context.Background(), &discovery.DiscoveryRequest{Node: node})
403-
assert.False(t, out != nil || err == nil)
412+
assert.Nil(t, out)
413+
assert.Error(t, err)
404414

405415
// try empty requests: not valid in a real gRPC server
406416
out, err = s.FetchEndpoints(context.Background(), nil)
407-
assert.False(t, out != nil || err == nil)
417+
assert.Nil(t, out)
418+
assert.Error(t, err)
408419

409420
out, err = s.FetchClusters(context.Background(), nil)
410-
assert.False(t, out != nil || err == nil)
421+
assert.Nil(t, out)
422+
assert.Error(t, err)
411423

412424
out, err = s.FetchRoutes(context.Background(), nil)
413-
assert.False(t, out != nil || err == nil)
425+
assert.Nil(t, out)
426+
assert.Error(t, err)
414427

415428
out, err = s.FetchListeners(context.Background(), nil)
416-
assert.False(t, out != nil || err == nil)
429+
assert.Nil(t, out)
430+
assert.Error(t, err)
417431

418432
out, err = s.FetchSecrets(context.Background(), nil)
419-
assert.False(t, out != nil || err == nil)
433+
assert.Nil(t, out)
434+
assert.Error(t, err)
420435

421436
out, err = s.FetchRuntime(context.Background(), nil)
422-
assert.False(t, out != nil || err == nil)
437+
assert.Nil(t, out)
438+
assert.Error(t, err)
423439

424440
// send error from callback
425441
callbackError = true
426442
out, err = s.FetchEndpoints(context.Background(), nil)
427-
assert.False(t, out != nil || err == nil)
443+
assert.Nil(t, out)
444+
assert.Error(t, err)
428445

429446
out, err = s.FetchClusters(context.Background(), nil)
430-
assert.False(t, out != nil || err == nil)
447+
assert.Nil(t, out)
448+
assert.Error(t, err)
431449

432450
out, err = s.FetchRoutes(context.Background(), nil)
433-
assert.False(t, out != nil || err == nil)
451+
assert.Nil(t, out)
452+
assert.Error(t, err)
434453

435454
out, err = s.FetchListeners(context.Background(), nil)
436-
assert.False(t, out != nil || err == nil)
455+
assert.Nil(t, out)
456+
assert.Error(t, err)
437457

438458
// verify fetch callbacks
439-
assert.True(t, requestCount == 10)
440-
assert.True(t, responseCount == 6)
459+
assert.Equal(t, requestCount, 10)
460+
assert.Equal(t, responseCount, 6)
441461
}
442462

443463
func TestSendError(t *testing.T) {
@@ -591,7 +611,7 @@ func TestCancellations(t *testing.T) {
591611
s := server.NewServer(context.Background(), config, server.CallbackFuncs{})
592612
err := s.StreamAggregatedResources(resp)
593613
assert.NoError(t, err)
594-
assert.True(t, config.watches == 0)
614+
assert.Equal(t, config.watches, 0)
595615
}
596616

597617
func TestOpaqueRequestsChannelMuxing(t *testing.T) {
@@ -609,7 +629,7 @@ func TestOpaqueRequestsChannelMuxing(t *testing.T) {
609629
s := server.NewServer(context.Background(), config, server.CallbackFuncs{})
610630
err := s.StreamAggregatedResources(resp)
611631
assert.NoError(t, err)
612-
assert.True(t, config.watches == 0)
632+
assert.Equal(t, config.watches, 0)
613633
}
614634

615635
func TestCallbackError(t *testing.T) {

0 commit comments

Comments
 (0)