Merge pull request #19454 from mesosphere/jdef_fix_runtime_until_flake

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2016-01-10 13:54:17 -08:00
commit eb554aa346

View File

@ -39,25 +39,37 @@ func TestUntil(t *testing.T) {
<-called <-called
close(ch) close(ch)
<-called
// wait for 'called' to be closed
for {
if _, ok := <-called; !ok {
break
}
}
//-- //--
ch = make(chan struct{}) ch = make(chan struct{})
called = make(chan struct{}) called2 := make(chan struct{})
running := make(chan struct{}) running := make(chan struct{})
After(func() { After(func() {
Until(func() { Until(func() {
close(running) close(running)
called <- struct{}{} called2 <- struct{}{}
}, 2*time.Second, ch) }, 2*time.Second, ch)
}).Then(func() { close(called) }) }).Then(func() { close(called2) })
<-running <-running
close(ch) close(ch)
<-called // unblock the goroutine <-called2 // unblock the goroutine
now := time.Now() now := time.Now()
<-called // wait for 'called2' to be closed
for {
if _, ok := <-called2; !ok {
break
}
}
if time.Since(now) > 1800*time.Millisecond { if time.Since(now) > 1800*time.Millisecond {
t.Fatalf("Until should not have waited the full timeout period since we closed the stop chan") t.Fatalf("Until should not have waited the full timeout period since we closed the stop chan")
} }