Prechádzať zdrojové kódy

add race test for EWMA

mihasya 7 rokov pred
rodič
commit
4cdad2ce7c
1 zmenil súbory, kde vykonal 22 pridanie a 1 odobranie
  1. 22 1
      ewma_test.go

+ 22 - 1
ewma_test.go

@@ -1,6 +1,11 @@
 package metrics
 
-import "testing"
+import (
+	"math/rand"
+	"sync"
+	"testing"
+	"time"
+)
 
 func BenchmarkEWMA(b *testing.B) {
 	a := NewEWMA1()
@@ -23,6 +28,22 @@ func BenchmarkEWMAParallel(b *testing.B) {
 	})
 }
 
+// exercise race detector
+func TestEWMAConcurrency(t *testing.T) {
+	rand.Seed(time.Now().Unix())
+	a := NewEWMA1()
+	wg := &sync.WaitGroup{}
+	reps := 100
+	for i := 0; i < reps; i++ {
+		wg.Add(1)
+		go func(ewma EWMA, wg *sync.WaitGroup) {
+			a.Update(rand.Int63())
+			wg.Done()
+		}(a, wg)
+	}
+	wg.Wait()
+}
+
 func TestEWMA1(t *testing.T) {
 	a := NewEWMA1()
 	a.Update(3)