@@ -821,6 +821,47 @@ void test_prvHandleEstablished_FINNotSentRXComplete( void )
821821 TEST_ASSERT_EQUAL ( 40 , xSendLength );
822822}
823823
824+ /**
825+ * @brief Data left for receiving when receiving TCP packet with FIN/ACK.
826+ */
827+ void test_prvHandleEstablished_FINNotSentRXNotCompleteNotExpectedSeq ( void )
828+ {
829+ BaseType_t xSendLength = 0 ;
830+
831+ pxSocket = & xSocket ;
832+
833+ pxNetworkBuffer = & xNetworkBuffer ;
834+ pxNetworkBuffer -> pucEthernetBuffer = ucEthernetBuffer ;
835+
836+ /* Map the buffer onto the ProtocolHeader_t struct for easy access to the fields. */
837+ ProtocolHeaders_t * pxProtocolHeaders = ( ( ProtocolHeaders_t * )
838+ & ( pxNetworkBuffer -> pucEthernetBuffer [ ipSIZE_OF_ETH_HEADER + ipSIZE_OF_IPv4_HEADER ] ) );
839+ TCPHeader_t * pxTCPHeader = & pxProtocolHeaders -> xTCPHeader ;
840+ TCPWindow_t * pxTCPWindow = & pxSocket -> u .xTCP .xTCPWindow ;
841+
842+ ulCalled = 0 ;
843+ pxTCPHeader -> ucTCPFlags = tcpTCP_FLAG_FIN | tcpTCP_FLAG_ACK ;
844+ pxTCPHeader -> ulSequenceNumber = FreeRTOS_htonl ( 1502 );
845+ pxTCPHeader -> usWindow = 1000 ;
846+ pxSocket -> u .xTCP .txStream = ( StreamBuffer_t * ) 0x12345678 ;
847+ pxSocket -> u .xTCP .pxHandleSent = NULL ;
848+ pxSocket -> u .xTCP .bits .bFinSent = pdFALSE ;
849+ pxTCPWindow -> rx .ulCurrentSequenceNumber = 1500 ;
850+
851+ uxIPHeaderSizeSocket_IgnoreAndReturn ( ipSIZE_OF_IPv4_HEADER );
852+ ulTCPWindowTxAck_ExpectAnyArgsAndReturn ( 0 );
853+ prvTCPAddTxData_ExpectAnyArgs ();
854+ xTCPWindowRxEmpty_ExpectAnyArgsAndReturn ( pdFALSE );
855+ xTCPWindowTxDone_ExpectAnyArgsAndReturn ( pdTRUE );
856+ prvTCPPrepareSend_ExpectAnyArgsAndReturn ( 0 );
857+
858+ xSendLength = prvHandleEstablished ( pxSocket ,
859+ & pxNetworkBuffer ,
860+ 0 ,
861+ 0 );
862+ TEST_ASSERT_EQUAL ( 0 , xSendLength );
863+ }
864+
824865/**
825866 * @brief Data left for receiving when receiving TCP packet with FIN/ACK.
826867 */
@@ -846,7 +887,7 @@ void test_prvHandleEstablished_FINNotSentRXNotComplete( void )
846887 pxSocket -> u .xTCP .txStream = ( StreamBuffer_t * ) 0x12345678 ;
847888 pxSocket -> u .xTCP .pxHandleSent = NULL ;
848889 pxSocket -> u .xTCP .bits .bFinSent = pdFALSE ;
849- pxTCPWindow -> rx .ulCurrentSequenceNumber = 2501 ;
890+ pxTCPWindow -> rx .ulCurrentSequenceNumber = 1500 ;
850891
851892 uxIPHeaderSizeSocket_IgnoreAndReturn ( ipSIZE_OF_IPv4_HEADER );
852893 ulTCPWindowTxAck_ExpectAnyArgsAndReturn ( 0 );
0 commit comments