@@ -126,11 +126,10 @@ public void testDecode() throws IOException {
126126 }
127127
128128 public void testDecodePreHeaderSizeVariableInt () throws IOException {
129- // TODO: Can delete test on 9.0
130129 Compression .Scheme compressionScheme = randomFrom (Compression .Scheme .DEFLATE , Compression .Scheme .DEFLATE , null );
131130 String action = "test-request" ;
132131 long requestId = randomNonNegativeLong ();
133- final TransportVersion preHeaderVariableInt = TransportHandshaker .EARLIEST_HANDSHAKE_VERSION ;
132+ final TransportVersion preHeaderVariableInt = TransportHandshaker .V7_HANDSHAKE_VERSION ;
134133 final String contentValue = randomAlphaOfLength (100 );
135134 // 8.0 is only compatible with handshakes on a pre-variable int version
136135 final OutboundMessage message = new OutboundMessage .Request (
@@ -189,7 +188,7 @@ public void testDecodeHandshakeV7Compatibility() throws IOException {
189188 final String headerKey = randomAlphaOfLength (10 );
190189 final String headerValue = randomAlphaOfLength (20 );
191190 threadContext .putHeader (headerKey , headerValue );
192- TransportVersion handshakeCompat = TransportHandshaker .EARLIEST_HANDSHAKE_VERSION ;
191+ TransportVersion handshakeCompat = TransportHandshaker .V7_HANDSHAKE_VERSION ;
193192 OutboundMessage message = new OutboundMessage .Request (
194193 threadContext ,
195194 new TestRequest (randomAlphaOfLength (100 )),
@@ -225,8 +224,8 @@ public void testDecodeHandshakeV7Compatibility() throws IOException {
225224 }
226225
227226 public void testDecodeHandshakeV8Compatibility () throws IOException {
228- doHandshakeCompatibilityTest (TransportHandshaker .REQUEST_HANDSHAKE_VERSION , null );
229- doHandshakeCompatibilityTest (TransportHandshaker .REQUEST_HANDSHAKE_VERSION , Compression .Scheme .DEFLATE );
227+ doHandshakeCompatibilityTest (TransportHandshaker .V8_HANDSHAKE_VERSION , null );
228+ doHandshakeCompatibilityTest (TransportHandshaker .V8_HANDSHAKE_VERSION , Compression .Scheme .DEFLATE );
230229 }
231230
232231 public void testDecodeHandshakeV9Compatibility () throws IOException {
@@ -286,13 +285,18 @@ public void testClientChannelTypeFailsDecodingRequests() throws Exception {
286285 }
287286 }
288287 // a request
288+ final var isHandshake = randomBoolean ();
289+ final var version = isHandshake
290+ ? randomFrom (TransportHandshaker .ALLOWED_HANDSHAKE_VERSIONS )
291+ : TransportVersionUtils .randomCompatibleVersion (random ());
292+ logger .info ("--> version = {}" , version );
289293 OutboundMessage message = new OutboundMessage .Request (
290294 threadContext ,
291295 new TestRequest (randomAlphaOfLength (100 )),
292- TransportHandshaker . REQUEST_HANDSHAKE_VERSION ,
296+ version ,
293297 action ,
294298 requestId ,
295- randomBoolean () ,
299+ isHandshake ,
296300 randomFrom (Compression .Scheme .DEFLATE , Compression .Scheme .LZ4 , null )
297301 );
298302
@@ -309,9 +313,9 @@ public void testClientChannelTypeFailsDecodingRequests() throws Exception {
309313 try (InboundDecoder decoder = new InboundDecoder (recycler , randomFrom (ChannelType .SERVER , ChannelType .MIX ))) {
310314 final ArrayList <Object > fragments = new ArrayList <>();
311315 int bytesConsumed = decoder .decode (wrapAsReleasable (bytes ), fragments ::add );
312- int totalHeaderSize = TcpHeader .headerSize (TransportVersion . current ()) + bytes . getInt (
313- TcpHeader .VARIABLE_HEADER_SIZE_POSITION
314- );
316+ int totalHeaderSize = TcpHeader .headerSize (version ) + ( version . onOrAfter ( TransportVersions . V_7_6_0 )
317+ ? bytes . getInt ( TcpHeader .VARIABLE_HEADER_SIZE_POSITION )
318+ : 0 );
315319 assertEquals (totalHeaderSize , bytesConsumed );
316320 final Header header = (Header ) fragments .get (0 );
317321 assertEquals (requestId , header .getRequestId ());
@@ -331,12 +335,16 @@ public void testServerChannelTypeFailsDecodingResponses() throws Exception {
331335 }
332336 }
333337 // a response
338+ final var isHandshake = randomBoolean ();
339+ final var version = isHandshake
340+ ? randomFrom (TransportHandshaker .ALLOWED_HANDSHAKE_VERSIONS )
341+ : TransportVersionUtils .randomCompatibleVersion (random ());
334342 OutboundMessage message = new OutboundMessage .Response (
335343 threadContext ,
336344 new TestResponse (randomAlphaOfLength (100 )),
337- TransportHandshaker . REQUEST_HANDSHAKE_VERSION ,
345+ version ,
338346 requestId ,
339- randomBoolean () ,
347+ isHandshake ,
340348 randomFrom (Compression .Scheme .DEFLATE , Compression .Scheme .LZ4 , null )
341349 );
342350
@@ -351,9 +359,9 @@ public void testServerChannelTypeFailsDecodingResponses() throws Exception {
351359 try (InboundDecoder decoder = new InboundDecoder (recycler , randomFrom (ChannelType .CLIENT , ChannelType .MIX ))) {
352360 final ArrayList <Object > fragments = new ArrayList <>();
353361 int bytesConsumed = decoder .decode (wrapAsReleasable (bytes ), fragments ::add );
354- int totalHeaderSize = TcpHeader .headerSize (TransportVersion . current ()) + bytes . getInt (
355- TcpHeader .VARIABLE_HEADER_SIZE_POSITION
356- );
362+ int totalHeaderSize = TcpHeader .headerSize (version ) + ( version . onOrAfter ( TransportVersions . V_7_6_0 )
363+ ? bytes . getInt ( TcpHeader .VARIABLE_HEADER_SIZE_POSITION )
364+ : 0 );
357365 assertEquals (totalHeaderSize , bytesConsumed );
358366 final Header header = (Header ) fragments .get (0 );
359367 assertEquals (requestId , header .getRequestId ());
@@ -449,7 +457,7 @@ public void testCompressedDecodeHandshakeCompatibility() throws IOException {
449457 final String headerKey = randomAlphaOfLength (10 );
450458 final String headerValue = randomAlphaOfLength (20 );
451459 threadContext .putHeader (headerKey , headerValue );
452- TransportVersion handshakeCompat = TransportHandshaker .EARLIEST_HANDSHAKE_VERSION ;
460+ TransportVersion handshakeCompat = TransportHandshaker .V7_HANDSHAKE_VERSION ;
453461 OutboundMessage message = new OutboundMessage .Request (
454462 threadContext ,
455463 new TestRequest (randomAlphaOfLength (100 )),
0 commit comments