@@ -3,6 +3,7 @@ package pulse
33import (
44 "errors"
55 "fmt"
6+ "log"
67 "net"
78 "sync"
89 "sync/atomic"
@@ -36,27 +37,28 @@ func TestOnOpen_RealSocket(t *testing.T) {
3637 }
3738
3839 addr := listener .Addr ().String ()
40+ var wg sync.WaitGroup
3941
40- // 启动服务器
42+ wg . Add ( 1 )
4143 go func () {
44+ defer wg .Done ()
4245 conn , err := listener .Accept ()
4346 if err != nil {
4447 return
4548 }
4649 defer func () {
4750 if err := conn .Close (); err != nil {
48- t . Logf ("failed to close connection: %v" , err )
51+ log . Printf ("failed to close connection: %v" , err )
4952 }
5053 }()
5154
52- // 获取文件描述符
5355 fd , err := core .GetFdFromConn (conn )
5456 if err != nil {
5557 t .Errorf ("Failed to get fd from conn: %v" , err )
5658 return
5759 }
5860 if err := conn .Close (); err != nil { // 关闭原始连接,我们使用fd
59- t . Logf ("failed to close original connection: %v" , err )
61+ log . Printf ("failed to close original connection: %v" , err )
6062 }
6163
6264 // 创建Pulse连接
@@ -79,8 +81,9 @@ func TestOnOpen_RealSocket(t *testing.T) {
7981
8082 cleanup := func () {
8183 if err := listener .Close (); err != nil {
82- t . Logf ("failed to close listener: %v" , err )
84+ log . Printf ("failed to close listener: %v" , err )
8385 }
86+ wg .Wait ()
8487 }
8588
8689 return addr , cleanup
@@ -98,15 +101,18 @@ func TestOnOpen_RealSocket(t *testing.T) {
98101 }
99102
100103 addr := listener .Addr ().String ()
104+ var wg sync.WaitGroup
101105
106+ wg .Add (1 )
102107 go func () {
108+ defer wg .Done ()
103109 conn , err := listener .Accept ()
104110 if err != nil {
105111 return
106112 }
107113 defer func () {
108114 if err := conn .Close (); err != nil {
109- t . Logf ("failed to close connection: %v" , err )
115+ log . Printf ("failed to close connection: %v" , err )
110116 }
111117 }()
112118
@@ -115,7 +121,7 @@ func TestOnOpen_RealSocket(t *testing.T) {
115121 return
116122 }
117123 if err := conn .Close (); err != nil {
118- t . Logf ("failed to close original connection: %v" , err )
124+ log . Printf ("failed to close original connection: %v" , err )
119125 }
120126
121127 safeConns := & safeConns [Conn ]{}
@@ -134,8 +140,9 @@ func TestOnOpen_RealSocket(t *testing.T) {
134140
135141 return addr , func () {
136142 if err := listener .Close (); err != nil {
137- t . Logf ("failed to close listener: %v" , err )
143+ log . Printf ("failed to close listener: %v" , err )
138144 }
145+ wg .Wait ()
139146 }
140147 },
141148 clientDelay : 50 * time .Millisecond ,
@@ -243,7 +250,7 @@ func TestOnClose_RealSocket(t *testing.T) {
243250 // 正常关闭客户端连接
244251 time .Sleep (50 * time .Millisecond )
245252 if err := clientConn .Close (); err != nil {
246- t . Logf ("failed to close client connection: %v" , err )
253+ log . Printf ("failed to close client connection: %v" , err )
247254 }
248255 }, false )
249256 },
@@ -270,7 +277,7 @@ func TestOnClose_RealSocket(t *testing.T) {
270277 return runClientServerTest (t , callback , func (clientConn net.Conn , pulseConn * Conn ) {
271278 // 设置短超时
272279 if err := pulseConn .SetDeadline (time .Now ().Add (30 * time .Millisecond )); err != nil {
273- t . Logf ("failed to set deadline: %v" , err )
280+ log . Printf ("failed to set deadline: %v" , err )
274281 }
275282 time .Sleep (50 * time .Millisecond ) // 等待超时
276283 }, false )
@@ -285,7 +292,7 @@ func TestOnClose_RealSocket(t *testing.T) {
285292 return runClientServerTest (t , callback , func (clientConn net.Conn , pulseConn * Conn ) {
286293 // 模拟网络错误(强制关闭)
287294 if err := clientConn .Close (); err != nil {
288- t . Logf ("failed to close client connection: %v" , err )
295+ log . Printf ("failed to close client connection: %v" , err )
289296 }
290297 time .Sleep (10 * time .Millisecond )
291298 }, true ) // 传递错误
@@ -379,7 +386,7 @@ func runClientServerTest(t *testing.T, callback Callback, scenario func(net.Conn
379386 }
380387 defer func () {
381388 if err := listener .Close (); err != nil {
382- t . Logf ("failed to close listener: %v" , err )
389+ log . Printf ("failed to close listener: %v" , err )
383390 }
384391 }()
385392
@@ -402,7 +409,7 @@ func runClientServerTest(t *testing.T, callback Callback, scenario func(net.Conn
402409 }
403410 defer func () {
404411 if err := conn .Close (); err != nil {
405- t . Logf ("failed to close connection: %v" , err )
412+ log . Printf ("failed to close connection: %v" , err )
406413 }
407414 }()
408415
@@ -413,7 +420,7 @@ func runClientServerTest(t *testing.T, callback Callback, scenario func(net.Conn
413420 return
414421 }
415422 if err := conn .Close (); err != nil {
416- t . Logf ("failed to close original connection: %v" , err )
423+ log . Printf ("failed to close original connection: %v" , err )
417424 }
418425
419426 safeConns := & safeConns [Conn ]{}
@@ -445,7 +452,7 @@ func runClientServerTest(t *testing.T, callback Callback, scenario func(net.Conn
445452 }
446453 defer func () {
447454 if err := clientConn .Close (); err != nil {
448- t . Logf ("failed to close client connection: %v" , err )
455+ log . Printf ("failed to close client connection: %v" , err )
449456 }
450457 }()
451458
@@ -528,7 +535,7 @@ func TestCallback_RealConnectionLifecycle(t *testing.T) {
528535 }
529536 defer func () {
530537 if err := listener .Close (); err != nil {
531- t . Logf ("failed to close listener: %v" , err )
538+ log . Printf ("failed to close listener: %v" , err )
532539 }
533540 }()
534541
@@ -545,7 +552,7 @@ func TestCallback_RealConnectionLifecycle(t *testing.T) {
545552 }
546553 defer func () {
547554 if err := conn .Close (); err != nil {
548- t . Logf ("failed to close connection: %v" , err )
555+ log . Printf ("failed to close connection: %v" , err )
549556 }
550557 }()
551558
@@ -554,7 +561,7 @@ func TestCallback_RealConnectionLifecycle(t *testing.T) {
554561 return
555562 }
556563 if err := conn .Close (); err != nil {
557- t . Logf ("failed to close original connection: %v" , err )
564+ log . Printf ("failed to close original connection: %v" , err )
558565 }
559566
560567 safeConns := & safeConns [Conn ]{}
@@ -596,7 +603,7 @@ func TestCallback_RealConnectionLifecycle(t *testing.T) {
596603 }
597604 defer func () {
598605 if err := clientConn .Close (); err != nil {
599- t . Logf ("failed to close client connection: %v" , err )
606+ log . Printf ("failed to close client connection: %v" , err )
600607 }
601608 }()
602609
@@ -668,7 +675,7 @@ func TestCallback_ConcurrentRealConnections(t *testing.T) {
668675 }
669676 defer func () {
670677 if err := listener .Close (); err != nil {
671- t . Logf ("failed to close listener: %v" , err )
678+ log . Printf ("failed to close listener: %v" , err )
672679 }
673680 }()
674681
@@ -691,7 +698,7 @@ func TestCallback_ConcurrentRealConnections(t *testing.T) {
691698 defer wg .Done ()
692699 defer func () {
693700 if err := conn .Close (); err != nil {
694- t . Logf ("failed to close connection: %v" , err )
701+ log . Printf ("failed to close connection: %v" , err )
695702 }
696703 }()
697704
@@ -700,7 +707,7 @@ func TestCallback_ConcurrentRealConnections(t *testing.T) {
700707 return
701708 }
702709 if err := conn .Close (); err != nil {
703- t . Logf ("failed to close original connection: %v" , err )
710+ log . Printf ("failed to close original connection: %v" , err )
704711 }
705712
706713 safeConns := & safeConns [Conn ]{}
@@ -731,7 +738,7 @@ func TestCallback_ConcurrentRealConnections(t *testing.T) {
731738 }
732739 defer func () {
733740 if err := clientConn .Close (); err != nil {
734- t . Logf ("failed to close client connection: %v" , err )
741+ log . Printf ("failed to close client connection: %v" , err )
735742 }
736743 }()
737744 time .Sleep (100 * time .Millisecond )
0 commit comments