]> git.feebdaed.xyz Git - 0xmirror/quic-go.git/commitdiff
handshake: add a benchmark for token decoding (#5460)
authorMarten Seemann <martenseemann@gmail.com>
Tue, 25 Nov 2025 04:36:51 +0000 (12:36 +0800)
committerGitHub <noreply@github.com>
Tue, 25 Nov 2025 04:36:51 +0000 (05:36 +0100)
internal/handshake/token_generator_test.go

index c09917bd6e1ed0f1fccb6c22119f0d5b256d5031..bb58fd108abeb50259a53a5b4084baeb1f543343 100644 (file)
@@ -118,3 +118,23 @@ func TestTokenGeneratorNonUDPAddr(t *testing.T) {
        require.False(t, token.ValidateRemoteAddr(&net.TCPAddr{IP: net.IPv4(192, 168, 13, 37), Port: 1338}))
        require.WithinDuration(t, time.Now(), token.SentTime, 100*time.Millisecond)
 }
+
+func BenchmarkTokenGeneratorDecodeToken(b *testing.B) {
+       b.ReportAllocs()
+
+       var key TokenProtectorKey
+       _, err := rand.Read(key[:])
+       require.NoError(b, err)
+       tokenGen := NewTokenGenerator(key)
+       addr := &net.UDPAddr{IP: net.IPv4(192, 168, 0, 1), Port: 1337}
+       connID1 := protocol.ParseConnectionID([]byte{0xde, 0xad, 0xbe, 0xef})
+       connID2 := protocol.ParseConnectionID([]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10})
+       tokenEnc, err := tokenGen.NewRetryToken(addr, connID1, connID2)
+       require.NoError(b, err)
+
+       for b.Loop() {
+               if _, err := tokenGen.DecodeToken(tokenEnc); err != nil {
+                       b.Fatal(err)
+               }
+       }
+}