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  }