@@ -283,9 +283,38 @@ func TestDecodeErrorsV5(t *testing.T) {
283
283
b = make ([]byte , 63 )
284
284
net .nodeA .expectDecodeErr (t , errInvalidHeader , b )
285
285
286
- // TODO some more tests would be nice :)
287
- // - check invalid authdata sizes
288
- // - check invalid handshake data sizes
286
+ t .Run ("invalid-handshake-datasize" , func (t * testing.T ) {
287
+ requiredNumber := 108
288
+
289
+ testDataFile := filepath .Join ("testdata" , "v5.1-ping-handshake" + ".txt" )
290
+ enc := hexFile (testDataFile )
291
+ //delete some byte from handshake to make it invalid
292
+ enc = enc [:len (enc )- requiredNumber ]
293
+ net .nodeB .expectDecodeErr (t , errMsgTooShort , enc )
294
+ })
295
+
296
+ t .Run ("invalid-auth-datasize" , func (t * testing.T ) {
297
+ testPacket := []byte {}
298
+ testDataFiles := []string {"v5.1-whoareyou" , "v5.1-ping-handshake" }
299
+ for counter , name := range testDataFiles {
300
+ file := filepath .Join ("testdata" , name + ".txt" )
301
+ enc := hexFile (file )
302
+ if counter == 0 {
303
+ //make whoareyou header
304
+ testPacket = enc [:sizeofStaticPacketData - 1 ]
305
+ testPacket = append (testPacket , 255 )
306
+ }
307
+ if counter == 1 {
308
+ //append invalid auth size
309
+ testPacket = append (testPacket , enc [sizeofStaticPacketData :]... )
310
+ }
311
+ }
312
+
313
+ wantErr := "invalid auth size"
314
+ if _ , err := net .nodeB .decode (testPacket ); strings .HasSuffix (err .Error (), wantErr ) {
315
+ t .Fatal (fmt .Errorf ("(%s) got err %q, want %q" , net .nodeB .ln .ID ().TerminalString (), err , wantErr ))
316
+ }
317
+ })
289
318
}
290
319
291
320
// This test checks that all test vectors can be decoded.
0 commit comments