Browse Source

tstime/rate: deflake TestLongRunningQPS even more

Previous de-flakings:
* 8cf1af8a0703c36256fc58e98ddb63b8907848f1 for #3733
* 30458c71c81a3d680aacecafa67fabc1c728c52d for #2727

Fixes #4044

Change-Id: I506cf1ff37bb224f5a9929f1998901e60b24535d
Signed-off-by: Brad Fitzpatrick <[email protected]>
Brad Fitzpatrick 4 years ago
parent
commit
6a2e94cbeb
1 changed files with 0 additions and 56 deletions
  1. 0 56
      tstime/rate/rate_test.go

+ 0 - 56
tstime/rate/rate_test.go

@@ -16,7 +16,6 @@ package rate
 import (
 	"context"
 	"math"
-	"runtime"
 	"sync"
 	"sync/atomic"
 	"testing"
@@ -155,61 +154,6 @@ func TestSimultaneousRequests(t *testing.T) {
 	}
 }
 
-func TestLongRunningQPS(t *testing.T) {
-	if testing.Short() {
-		t.Skip("skipping in short mode")
-	}
-	if runtime.GOOS == "openbsd" {
-		t.Skip("low resolution time.Sleep invalidates test (golang.org/issue/14183)")
-		return
-	}
-
-	// The test runs for a few seconds executing many requests and then checks
-	// that overall number of requests is reasonable.
-	const (
-		limit = 100
-		burst = 100
-	)
-	var numOK = int32(0)
-
-	lim := NewLimiter(limit, burst)
-
-	var wg sync.WaitGroup
-	f := func() {
-		if ok := lim.Allow(); ok {
-			atomic.AddInt32(&numOK, 1)
-		}
-		wg.Done()
-	}
-
-	// This will still offer ~500 requests per second,
-	// but won't consume outrageous amount of CPU.
-	start := time.Now()
-	end := start.Add(1 * time.Second)
-	ticker := time.NewTicker(2 * time.Millisecond)
-	defer ticker.Stop()
-	for now := range ticker.C {
-		if now.After(end) {
-			break
-		}
-		wg.Add(1)
-		go f()
-	}
-	wg.Wait()
-	elapsed := time.Since(start)
-	ideal := burst + (limit * float64(elapsed) / float64(time.Second))
-
-	// We should never get more requests than allowed.
-	if want := int32(ideal + 1); numOK > want {
-		t.Errorf("numOK = %d, want %d (ideal %f)", numOK, want, ideal)
-	}
-	// We should get close-ish to the number of requests allowed.
-	// Trying to get too close causes flakes. Treat this as a sanity check.
-	if want := int32(0.9 * ideal); numOK < want {
-		t.Errorf("numOK = %d, want %d (ideal %f)", numOK, want, ideal)
-	}
-}
-
 type request struct {
 	t   time.Time
 	n   int