|
@@ -223,10 +223,28 @@ func TestCopierSlow(t *testing.T) {
|
|
|
}
|
|
|
|
|
|
func TestCopierWithSized(t *testing.T) {
|
|
|
+ t.Run("as is", func(t *testing.T) {
|
|
|
+ testCopierWithSized(t, func(l SizedLogger) SizedLogger {
|
|
|
+ return l
|
|
|
+ })
|
|
|
+ })
|
|
|
+ t.Run("With RingLogger", func(t *testing.T) {
|
|
|
+ testCopierWithSized(t, func(l SizedLogger) SizedLogger {
|
|
|
+ return newRingLogger(l, Info{}, defaultRingMaxSize)
|
|
|
+ })
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+func testCopierWithSized(t *testing.T, loggerFactory func(SizedLogger) SizedLogger) {
|
|
|
var jsonBuf bytes.Buffer
|
|
|
expectedMsgs := 2
|
|
|
- sizedLogger := &TestSizedLoggerJSON{Encoder: json.NewEncoder(&jsonBuf)}
|
|
|
- logbuf := bytes.NewBufferString(strings.Repeat(".", sizedLogger.BufSize()*expectedMsgs))
|
|
|
+ sizedLogger := loggerFactory(&TestSizedLoggerJSON{Encoder: json.NewEncoder(&jsonBuf)})
|
|
|
+
|
|
|
+ size := sizedLogger.BufSize()
|
|
|
+ if size < 0 {
|
|
|
+ size = 100
|
|
|
+ }
|
|
|
+ logbuf := bytes.NewBufferString(strings.Repeat(".", size*expectedMsgs))
|
|
|
c := NewCopier(map[string]io.Reader{"stdout": logbuf}, sizedLogger)
|
|
|
|
|
|
c.Run()
|
|
@@ -234,6 +252,8 @@ func TestCopierWithSized(t *testing.T) {
|
|
|
c.Wait()
|
|
|
c.Close()
|
|
|
|
|
|
+ sizedLogger.Close()
|
|
|
+
|
|
|
recvdMsgs := 0
|
|
|
dec := json.NewDecoder(&jsonBuf)
|
|
|
for {
|
|
@@ -253,7 +273,7 @@ func TestCopierWithSized(t *testing.T) {
|
|
|
recvdMsgs++
|
|
|
}
|
|
|
if recvdMsgs != expectedMsgs {
|
|
|
- t.Fatalf("expected to receive %d messages, actually received %d", expectedMsgs, recvdMsgs)
|
|
|
+ t.Fatalf("expected to receive %d messages, actually received %d %q", expectedMsgs, recvdMsgs, jsonBuf.String())
|
|
|
}
|
|
|
}
|
|
|
|