Fix etcdWatcher test

This commit is contained in:
Wojciech Tyczynski 2015-12-22 14:48:08 +01:00
parent d20ab89bd6
commit 8cd50dd005

View File

@ -266,8 +266,15 @@ func TestWatch(t *testing.T) {
watching.Stop()
if _, open := <-watching.ResultChan(); open {
t.Errorf("An injected error did not cause a graceful shutdown")
// There is a race in etcdWatcher so that after calling Stop() one of
// two things can happen:
// - ResultChan() may be closed (triggered by closing userStop channel)
// - an Error "context cancelled" may be emitted (triggered by cancelling request
// to etcd and putting that error to etcdError channel)
// We need to be prepared for both here.
event, open := <-watching.ResultChan()
if open && event.Type != watch.Error {
t.Errorf("Unexpected event from stopped watcher: %#v", event)
}
}