Add p9 and unet benchmarks.

PiperOrigin-RevId: 253122166
This commit is contained in:
Jamie Liu
2019-06-13 15:53:43 -07:00
committed by Shentubot
parent 4fdd560b76
commit 0c8603084d
2 changed files with 87 additions and 0 deletions
+45
View File
@@ -179,6 +179,51 @@ func TestSendClosed(t *testing.T) {
}
}
func BenchmarkSendRecv(b *testing.B) {
server, client, err := unet.SocketPair(false)
if err != nil {
b.Fatalf("socketpair got err %v expected nil", err)
}
defer server.Close()
defer client.Close()
// Exchange Rflush messages since these contain no data and therefore incur
// no additional marshaling overhead.
go func() {
for i := 0; i < b.N; i++ {
tag, m, err := recv(server, maximumLength, msgRegistry.get)
if err != nil {
b.Fatalf("recv got err %v expected nil", err)
}
if tag != Tag(1) {
b.Fatalf("got tag %v expected 1", tag)
}
if _, ok := m.(*Rflush); !ok {
b.Fatalf("got message %T expected *Rflush", m)
}
if err := send(server, Tag(2), &Rflush{}); err != nil {
b.Fatalf("send got err %v expected nil", err)
}
}
}()
b.ResetTimer()
for i := 0; i < b.N; i++ {
if err := send(client, Tag(1), &Rflush{}); err != nil {
b.Fatalf("send got err %v expected nil", err)
}
tag, m, err := recv(client, maximumLength, msgRegistry.get)
if err != nil {
b.Fatalf("recv got err %v expected nil", err)
}
if tag != Tag(2) {
b.Fatalf("got tag %v expected 2", tag)
}
if _, ok := m.(*Rflush); !ok {
b.Fatalf("got message %v expected *Rflush", m)
}
}
}
func init() {
msgRegistry.register(MsgTypeBadDecode, func() message { return &badDecode{} })
}
+42
View File
@@ -691,3 +691,45 @@ func TestControlMessage(t *testing.T) {
}
}
}
func benchmarkSendRecv(b *testing.B, packet bool) {
server, client, err := SocketPair(packet)
if err != nil {
b.Fatalf("SocketPair: got %v, wanted nil", err)
}
defer server.Close()
defer client.Close()
go func() {
buf := make([]byte, 1)
for i := 0; i < b.N; i++ {
n, err := server.Read(buf)
if n != 1 || err != nil {
b.Fatalf("server.Read: got (%d, %v), wanted (1, nil)", n, err)
}
n, err = server.Write(buf)
if n != 1 || err != nil {
b.Fatalf("server.Write: got (%d, %v), wanted (1, nil)", n, err)
}
}
}()
buf := make([]byte, 1)
b.ResetTimer()
for i := 0; i < b.N; i++ {
n, err := client.Write(buf)
if n != 1 || err != nil {
b.Fatalf("client.Write: got (%d, %v), wanted (1, nil)", n, err)
}
n, err = client.Read(buf)
if n != 1 || err != nil {
b.Fatalf("client.Read: got (%d, %v), wanted (1, nil)", n, err)
}
}
}
func BenchmarkSendRecvStream(b *testing.B) {
benchmarkSendRecv(b, false)
}
func BenchmarkSendRecvPacket(b *testing.B) {
benchmarkSendRecv(b, true)
}