Files
quic-go/internal/wire/frame_test.go
Jannis Seemann c2e784aaf2 wire: optimize parsing logic for STREAM, DATAGRAM and ACK frames (#5227)
ParseOtherFrames-16       148ns ± 4%     150ns ± 3%     ~     (p=0.223 n=8+8)
ParseAckFrame-16          302ns ± 2%     298ns ± 3%     ~     (p=0.246 n=8+8)
ParseStreamFrame-16       262ns ± 3%     213ns ± 2%  -18.61%  (p=0.000 n=8+8)
ParseDatagramFrame-16     561ns ± 5%     547ns ± 4%     ~     (p=0.105 n=8+8)
2025-07-20 13:14:38 +02:00

43 lines
1023 B
Go

package wire
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestProbingFrames(t *testing.T) {
testCases := map[Frame]bool{
&AckFrame{}: false,
&ConnectionCloseFrame{}: false,
&DataBlockedFrame{}: false,
&PingFrame{}: false,
&ResetStreamFrame{}: false,
&StreamFrame{}: false,
&DatagramFrame{}: false,
&MaxDataFrame{}: false,
&MaxStreamDataFrame{}: false,
&StopSendingFrame{}: false,
&PathChallengeFrame{}: true,
&PathResponseFrame{}: true,
&NewConnectionIDFrame{}: true,
}
for f, expected := range testCases {
require.Equal(t, expected, IsProbingFrame(f))
}
}
func TestIsProbingFrameType(t *testing.T) {
tests := map[FrameType]bool{
FrameTypePathChallenge: true,
FrameTypePathResponse: true,
FrameTypeNewConnectionID: true,
FrameType(0x01): false,
FrameType(0xFF): false,
}
for ft, expected := range tests {
require.Equal(t, expected, IsProbingFrameType(ft))
}
}