mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Add p9 and unet benchmarks.
PiperOrigin-RevId: 253122166
This commit is contained in:
@@ -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{} })
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user