diff --git a/connstat2/connstat2_test.go b/connstat2/connstat2_test.go index 49a70d5..12c302a 100644 --- a/connstat2/connstat2_test.go +++ b/connstat2/connstat2_test.go @@ -4,34 +4,89 @@ import ( "github.com/q191201771/nezha/assert" "net" "testing" + "time" ) -func startMockServer(t assert.TestingT) { - l, err := net.Listen("tcp", ":10027") - assert.Equal(t, nil , err) +type MockServer struct { + l net.Listener +} + +func (ms *MockServer)start() (err error) { + ms.l, err = net.Listen("tcp", ":10027") + if err != nil { + return err + } go func() { - //for { - conn, err := l.Accept() - assert.Equal(t, nil , err) + for { + conn, err := ms.l.Accept() + if err != nil { + //fmt.Println(err) + return + } go func() { buf := make([]byte, 8) for { _, err = conn.Read(buf) - assert.Equal(t, nil , err) + if err != nil { + //fmt.Println(err) + return + } } }() - //} + } }() + return } -func Benchmark(b *testing.B) { - startMockServer(b) - //time.Sleep(time.Duration(1) * time.Second) +func (ms *MockServer)stop() { + ms.l.Close() +} + +var n = 1000 - conn, err := net.Dial("tcp", ":10027") - assert.Equal(b, nil , err) +func BenchmarkRaw(b *testing.B) { + var ms MockServer + ms.start() buf := make([]byte, 8) + + var conns []net.Conn + + for i := 0; i < n; i++ { + conn, err := net.Dial("tcp", ":10027") + assert.Equal(b, nil , err) + conns = append(conns, conn) + } + + b.ResetTimer() for i := 0; i < b.N; i++ { - conn.Write(buf) + for j := 0; j < n; j++ { + conns[j].Write(buf) + } } -} \ No newline at end of file + + ms.stop() +} + +func BenchmarkDeadline(b *testing.B) { + var ms MockServer + ms.start() + buf := make([]byte, 8) + + var conns []net.Conn + + for i := 0; i < n; i++ { + conn, err := net.Dial("tcp", ":10027") + assert.Equal(b, nil , err) + conns = append(conns, conn) + } + + b.ResetTimer() + for i := 0; i < b.N; i++ { + for j := 0; j < n; j++ { + conns[j].SetWriteDeadline(time.Now().Add(1 * time.Second)) + conns[j].Write(buf) + } + } + + ms.stop() +} diff --git a/log/log_test.go b/log/log_test.go index 7abe5f2..bd0bffd 100644 --- a/log/log_test.go +++ b/log/log_test.go @@ -1,8 +1,8 @@ package log import ( - "testing" "github.com/q191201771/nezha/assert" + "testing" ) func TestLogger(t *testing.T) { diff --git a/test.sh b/test.sh index 4f3d016..c8b2de7 100755 --- a/test.sh +++ b/test.sh @@ -13,3 +13,4 @@ done # go test -race -coverprofile=profile.out -covermode=atomic && go tool cover -html=profile.out -o coverage.html && open coverage.html # go test -test.bench=".*" +# go test -bench=. -benchtime=10s