@@ -14,7 +14,10 @@ import (
1414 "testing"
1515 "time"
1616
17+ "github.com/stretchr/testify/assert"
1718 "github.com/stretchr/testify/require"
19+ "go.uber.org/zap"
20+ "go.uber.org/zap/zaptest/observer"
1821
1922 "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/fileconsumer/internal/filetest"
2023 "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/testutil"
@@ -215,6 +218,9 @@ func TestTrackRotatedFilesLogOrder(t *testing.T) {
215218 cfg := NewConfig ().includeDir (tempDir )
216219 cfg .StartAt = "beginning"
217220 operator , sink := testManager (t , cfg )
221+ core , observedLogs := observer .New (zap .DebugLevel )
222+ logger := zap .New (core )
223+ operator .set .Logger = logger
218224
219225 originalFile := filetest .OpenTemp (t , tempDir )
220226 orginalName := originalFile .Name ()
@@ -240,6 +246,16 @@ func TestTrackRotatedFilesLogOrder(t *testing.T) {
240246 filetest .WriteString (t , newFile , "testlog3\n " )
241247
242248 sink .ExpectTokens (t , []byte ("testlog2" ), []byte ("testlog3" ))
249+
250+ // verify that proper logging has taken place
251+ allLogs := observedLogs .All ()
252+ foundLog := false
253+ for _ , actualLog := range allLogs {
254+ if actualLog .Message == "File has been rotated(moved)" {
255+ foundLog = true
256+ }
257+ }
258+ assert .True (t , foundLog )
243259}
244260
245261// When a file it rotated out of pattern via move/create, we should
@@ -256,6 +272,9 @@ func TestRotatedOutOfPatternMoveCreate(t *testing.T) {
256272 cfg .StartAt = "beginning"
257273 operator , sink := testManager (t , cfg )
258274 operator .persister = testutil .NewUnscopedMockPersister ()
275+ core , observedLogs := observer .New (zap .DebugLevel )
276+ logger := zap .New (core )
277+ operator .set .Logger = logger
259278
260279 originalFile := filetest .OpenTempWithPattern (t , tempDir , "*.log1" )
261280 originalFileName := originalFile .Name ()
@@ -280,6 +299,20 @@ func TestRotatedOutOfPatternMoveCreate(t *testing.T) {
280299
281300 // expect remaining log from old file as well as all from new file
282301 sink .ExpectTokens (t , []byte ("testlog2" ), []byte ("testlog4" ), []byte ("testlog5" ))
302+
303+ // verify that proper logging has taken place
304+ allLogs := observedLogs .All ()
305+ expectedLogs := map [string ]string {
306+ "File has been rotated(moved)" : "" ,
307+ "Reading lost file" : "" ,
308+ }
309+ foundLogs := 0
310+ for _ , actualLog := range allLogs {
311+ if _ , ok := expectedLogs [actualLog .Message ]; ok {
312+ foundLogs ++
313+ }
314+ }
315+ assert .Equal (t , 2 , foundLogs )
283316}
284317
285318// When a file it rotated out of pattern via copy/truncate, we should
@@ -293,6 +326,9 @@ func TestRotatedOutOfPatternCopyTruncate(t *testing.T) {
293326 cfg .StartAt = "beginning"
294327 operator , sink := testManager (t , cfg )
295328 operator .persister = testutil .NewUnscopedMockPersister ()
329+ core , observedLogs := observer .New (zap .DebugLevel )
330+ logger := zap .New (core )
331+ operator .set .Logger = logger
296332
297333 originalFile := filetest .OpenTempWithPattern (t , tempDir , "*.log1" )
298334 filetest .WriteString (t , originalFile , "testlog1\n " )
@@ -318,6 +354,16 @@ func TestRotatedOutOfPatternCopyTruncate(t *testing.T) {
318354 operator .poll (context .Background ())
319355
320356 sink .ExpectTokens (t , []byte ("testlog4" ), []byte ("testlog5" ))
357+
358+ // verify that proper logging has taken place
359+ allLogs := observedLogs .All ()
360+ foundLog := false
361+ for _ , actualLog := range allLogs {
362+ if actualLog .Message == "File has been rotated(truncated)" {
363+ foundLog = true
364+ }
365+ }
366+ assert .True (t , foundLog )
321367}
322368
323369// TruncateThenWrite tests that, after a file has been truncated,
@@ -333,6 +379,9 @@ func TestTruncateThenWrite(t *testing.T) {
333379 cfg .StartAt = "beginning"
334380 operator , sink := testManager (t , cfg )
335381 operator .persister = testutil .NewUnscopedMockPersister ()
382+ core , observedLogs := observer .New (zap .DebugLevel )
383+ logger := zap .New (core )
384+ operator .set .Logger = logger
336385
337386 temp1 := filetest .OpenTemp (t , tempDir )
338387 filetest .WriteString (t , temp1 , "testlog1\n testlog2\n " )
@@ -348,6 +397,16 @@ func TestTruncateThenWrite(t *testing.T) {
348397 operator .poll (context .Background ())
349398 sink .ExpectToken (t , []byte ("testlog3" ))
350399 sink .ExpectNoCalls (t )
400+
401+ // verify that proper logging has taken place
402+ allLogs := observedLogs .All ()
403+ foundLog := false
404+ for _ , actualLog := range allLogs {
405+ if actualLog .Message == "File has been rotated(truncated)" {
406+ foundLog = true
407+ }
408+ }
409+ assert .True (t , foundLog )
351410}
352411
353412// CopyTruncateWriteBoth tests that when a file is copied
0 commit comments