limiter_test.go raw

   1  package bridge
   2  
   3  import (
   4  	"testing"
   5  	"time"
   6  )
   7  
   8  func TestLimiter(t *testing.T) {
   9  	l := newLimiter(1000)
  10  	l.wait(900)
  11  	start := time.Now()
  12  	l.wait(200)
  13  	if elapsed := time.Since(start); elapsed < 50*time.Millisecond {
  14  		t.Fatalf("limit did not delay: %s", elapsed)
  15  	}
  16  	l2 := newLimiter(0)
  17  	start = time.Now()
  18  	l2.wait(1 << 20)
  19  	if elapsed := time.Since(start); elapsed > 100*time.Millisecond {
  20  		t.Fatalf("unlimited limiter delayed: %s", elapsed)
  21  	}
  22  }
  23