github.com/xmidt-org/webpa-common@v1.11.9/concurrent/waitTimeout_test.go (about) 1 package concurrent 2 3 import ( 4 "sync" 5 "testing" 6 "time" 7 ) 8 9 func TestWaitTimeoutSuccess(t *testing.T) { 10 waitGroup := &sync.WaitGroup{} 11 waitGroup.Add(1) 12 go func() { 13 timer := time.NewTimer(time.Millisecond * 500) 14 defer timer.Stop() 15 <-timer.C 16 waitGroup.Done() 17 }() 18 19 if !WaitTimeout(waitGroup, time.Millisecond*1000) { 20 t.Errorf("Failed wait within the timeout") 21 } 22 } 23 24 func TestWaitTimeoutFail(t *testing.T) { 25 waitGroup := &sync.WaitGroup{} 26 waitGroup.Add(1) 27 go func() { 28 timer := time.NewTimer(time.Second * 3) 29 defer timer.Stop() 30 <-timer.C 31 waitGroup.Done() 32 }() 33 34 if WaitTimeout(waitGroup, time.Millisecond*500) { 35 t.Errorf("WaitTimeout() should return false if the timeout elapses without Wait() succeeding") 36 } 37 }