diff --git a/daemon/events/events_test.go b/daemon/events/events_test.go index 7aa8d9facc..73432478fc 100644 --- a/daemon/events/events_test.go +++ b/daemon/events/events_test.go @@ -1,7 +1,6 @@ package events import ( - "fmt" "testing" "time" @@ -81,55 +80,39 @@ func TestEventsLogTimeout(t *testing.T) { } } -func TestLogEvents(t *testing.T) { +func TestEventsCap(t *testing.T) { e := New() - - for i := 0; i < eventsLimit+16; i++ { - action := fmt.Sprintf("action_%d", i) - id := fmt.Sprintf("cont_%d", i) - from := fmt.Sprintf("image_%d", i) - e.Log(action, id, from) + for i := 0; i < eventsLimit+1; i++ { + e.Log("action", "id", "from") } - time.Sleep(50 * time.Millisecond) + // let all events go through + time.Sleep(1 * time.Second) + current, l := e.Subscribe() - for i := 0; i < 10; i++ { - num := i + eventsLimit + 16 - action := fmt.Sprintf("action_%d", num) - id := fmt.Sprintf("cont_%d", num) - from := fmt.Sprintf("image_%d", num) - e.Log(action, id, from) + if len(current) != eventsLimit { + t.Fatalf("Must be %d events, got %d", eventsLimit, len(current)) } if len(e.events) != eventsLimit { t.Fatalf("Must be %d events, got %d", eventsLimit, len(e.events)) } + for i := 0; i < 10; i++ { + e.Log("action", "id", "from") + } + // let all events go through + time.Sleep(1 * time.Second) + var msgs []*jsonmessage.JSONMessage for len(msgs) < 10 { - m := <-l - jm, ok := (m).(*jsonmessage.JSONMessage) - if !ok { - t.Fatalf("Unexpected type %T", m) + select { + case m := <-l: + jm, ok := (m).(*jsonmessage.JSONMessage) + if !ok { + t.Fatalf("Unexpected type %T", m) + } + msgs = append(msgs, jm) + default: + t.Fatalf("There is no enough events in channel") } - msgs = append(msgs, jm) - } - if len(current) != eventsLimit { - t.Fatalf("Must be %d events, got %d", eventsLimit, len(current)) - } - first := current[0] - if first.Status != "action_16" { - t.Fatalf("First action is %s, must be action_16", first.Status) - } - last := current[len(current)-1] - if last.Status != "action_79" { - t.Fatalf("Last action is %s, must be action_79", last.Status) - } - - firstC := msgs[0] - if firstC.Status != "action_80" { - t.Fatalf("First action is %s, must be action_80", firstC.Status) - } - lastC := msgs[len(msgs)-1] - if lastC.Status != "action_89" { - t.Fatalf("Last action is %s, must be action_89", lastC.Status) } }