@@ -10,6 +10,7 @@ import (
1010 "encoding/pem"
1111 "math/big"
1212 "testing"
13+ "time"
1314
1415 "github.com/google/uuid"
1516 "github.com/lucas-clemente/quic-go"
@@ -23,11 +24,11 @@ var (
2324
2425func TestSuffixThenRemoveSessionID (t * testing.T ) {
2526 msg := []byte (t .Name ())
26- msgWithID , err := SuffixSessionID (testSessionID , msg )
27+ msgWithID , err := suffixSessionID (testSessionID , msg )
2728 require .NoError (t , err )
2829 require .Len (t , msgWithID , len (msg )+ sessionIDLen )
2930
30- sessionID , msgWithoutID , err := ExtractSessionID (msgWithID )
31+ sessionID , msgWithoutID , err := extractSessionID (msgWithID )
3132 require .NoError (t , err )
3233 require .Equal (t , msg , msgWithoutID )
3334 require .Equal (t , testSessionID , sessionID )
@@ -36,26 +37,27 @@ func TestSuffixThenRemoveSessionID(t *testing.T) {
3637func TestRemoveSessionIDError (t * testing.T ) {
3738 // message is too short to contain session ID
3839 msg := []byte ("test" )
39- _ , _ , err := ExtractSessionID (msg )
40+ _ , _ , err := extractSessionID (msg )
4041 require .Error (t , err )
4142}
4243
4344func TestSuffixSessionIDError (t * testing.T ) {
4445 msg := make ([]byte , MaxDatagramFrameSize - sessionIDLen )
45- _ , err := SuffixSessionID (testSessionID , msg )
46+ _ , err := suffixSessionID (testSessionID , msg )
4647 require .NoError (t , err )
4748
4849 msg = make ([]byte , MaxDatagramFrameSize - sessionIDLen + 1 )
49- _ , err = SuffixSessionID (testSessionID , msg )
50+ _ , err = suffixSessionID (testSessionID , msg )
5051 require .Error (t , err )
5152}
5253
5354func TestMaxDatagramPayload (t * testing.T ) {
54- payload := make ([]byte , MaxDatagramFrameSize - sessionIDLen )
55+ payload := make ([]byte , maxDatagramPayloadSize )
5556
5657 quicConfig := & quic.Config {
57- KeepAlive : true ,
58- EnableDatagrams : true ,
58+ KeepAlive : true ,
59+ EnableDatagrams : true ,
60+ MaxDatagramFrameSize : MaxDatagramFrameSize ,
5961 }
6062 quicListener := newQUICListener (t , quicConfig )
6163 defer quicListener .Close ()
@@ -65,13 +67,19 @@ func TestMaxDatagramPayload(t *testing.T) {
6567 errGroup .Go (func () error {
6668 // Accept quic connection
6769 quicSession , err := quicListener .Accept (ctx )
68- require .NoError (t , err )
70+ if err != nil {
71+ return err
72+ }
6973
7074 muxer , err := NewDatagramMuxer (quicSession )
71- require .NoError (t , err )
75+ if err != nil {
76+ return err
77+ }
7278
7379 sessionID , receivedPayload , err := muxer .ReceiveFrom ()
74- require .NoError (t , err )
80+ if err != nil {
81+ return err
82+ }
7583 require .Equal (t , testSessionID , sessionID )
7684 require .True (t , bytes .Equal (payload , receivedPayload ))
7785
@@ -89,13 +97,19 @@ func TestMaxDatagramPayload(t *testing.T) {
8997 require .NoError (t , err )
9098
9199 muxer , err := NewDatagramMuxer (quicSession )
92- require .NoError (t , err )
100+ if err != nil {
101+ return err
102+ }
93103
104+ // Wait a few milliseconds for MTU discovery to take place
105+ time .Sleep (time .Millisecond * 100 )
94106 err = muxer .SendTo (testSessionID , payload )
95- require .NoError (t , err )
107+ if err != nil {
108+ return err
109+ }
96110
97111 // Payload larger than transport MTU, should return an error
98- largePayload := append ( payload , byte ( 1 ) )
112+ largePayload := make ([] byte , MaxDatagramFrameSize )
99113 err = muxer .SendTo (testSessionID , largePayload )
100114 require .Error (t , err )
101115
0 commit comments