]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Add benchmark for receiving handshakes with large skey counts
authorMatt Joiner <anacrolix@gmail.com>
Mon, 4 Jan 2021 00:33:46 +0000 (11:33 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Mon, 4 Jan 2021 00:33:46 +0000 (11:33 +1100)
mse/mse_test.go

index ff2cfc547e27f3411cb714b3aeab5fa373417481..b10ca8f92a4b980bba4fa41d2c4a1757ed453858 100644 (file)
@@ -253,3 +253,28 @@ func BenchmarkPipeRC4(t *testing.B) {
                }
        }
 }
+
+func BenchmarkSkeysReceive(b *testing.B) {
+       var skeys [][]byte
+       for range iter.N(100000) {
+               skeys = append(skeys, make([]byte, 20))
+       }
+       fillRand(b, skeys...)
+       initSkey := skeys[len(skeys)/2]
+       //c := qt.New(b)
+       b.ReportAllocs()
+       b.ResetTimer()
+       for range iter.N(b.N) {
+               initiator, receiver := net.Pipe()
+               go func() {
+                       _, _, err := InitiateHandshake(initiator, initSkey, nil, AllSupportedCrypto)
+                       if err != nil {
+                               panic(err)
+                       }
+               }()
+               res := ReceiveHandshakeEx(receiver, sliceIter(skeys), DefaultCryptoSelector)
+               if res.error != nil {
+                       panic(res.error)
+               }
+       }
+}