@@ -22,6 +22,7 @@ func TestFileRotation(t *testing.T) {
2222 writer := newRotateWriter (WriterCfg {
2323 Dir : tmpDir ,
2424 FileSize : 1 ,
25+ Compress : true ,
2526 })
2627 defer writer .Close ()
2728
@@ -186,39 +187,55 @@ func TestIterateFiles(t *testing.T) {
186187
187188func TestReadGZip (t * testing.T ) {
188189 tmpDir := t .TempDir ()
189- writer := newRotateWriter (WriterCfg {
190- Dir : tmpDir ,
191- FileSize : 1 ,
192- })
193- defer writer .Close ()
190+ for _ , compress := range []bool {true , false } {
191+ require .NoError (t , os .RemoveAll (tmpDir ))
192+ require .NoError (t , os .MkdirAll (tmpDir , 0777 ))
194193
195- data := make ([]byte , 100 * 1024 )
196- for i := 0 ; i < 11 ; i ++ {
197- require .NoError (t , writer .Write (data ))
198- }
199- // files are rotated and compressed at backendground asynchronously
200- require .Eventually (t , func () bool {
201- files := listFiles (t , tmpDir )
202- for _ , f := range files {
203- if strings .HasPrefix (f , "traffic" ) && strings .HasSuffix (f , ".gz" ) {
204- return true
194+ writer := newRotateWriter (WriterCfg {
195+ Dir : tmpDir ,
196+ FileSize : 1 ,
197+ Compress : compress ,
198+ })
199+ data := make ([]byte , 100 * 1024 )
200+ for i := 0 ; i < 11 ; i ++ {
201+ require .NoError (t , writer .Write (data ))
202+ }
203+ // files are rotated and compressed at backendground asynchronously
204+ if compress {
205+ require .Eventually (t , func () bool {
206+ files := listFiles (t , tmpDir )
207+ for _ , f := range files {
208+ if strings .HasPrefix (f , "traffic" ) && strings .HasSuffix (f , ".gz" ) {
209+ return true
210+ }
211+ }
212+ t .Logf ("traffic files: %v" , files )
213+ return false
214+ }, 5 * time .Second , 10 * time .Millisecond )
215+ } else {
216+ time .Sleep (100 * time .Millisecond )
217+ files := listFiles (t , tmpDir )
218+ for _ , f := range files {
219+ if strings .HasPrefix (f , "traffic" ) {
220+ require .False (t , strings .HasSuffix (f , ".gz" ))
221+ }
205222 }
206223 }
207- t .Logf ("traffic files: %v" , files )
208- return false
209- }, 5 * time .Second , 10 * time .Millisecond )
224+ require .NoError (t , writer .Close ())
210225
211- lg , _ := logger .CreateLoggerForTest (t )
212- l := newRotateReader (lg , tmpDir )
213- for i := 0 ; i < 11 ; i ++ {
214- data = make ([]byte , 100 * 1024 )
215- _ , err := io .ReadFull (l , data )
216- require .NoError (t , err )
217- for j := 0 ; j < 100 * 1024 ; j ++ {
218- require .Equal (t , byte (0 ), data [j ])
226+ lg , _ := logger .CreateLoggerForTest (t )
227+ l := newRotateReader (lg , tmpDir )
228+ for i := 0 ; i < 11 ; i ++ {
229+ data = make ([]byte , 100 * 1024 )
230+ _ , err := io .ReadFull (l , data )
231+ require .NoError (t , err )
232+ for j := 0 ; j < 100 * 1024 ; j ++ {
233+ require .Equal (t , byte (0 ), data [j ])
234+ }
219235 }
236+ data = make ([]byte , 1 )
237+ _ , err := l .Read (data )
238+ require .True (t , errors .Is (err , io .EOF ))
239+ l .Close ()
220240 }
221- data = make ([]byte , 1 )
222- _ , err := l .Read (data )
223- require .True (t , errors .Is (err , io .EOF ))
224241}
0 commit comments