diff --git a/components/engine/daemon/logger/adapter_test.go b/components/engine/daemon/logger/adapter_test.go index 707550e7e3..b8c069ffbe 100644 --- a/components/engine/daemon/logger/adapter_test.go +++ b/components/engine/daemon/logger/adapter_test.go @@ -1,17 +1,16 @@ package logger import ( - "bytes" "encoding/binary" "io" "io/ioutil" "os" - "runtime" "testing" "time" "github.com/docker/docker/api/types/plugins/logdriver" protoio "github.com/gogo/protobuf/io" + "github.com/stretchr/testify/assert" ) // mockLoggingPlugin implements the loggingPlugin interface for testing purposes @@ -89,9 +88,8 @@ func (l *mockLoggingPlugin) ReadLogs(info Info, config ReadConfig) (io.ReadClose func newMockPluginAdapter(t *testing.T) Logger { r, w := io.Pipe() f, err := ioutil.TempFile("", "mock-plugin-adapter") - if err != nil { - t.Fatal(err) - } + assert.NoError(t, err) + enc := logdriver.NewLogEntryEncoder(w) a := &pluginAdapterWithRead{ &pluginAdapter{ @@ -118,15 +116,11 @@ func TestAdapterReadLogs(t *testing.T) { } for _, msg := range testMsg { m := msg.copy() - if err := l.Log(m); err != nil { - t.Fatal(err) - } + assert.NoError(t, l.Log(m)) } lr, ok := l.(LogReader) - if !ok { - t.Fatal("expected log reader") - } + assert.NotNil(t, ok) lw := lr.ReadLogs(ReadConfig{}) @@ -134,16 +128,14 @@ func TestAdapterReadLogs(t *testing.T) { select { case msg := <-lw.Msg: testMessageEqual(t, &x, msg) - case <-time.After(10 * time.Millisecond): + case <-time.After(10 * time.Second): t.Fatal("timeout reading logs") } } select { case _, ok := <-lw.Msg: - if ok { - t.Fatal("expected message channel to be closed") - } + assert.False(t, ok, "expected message channel to be closed") case <-time.After(10 * time.Second): t.Fatal("timeout waiting for message channel to close") @@ -161,16 +153,11 @@ func TestAdapterReadLogs(t *testing.T) { } x := Message{Line: []byte("Too infinity and beyond!"), Timestamp: time.Now()} - - if err := l.Log(x.copy()); err != nil { - t.Fatal(err) - } + assert.NoError(t, l.Log(x.copy())) select { case msg, ok := <-lw.Msg: - if !ok { - t.Fatal("message channel unexpectedly closed") - } + assert.NotNil(t, ok, "message channel unexpectedly closed") testMessageEqual(t, &x, msg) case <-time.After(10 * time.Second): t.Fatal("timeout reading logs") @@ -179,30 +166,15 @@ func TestAdapterReadLogs(t *testing.T) { l.Close() select { case msg, ok := <-lw.Msg: - if ok { - t.Fatal("expected message channel to be closed") - } - if msg != nil { - t.Fatal("expected nil message") - } + assert.False(t, ok, "expected message channel to be closed") + assert.Nil(t, msg) case <-time.After(10 * time.Second): t.Fatal("timeout waiting for logger to close") } } func testMessageEqual(t *testing.T, a, b *Message) { - _, _, n, _ := runtime.Caller(1) - errFmt := "line %d: expected same messages:\nwant: %+v\nhave: %+v" - - if !bytes.Equal(a.Line, b.Line) { - t.Fatalf(errFmt, n, *a, *b) - } - - if a.Timestamp.UnixNano() != b.Timestamp.UnixNano() { - t.Fatalf(errFmt, n, *a, *b) - } - - if a.Source != b.Source { - t.Fatalf(errFmt, n, *a, *b) - } + assert.Equal(t, a.Line, b.Line) + assert.Equal(t, a.Timestamp.UnixNano(), b.Timestamp.UnixNano()) + assert.Equal(t, a.Source, b.Source) }