@@ -2,6 +2,7 @@ package util
2
2
3
3
import (
4
4
"bytes"
5
+ "fmt"
5
6
"sync"
6
7
"testing"
7
8
"time"
@@ -12,63 +13,63 @@ import (
12
13
13
14
func TestAsyncWriter_Write (t * testing.T ) {
14
15
var buf bytes.Buffer
15
- writer := NewAsyncWriter (& buf , 10 , 2 , 2 , 100 * time .Millisecond )
16
- n , err := writer .Write ([]byte ("hello" ))
16
+ w := NewAsyncWriter (& buf , 10 , 2 , 2 , 100 * time .Millisecond )
17
+ n , err := w .Write ([]byte ("hello" ))
17
18
require .NoError (t , err )
18
19
assert .Equal (t , 5 , n )
19
- writer . Close ()
20
+ assert . NoError ( t , w . Close () )
20
21
assert .Equal (t , "hello" , buf .String ())
21
22
}
22
23
23
24
func TestAsyncWriter_Empty (t * testing.T ) {
24
25
var buf bytes.Buffer
25
- writer := NewAsyncWriter (& buf , 10 , 2 , 2 , 100 * time .Millisecond )
26
- writer . Close ()
26
+ w := NewAsyncWriter (& buf , 10 , 2 , 2 , 100 * time .Millisecond )
27
+ assert . NoError ( t , w . Close () )
27
28
assert .EqualValues (t , 0 , buf .Len ())
28
29
}
29
30
30
31
func TestAsyncWriter_Overflow (t * testing.T ) {
31
32
var buf bytes.Buffer
32
- writer := NewAsyncWriter (& buf , 10 , 2 , 2 , 100 * time .Millisecond )
33
- _ , _ = writer .Write ([]byte ("hello" ))
34
- _ , _ = writer .Write ([]byte ("world" ))
35
- writer . Close ()
33
+ w := NewAsyncWriter (& buf , 10 , 2 , 2 , 100 * time .Millisecond )
34
+ _ , _ = w .Write ([]byte ("hello" ))
35
+ _ , _ = w .Write ([]byte ("world" ))
36
+ assert . NoError ( t , w . Close () )
36
37
assert .Equal (t , "helloworld" , buf .String ())
37
38
}
38
39
39
40
func TestAsyncWriter_FlushInterval (t * testing.T ) {
40
41
var buf bytes.Buffer
41
- writer := NewAsyncWriter (& buf , 10 , 2 , 2 , 10 * time .Millisecond )
42
- defer writer .Close ()
43
- _ , _ = writer .Write ([]byte ("hello" ))
42
+ w := NewAsyncWriter (& buf , 10 , 2 , 2 , 10 * time .Millisecond )
43
+ _ , _ = w .Write ([]byte ("hello" ))
44
44
assert .Eventually (t ,
45
45
func () bool { return assert .Equal (t , "hello" , buf .String ()) },
46
46
time .Second , 10 * time .Millisecond ,
47
47
)
48
+ assert .NoError (t , w .Close ())
48
49
}
49
50
50
51
func TestAsyncWriter_Close (t * testing.T ) {
51
52
var buf bytes.Buffer
52
- writer := NewAsyncWriter (& buf , 10 , 2 , 2 , 100 * time .Millisecond )
53
- _ , _ = writer .Write ([]byte ("hello" ))
54
- assert .NoError (t , writer .Close ())
53
+ w := NewAsyncWriter (& buf , 10 , 2 , 2 , 100 * time .Millisecond )
54
+ _ , _ = w .Write ([]byte ("hello" ))
55
+ assert .NoError (t , w .Close ())
55
56
assert .Equal (t , "hello" , buf .String ())
56
- assert .NoError (t , writer .Close ())
57
+ assert .NoError (t , w .Close ())
57
58
}
58
59
59
60
func TestAsyncWriter_ConcurrentWrites (t * testing.T ) {
60
61
var buf bytes.Buffer
61
- writer := NewAsyncWriter (& buf , 10 , 2 , 2 , 100 * time .Millisecond )
62
+ w := NewAsyncWriter (& buf , 10 , 2 , 2 , 100 * time .Millisecond )
62
63
var wg sync.WaitGroup
63
64
for i := 0 ; i < 10 ; i ++ {
64
65
wg .Add (1 )
65
66
go func (i int ) {
66
67
defer wg .Done ()
67
- _ , _ = writer . Write ([] byte ( "hello" ) )
68
+ _ , _ = fmt . Fprintf ( w , "hello %d \n " , i )
68
69
}(i )
69
70
}
70
71
wg .Wait ()
71
72
72
- writer . Close ()
73
- assert .Equal (t , 50 , buf .Len ())
73
+ assert . NoError ( t , w . Close () )
74
+ assert .Equal (t , 80 , buf .Len ())
74
75
}
0 commit comments