Skip to content

Commit

Permalink
upd test
Browse files Browse the repository at this point in the history
  • Loading branch information
xtaci committed Sep 8, 2016
1 parent eacccc2 commit 88f1e7a
Showing 1 changed file with 92 additions and 3 deletions.
95 changes: 92 additions & 3 deletions session_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ func handleConnection(conn net.Conn) {
}
}(stream)
} else {
log.Println(err)
return
}
}
Expand Down Expand Up @@ -110,9 +109,8 @@ func TestSpeed(t *testing.T) {
}
}
}
println("total recv:", nrecv)
stream.Close()
fmt.Println("time for 16MB rtt", time.Since(start))
t.Log("time for 16MB rtt", time.Since(start))
wg.Done()
}()
msg := make([]byte, 8192)
Expand Down Expand Up @@ -480,3 +478,94 @@ func BenchmarkAcceptClose(b *testing.B) {
}
}
}
func BenchmarkConnSmux(b *testing.B) {
cs, ss, err := getSmuxStreamPair()
if err != nil {
b.Fatal(err)
}
defer cs.Close()
defer ss.Close()
bench(b, cs, ss)
}

/*
func BenchmarkConnTCP(b *testing.B) {
cs, ss, err := getTCPConnectionPair()
if err != nil {
b.Fatal(err)
}
defer cs.Close()
defer ss.Close()
bench(b, cs, ss)
}
*/

func getSmuxStreamPair() (*Stream, *Stream, error) {
c1, c2, err := getTCPConnectionPair()
if err != nil {
return nil, nil, err
}

s, err := Server(c2, nil)
if err != nil {
return nil, nil, err
}
c, err := Client(c1, nil)
if err != nil {
return nil, nil, err
}
var ss *Stream
done := make(chan error)
go func() {
var rerr error
ss, rerr = s.AcceptStream()
done <- rerr
close(done)
}()
cs, err := c.OpenStream()
if err != nil {
return nil, nil, err
}
err = <-done
if err != nil {
return nil, nil, err
}

return cs, ss, nil
}

func getTCPConnectionPair() (net.Conn, net.Conn, error) {
lst, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
return nil, nil, err
}

var conn0 net.Conn
var err0 error
done := make(chan struct{})
go func() {
conn0, err0 = lst.Accept()
close(done)
}()

conn1, err := net.Dial("tcp", lst.Addr().String())
if err != nil {
return nil, nil, err
}

<-done
if err0 != nil {
return nil, nil, err0
}
return conn0, conn1, nil
}

func bench(b *testing.B, rd io.Reader, wr io.Writer) {
buf := make([]byte, 128*1024)
b.SetBytes(128 * 1024)
b.ResetTimer()
for i := 0; i < b.N; i++ {
wr.Write(buf)
rd.Read(buf)
}
}

0 comments on commit 88f1e7a

Please sign in to comment.