diff --git a/pkg/skaffold/output/output.go b/pkg/skaffold/output/output.go index d3a3806a263..79969dbfeb9 100644 --- a/pkg/skaffold/output/output.go +++ b/pkg/skaffold/output/output.go @@ -38,14 +38,13 @@ type skaffoldWriter struct { } func (s skaffoldWriter) Write(p []byte) (int, error) { - written := 0 + if len(p) == 0 { + return 0, nil + } if s.timestamps { - t, err := s.MainWriter.Write([]byte(time.Now().Format(timestampFormat) + " ")) - if err != nil { - return t, err + if _, err := io.WriteString(s.MainWriter, time.Now().Format(timestampFormat+" ")); err != nil { + return 0, err } - - written += t } n, err := s.MainWriter.Write(p) @@ -56,11 +55,9 @@ func (s skaffoldWriter) Write(p []byte) (int, error) { return n, io.ErrShortWrite } - written += n - s.EventWriter.Write(p) - return written, nil + return n, nil } func GetWriter(ctx context.Context, out io.Writer, defaultColor int, forceColors bool, timestamps bool) io.Writer { diff --git a/pkg/skaffold/output/output_test.go b/pkg/skaffold/output/output_test.go index 451d0b64b49..5c62b4d8f5f 100644 --- a/pkg/skaffold/output/output_test.go +++ b/pkg/skaffold/output/output_test.go @@ -163,11 +163,17 @@ func TestWriteWithTimeStamps(t *testing.T) { } for _, test := range tests { - t.Run(test.name, func(t *testing.T) { + testutil.Run(t, test.name, func(t *testutil.T) { var buf bytes.Buffer out := test.writer(&buf) Default.Fprintf(out, "testing!") - testutil.CheckDeepEqual(t, test.expectedLen, len(buf.String())) + t.CheckDeepEqual(test.expectedLen, len(buf.String())) + + // Consume same number of bytes regardless of writer options. + out2 := test.writer(io.Discard) + n, err := out2.Write([]byte("testing!")) + t.CheckNoError(err) + t.CheckDeepEqual(len("testing!"), n) }) } }