mirror of
https://github.com/weaveworks/scope.git
synced 2026-05-06 01:08:03 +00:00
59 lines
1.2 KiB
Go
59 lines
1.2 KiB
Go
package app_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/weaveworks/scope/app"
|
|
"github.com/weaveworks/scope/report"
|
|
"github.com/weaveworks/scope/test"
|
|
"github.com/weaveworks/scope/test/reflect"
|
|
)
|
|
|
|
func TestCollector(t *testing.T) {
|
|
window := time.Millisecond
|
|
c := app.NewCollector(window)
|
|
|
|
r1 := report.MakeReport()
|
|
r1.Endpoint.AddNode("foo", report.MakeNode())
|
|
|
|
r2 := report.MakeReport()
|
|
r2.Endpoint.AddNode("bar", report.MakeNode())
|
|
|
|
if want, have := report.MakeReport(), c.Report(); !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
|
|
c.Add(r1)
|
|
if want, have := r1, c.Report(); !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
|
|
c.Add(r2)
|
|
|
|
merged := report.MakeReport()
|
|
merged = merged.Merge(r1)
|
|
merged = merged.Merge(r2)
|
|
if want, have := merged, c.Report(); !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestCollectorWait(t *testing.T) {
|
|
window := time.Millisecond
|
|
c := app.NewCollector(window)
|
|
|
|
waiter := make(chan struct{}, 1)
|
|
c.WaitOn(waiter)
|
|
defer c.UnWait(waiter)
|
|
c.(interface {
|
|
Broadcast()
|
|
}).Broadcast()
|
|
|
|
select {
|
|
case <-waiter:
|
|
default:
|
|
t.Fatal("Didn't unblock")
|
|
}
|
|
}
|