SEBA-901 - handle adapter restart
Stops existing goroutines processing messages and
allows for ONUs not in the initialized state when
adapter reconnects to not attempt to rediscover.
Change-Id: Ie3951d6ad36b7c8b3a4ddfbf55850b8ed7cf35d8
diff --git a/internal/bbsim/devices/onu_indications_test.go b/internal/bbsim/devices/onu_indications_test.go
index d12c5a6..37008a2 100644
--- a/internal/bbsim/devices/onu_indications_test.go
+++ b/internal/bbsim/devices/onu_indications_test.go
@@ -17,6 +17,7 @@
package devices
import (
+ "context"
"errors"
"github.com/opencord/voltha-protos/v2/go/openolt"
"google.golang.org/grpc"
@@ -52,7 +53,8 @@
fail: false,
channel: make(chan int, 10),
}
- go onu.ProcessOnuMessages(stream, nil)
+ ctx, cancel := context.WithCancel(context.TODO())
+ go onu.ProcessOnuMessages(ctx, stream, nil)
onu.InternalState.SetState("initialized")
onu.InternalState.Event("discover")
@@ -62,6 +64,7 @@
assert.Equal(t, stream.Calls[1].IntfId, onu.PonPortID)
assert.Equal(t, stream.Calls[1].SerialNumber, onu.SerialNumber)
}
+ cancel()
}
// test that if the discovery indication is not acknowledge we'll keep sending new ones
@@ -73,7 +76,8 @@
fail: false,
channel: make(chan int, 10),
}
- go onu.ProcessOnuMessages(stream, nil)
+ ctx, cancel := context.WithCancel(context.TODO())
+ go onu.ProcessOnuMessages(ctx, stream, nil)
onu.InternalState.SetState("initialized")
onu.InternalState.Event("discover")
@@ -81,6 +85,7 @@
case <-time.After(400 * time.Millisecond):
assert.Equal(t, stream.CallCount, 4)
}
+ cancel()
}
// test that if the discovery indication is not acknowledge we'll send a new one
@@ -93,7 +98,8 @@
fail: false,
channel: make(chan int, 10),
}
- go onu.ProcessOnuMessages(stream, nil)
+ ctx, cancel := context.WithCancel(context.TODO())
+ go onu.ProcessOnuMessages(ctx, stream, nil)
onu.InternalState.SetState("initialized")
onu.InternalState.Event("discover")
@@ -110,4 +116,5 @@
assert.Equal(t, stream.CallCount, 2)
}
+ cancel()
}