mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-20 09:05:26 +00:00
Add lock in density test
This commit is contained in:
parent
1df76bc663
commit
6c36b611ea
@ -229,6 +229,8 @@ var _ = Describe("Density [Skipped]", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a listener for events.
|
// Create a listener for events.
|
||||||
|
// eLock is a lock protects the events
|
||||||
|
var eLock sync.Mutex
|
||||||
events := make([](*api.Event), 0)
|
events := make([](*api.Event), 0)
|
||||||
_, controller := controllerframework.NewInformer(
|
_, controller := controllerframework.NewInformer(
|
||||||
&cache.ListWatch{
|
&cache.ListWatch{
|
||||||
@ -243,6 +245,8 @@ var _ = Describe("Density [Skipped]", func() {
|
|||||||
0,
|
0,
|
||||||
controllerframework.ResourceEventHandlerFuncs{
|
controllerframework.ResourceEventHandlerFuncs{
|
||||||
AddFunc: func(obj interface{}) {
|
AddFunc: func(obj interface{}) {
|
||||||
|
eLock.Lock()
|
||||||
|
defer eLock.Unlock()
|
||||||
events = append(events, obj.(*api.Event))
|
events = append(events, obj.(*api.Event))
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -251,6 +255,8 @@ var _ = Describe("Density [Skipped]", func() {
|
|||||||
go controller.Run(stop)
|
go controller.Run(stop)
|
||||||
|
|
||||||
// Create a listener for api updates
|
// Create a listener for api updates
|
||||||
|
// uLock is a lock protects the updateCount
|
||||||
|
var uLock sync.Mutex
|
||||||
updateCount := 0
|
updateCount := 0
|
||||||
label := labels.SelectorFromSet(labels.Set(map[string]string{"name": RCName}))
|
label := labels.SelectorFromSet(labels.Set(map[string]string{"name": RCName}))
|
||||||
_, updateController := controllerframework.NewInformer(
|
_, updateController := controllerframework.NewInformer(
|
||||||
@ -268,6 +274,8 @@ var _ = Describe("Density [Skipped]", func() {
|
|||||||
0,
|
0,
|
||||||
controllerframework.ResourceEventHandlerFuncs{
|
controllerframework.ResourceEventHandlerFuncs{
|
||||||
UpdateFunc: func(_, _ interface{}) {
|
UpdateFunc: func(_, _ interface{}) {
|
||||||
|
uLock.Lock()
|
||||||
|
defer uLock.Unlock()
|
||||||
updateCount++
|
updateCount++
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -287,10 +295,18 @@ var _ = Describe("Density [Skipped]", func() {
|
|||||||
currentCount := updateCount
|
currentCount := updateCount
|
||||||
timeout := 10 * time.Minute
|
timeout := 10 * time.Minute
|
||||||
for start := time.Now(); (last < current || lastCount < currentCount) && time.Since(start) < timeout; time.Sleep(10 * time.Second) {
|
for start := time.Now(); (last < current || lastCount < currentCount) && time.Since(start) < timeout; time.Sleep(10 * time.Second) {
|
||||||
last = current
|
func() {
|
||||||
current = len(events)
|
eLock.Lock()
|
||||||
lastCount = currentCount
|
defer eLock.Unlock()
|
||||||
currentCount = updateCount
|
last = current
|
||||||
|
current = len(events)
|
||||||
|
}()
|
||||||
|
func() {
|
||||||
|
uLock.Lock()
|
||||||
|
defer uLock.Unlock()
|
||||||
|
lastCount = currentCount
|
||||||
|
currentCount = updateCount
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
close(stop)
|
close(stop)
|
||||||
|
|
||||||
@ -298,10 +314,10 @@ var _ = Describe("Density [Skipped]", func() {
|
|||||||
Logf("Warning: Not all events were recorded after waiting %.2f minutes", timeout.Minutes())
|
Logf("Warning: Not all events were recorded after waiting %.2f minutes", timeout.Minutes())
|
||||||
}
|
}
|
||||||
Logf("Found %d events", current)
|
Logf("Found %d events", current)
|
||||||
if updateCount != currentCount {
|
if currentCount != lastCount {
|
||||||
Logf("Warning: Not all updates were recorded after waiting %.2f minutes", timeout.Minutes())
|
Logf("Warning: Not all updates were recorded after waiting %.2f minutes", timeout.Minutes())
|
||||||
}
|
}
|
||||||
Logf("Found %d updates", updateCount)
|
Logf("Found %d updates", currentCount)
|
||||||
|
|
||||||
// Tune the threshold for allowed failures.
|
// Tune the threshold for allowed failures.
|
||||||
badEvents := BadEvents(events)
|
badEvents := BadEvents(events)
|
||||||
|
Loading…
Reference in New Issue
Block a user