Skip to content

Commit 3cde59c

Browse files
jrajahalmesayboras
authored andcommitted
test: Wait for stream server checks to complete
The main test goroutine might be completed before checks on the server goroutine are completed, hence cause the below panic issue. This commit is to defer the streamDone channel close to make sure the error check on the stream server is done before returning from the test. We keep the time check on the wait in the end of each test to not stall the tests in case the stream server fails to exit. Panic error ``` panic: Fail in goroutine after Test/ServerSuite/TestRequestStaleNonce has completed ``` Testing was done as per below: ``` $ go test -count 500 -run Test/ServerSuite/TestRequestStaleNonce ./pkg/envoy/xds/... ok github.com/cilium/cilium/pkg/envoy/xds 250.866s ``` Fixes: cilium#31855 Signed-off-by: Tam Mach <tam.mach@cilium.io> Signed-off-by: Jarno Rajahalme <jarno@isovalent.com>
1 parent c869e6c commit 3cde59c

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

pkg/envoy/xds/server_e2e_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ func (s *ServerSuite) TestRequestAllResources(c *C) {
151151

152152
// Run the server's stream handler concurrently.
153153
go func() {
154+
defer close(streamDone)
154155
err := server.HandleRequestStream(ctx, stream, AnyTypeURL)
155-
close(streamDone)
156156
c.Check(err, IsNil)
157157
}()
158158

@@ -276,8 +276,8 @@ func (s *ServerSuite) TestAck(c *C) {
276276

277277
// Run the server's stream handler concurrently.
278278
go func() {
279+
defer close(streamDone)
279280
err := server.HandleRequestStream(ctx, stream, AnyTypeURL)
280-
close(streamDone)
281281
c.Check(err, IsNil)
282282
}()
283283

@@ -401,8 +401,8 @@ func (s *ServerSuite) TestRequestSomeResources(c *C) {
401401

402402
// Run the server's stream handler concurrently.
403403
go func() {
404+
defer close(streamDone)
404405
err := server.HandleRequestStream(ctx, stream, AnyTypeURL)
405-
close(streamDone)
406406
c.Check(err, IsNil)
407407
}()
408408

@@ -574,8 +574,8 @@ func (s *ServerSuite) TestUpdateRequestResources(c *C) {
574574

575575
// Run the server's stream handler concurrently.
576576
go func() {
577+
defer close(streamDone)
577578
err := server.HandleRequestStream(ctx, stream, AnyTypeURL)
578-
close(streamDone)
579579
c.Check(err, IsNil)
580580
}()
581581

@@ -676,8 +676,8 @@ func (s *ServerSuite) TestRequestStaleNonce(c *C) {
676676

677677
// Run the server's stream handler concurrently.
678678
go func() {
679+
defer close(streamDone)
679680
err := server.HandleRequestStream(ctx, stream, AnyTypeURL)
680-
close(streamDone)
681681
c.Check(err, IsNil)
682682
}()
683683

@@ -815,8 +815,8 @@ func (s *ServerSuite) TestNAck(c *C) {
815815

816816
// Run the server's stream handler concurrently.
817817
go func() {
818+
defer close(streamDone)
818819
err := server.HandleRequestStream(ctx, stream, AnyTypeURL)
819-
close(streamDone)
820820
c.Check(err, IsNil)
821821
}()
822822

@@ -949,8 +949,8 @@ func (s *ServerSuite) TestNAckFromTheStart(c *C) {
949949

950950
// Run the server's stream handler concurrently.
951951
go func() {
952+
defer close(streamDone)
952953
err := server.HandleRequestStream(ctx, stream, AnyTypeURL)
953-
close(streamDone)
954954
c.Check(err, IsNil)
955955
}()
956956

@@ -1082,8 +1082,8 @@ func (s *ServerSuite) TestRequestHighVersionFromTheStart(c *C) {
10821082

10831083
// Run the server's stream handler concurrently.
10841084
go func() {
1085+
defer close(streamDone)
10851086
err := server.HandleRequestStream(ctx, stream, AnyTypeURL)
1086-
close(streamDone)
10871087
c.Check(err, IsNil)
10881088
}()
10891089

0 commit comments

Comments
 (0)