github.com/dims/containerd@v0.2.5/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  }