Merge pull request #19131 from wojtek-t/fix_close_channel

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2015-12-28 02:18:55 -08:00
commit 5cf0659502

View File

@ -462,8 +462,15 @@ func TestWatchPurposefulShutdown(t *testing.T) {
watching.Stop()
rt.Gosched()
if _, open := <-watching.ResultChan(); open {
t.Errorf("Channel should be closed")
// 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)
}
}