github.com/datawolf/containerd@v0.2.4/integration-test/events_test.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "time" 6 7 "github.com/docker/containerd/api/grpc/types" 8 "github.com/docker/docker/pkg/integration/checker" 9 "github.com/go-check/check" 10 ) 11 12 func (cs *ContainerdSuite) TestEventsId(t *check.C) { 13 if err := CreateBusyboxBundle("busybox-ls", []string{"ls"}); err != nil { 14 t.Fatal(err) 15 } 16 17 from := time.Now() 18 19 for i := 0; i < 10; i++ { 20 _, err := cs.RunContainer(fmt.Sprintf("ls-%d", i), "busybox-ls") 21 if err != nil { 22 t.Fatal(err) 23 } 24 } 25 26 containerID := "ls-4" 27 28 events, err := cs.Events(from, true, containerID) 29 if err != nil { 30 t.Fatal(err) 31 } 32 33 evs := []*types.Event{} 34 for { 35 e, err := events.Recv() 36 if err != nil { 37 if err.Error() == "EOF" { 38 break 39 } 40 t.Fatal(err) 41 } 42 evs = append(evs, e) 43 } 44 45 t.Assert(len(evs), checker.Equals, 2) 46 for idx, evt := range []types.Event{ 47 { 48 Type: "start-container", 49 Id: containerID, 50 Status: 0, 51 Pid: "", 52 }, 53 { 54 Type: "exit", 55 Id: containerID, 56 Status: 0, 57 Pid: "init", 58 }, 59 } { 60 evt.Timestamp = evs[idx].Timestamp 61 t.Assert(*evs[idx], checker.Equals, evt) 62 } 63 }