Update highwatermark

This commit is contained in:
Harry Zhang
2015-10-26 03:35:57 +00:00
committed by harry
parent 5405a5d98d
commit 8fe92c69d2
6 changed files with 55 additions and 132 deletions

View File

@@ -17,15 +17,13 @@ limitations under the License.
package atomic
import (
"math/rand"
"sync"
"testing"
"time"
"k8s.io/kubernetes/pkg/util"
)
func ExpectValue(t *testing.T, atomicValue *AtomicValue, expectedValue interface{}) {
func ExpectValue(t *testing.T, atomicValue *Value, expectedValue interface{}) {
actualValue := atomicValue.Load()
if actualValue != expectedValue {
t.Errorf("Expected to find %v, found %v", expectedValue, actualValue)
@@ -47,39 +45,8 @@ func ExpectValue(t *testing.T, atomicValue *AtomicValue, expectedValue interface
}
func TestAtomicValue(t *testing.T) {
atomicValue := &AtomicValue{}
atomicValue := &Value{}
ExpectValue(t, atomicValue, nil)
atomicValue.Store(10)
ExpectValue(t, atomicValue, 10)
}
func TestHighWaterMark(t *testing.T) {
var h HighWaterMark
for i := int64(10); i < 20; i++ {
if !h.Check(i) {
t.Errorf("unexpected false for %v", i)
}
if h.Check(i - 1) {
t.Errorf("unexpected true for %v", i-1)
}
}
m := int64(0)
wg := sync.WaitGroup{}
for i := 0; i < 300; i++ {
wg.Add(1)
v := rand.Int63()
go func(v int64) {
defer wg.Done()
h.Check(v)
}(v)
if v > m {
m = v
}
}
wg.Wait()
if m != int64(h) {
t.Errorf("unexpected value, wanted %v, got %v", m, int64(h))
}
}