Skip to content

Commit b96fdda

Browse files
committed
chore: make unit test more stable
1 parent 129d68a commit b96fdda

File tree

2 files changed

+28
-37
lines changed

2 files changed

+28
-37
lines changed

connection_test.go

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -499,18 +499,15 @@ func TestConnDetach(t *testing.T) {
499499
func TestParallelShortConnection(t *testing.T) {
500500
ln, err := createTestListener("tcp", ":12345")
501501
MustNil(t, err)
502-
defer ln.Close()
503-
504502
var received int64
505503
el, err := NewEventLoop(func(ctx context.Context, connection Connection) error {
506504
data, err := connection.Reader().Next(connection.Reader().Len())
507-
if err != nil {
508-
return err
509-
}
505+
Assert(t, err == nil || errors.Is(err, ErrEOF))
510506
atomic.AddInt64(&received, int64(len(data)))
511-
//t.Logf("conn[%s] received: %d, active: %v", connection.RemoteAddr(), len(data), connection.IsActive())
507+
t.Logf("conn[%s] received: %d, active: %v", connection.RemoteAddr(), len(data), connection.IsActive())
512508
return nil
513509
})
510+
defer el.Shutdown(context.Background())
514511
go func() {
515512
el.Serve(ln)
516513
}()
@@ -536,10 +533,11 @@ func TestParallelShortConnection(t *testing.T) {
536533
}
537534
wg.Wait()
538535

539-
for atomic.LoadInt64(&received) < int64(totalSize) {
540-
t.Logf("received: %d, except: %d", atomic.LoadInt64(&received), totalSize)
536+
start := time.Now()
537+
for atomic.LoadInt64(&received) < int64(totalSize) && time.Now().Sub(start) < time.Second {
541538
time.Sleep(time.Millisecond * 100)
542539
}
540+
Equal(t, atomic.LoadInt64(&received), int64(totalSize))
543541
}
544542

545543
func TestConnectionServerClose(t *testing.T) {
@@ -643,8 +641,6 @@ func TestConnectionServerClose(t *testing.T) {
643641
func TestConnectionDailTimeoutAndClose(t *testing.T) {
644642
ln, err := createTestListener("tcp", ":12345")
645643
MustNil(t, err)
646-
defer ln.Close()
647-
648644
el, err := NewEventLoop(
649645
func(ctx context.Context, connection Connection) error {
650646
_, err = connection.Reader().Next(connection.Reader().Len())
@@ -668,7 +664,7 @@ func TestConnectionDailTimeoutAndClose(t *testing.T) {
668664
go func() {
669665
defer wg.Done()
670666
conn, err := DialConnection("tcp", ":12345", time.Nanosecond)
671-
Assert(t, err == nil || strings.Contains(err.Error(), "i/o timeout"))
667+
Assert(t, err == nil || strings.Contains(err.Error(), "i/o timeout"), err)
672668
_ = conn
673669
}()
674670
}

mux/shard_queue_test.go

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,35 +19,38 @@ package mux
1919

2020
import (
2121
"net"
22+
"sync"
2223
"testing"
2324
"time"
2425

2526
"github.com/cloudwego/netpoll"
2627
)
2728

2829
func TestShardQueue(t *testing.T) {
29-
var svrConn net.Conn
3030
accepted := make(chan struct{})
3131

3232
network, address := "tcp", ":18888"
3333
ln, err := net.Listen("tcp", ":18888")
3434
MustNil(t, err)
3535
stop := make(chan int, 1)
36-
defer close(stop)
36+
count, pkgsize := 16, 11
37+
var wg sync.WaitGroup
38+
wg.Add(1)
3739
go func() {
38-
var err error
39-
for {
40-
select {
41-
case <-stop:
42-
err = ln.Close()
43-
MustNil(t, err)
44-
return
45-
default:
46-
}
47-
svrConn, err = ln.Accept()
48-
MustNil(t, err)
49-
accepted <- struct{}{}
50-
}
40+
defer wg.Done()
41+
svrConn, err := ln.Accept()
42+
MustNil(t, err)
43+
accepted <- struct{}{}
44+
45+
total := count * pkgsize
46+
recv := make([]byte, total)
47+
rn, err := svrConn.Read(recv)
48+
MustNil(t, err)
49+
Equal(t, rn, total)
50+
51+
<-stop
52+
err = ln.Close()
53+
MustNil(t, err)
5154
}()
5255

5356
conn, err := netpoll.DialConnection(network, address, time.Second)
@@ -56,8 +59,7 @@ func TestShardQueue(t *testing.T) {
5659

5760
// test
5861
queue := NewShardQueue(4, conn)
59-
count, pkgsize := 16, 11
60-
for i := 0; i < int(count); i++ {
62+
for i := 0; i < count; i++ {
6163
var getter WriterGetter = func() (buf netpoll.Writer, isNil bool) {
6264
buf = netpoll.NewLinkBuffer(pkgsize)
6365
buf.Malloc(pkgsize)
@@ -68,14 +70,7 @@ func TestShardQueue(t *testing.T) {
6870

6971
err = queue.Close()
7072
MustNil(t, err)
71-
total := count * pkgsize
72-
recv := make([]byte, total)
73-
rn, err := svrConn.Read(recv)
74-
MustNil(t, err)
75-
Equal(t, rn, total)
76-
}
7773

78-
// TODO: need mock flush
79-
func BenchmarkShardQueue(b *testing.B) {
80-
b.Skip()
74+
close(stop)
75+
wg.Wait()
8176
}

0 commit comments

Comments
 (0)