From 4c4097f3fd6bbf998cae7adeca684e76503e0027 Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Wed, 31 Aug 2022 14:25:00 +0800 Subject: [PATCH 1/9] IPv4/single: new function: FreeRTOS_get_tx_base --- source/FreeRTOS_Sockets.c | 47 +++++++++++++++++++++++++++++++ source/include/FreeRTOS_Sockets.h | 7 +++++ 2 files changed, 54 insertions(+) diff --git a/source/FreeRTOS_Sockets.c b/source/FreeRTOS_Sockets.c index 48579124e6..f601c65883 100644 --- a/source/FreeRTOS_Sockets.c +++ b/source/FreeRTOS_Sockets.c @@ -3584,6 +3584,46 @@ void vSocketWakeUpUser( FreeRTOS_Socket_t * pxSocket ) * @brief Get a direct pointer to the circular transmit buffer. * * @param[in] xSocket: The socket owning the buffer. + * + * @return Address the circular transmit buffer if all checks pass. Or else, NULL + * is returned. + */ + uint8_t * FreeRTOS_get_tx_base( ConstSocket_t xSocket ) + { + uint8_t * pucReturn = NULL; + const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; + + /* Confirm that this is a TCP socket before dereferencing structure + * member pointers. */ + if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_TCP, pdFALSE ) == pdTRUE ) + { + StreamBuffer_t * pxBuffer = pxSocket->u.xTCP.txStream; + + if( pxBuffer == NULL ) + { + /* Create the outgoing stream only when it is needed */ + ( void ) prvTCPCreateStream( pxSocket, pdFALSE ); + pxBuffer = pxSocket->u.xTCP.txStream; + } + + if( pxBuffer != NULL ) + { + pucReturn = pxBuffer->ucArray; + } + } + + return pucReturn; + } +#endif /* if ( ipconfigUSE_TCP == 1 ) */ + +#if ( ipconfigUSE_TCP == 1 ) + +/** + * @brief Get a direct pointer to the circular transmit buffer at the + * current head position. New outgoing data can be written to + * this position. + * + * @param[in] xSocket: The socket owning the buffer. * @param[in] pxLength: This will contain the number of bytes that may be written. * * @return Head of the circular transmit buffer if all checks pass. Or else, NULL @@ -3604,6 +3644,13 @@ void vSocketWakeUpUser( FreeRTOS_Socket_t * pxSocket ) { pxBuffer = pxSocket->u.xTCP.txStream; + if( pxBuffer == NULL ) + { + /* Create the outgoing stream only when it is needed */ + ( void ) prvTCPCreateStream( pxSocket, pdFALSE ); + pxBuffer = pxSocket->u.xTCP.txStream; + } + if( pxBuffer != NULL ) { size_t uxSpace = uxStreamBufferGetSpace( pxBuffer ); diff --git a/source/include/FreeRTOS_Sockets.h b/source/include/FreeRTOS_Sockets.h index f3095268d1..4d716937d3 100644 --- a/source/include/FreeRTOS_Sockets.h +++ b/source/include/FreeRTOS_Sockets.h @@ -356,10 +356,17 @@ /* For advanced applications only: * Get a direct pointer to the circular transmit buffer. + */ + uint8_t * FreeRTOS_get_tx_base( ConstSocket_t xSocket ); + +/* For advanced applications only: + * Get a direct pointer to the circular transmit buffer at the + * head position. * '*pxLength' will contain the number of bytes that may be written. */ uint8_t * FreeRTOS_get_tx_head( ConstSocket_t xSocket, BaseType_t * pxLength ); + /* For the web server: borrow the circular Rx buffer for inspection * HTML driver wants to see if a sequence of 13/10/13/10 is available. */ const struct xSTREAM_BUFFER * FreeRTOS_get_rx_buf( ConstSocket_t xSocket ); From 3c0bfd5f09ddf8449b8397a79802cc4b2fd1ec28 Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Sun, 10 Sep 2023 15:05:41 +0800 Subject: [PATCH 2/9] Changed some code comments and repaired a typo. --- source/FreeRTOS_Sockets.c | 2 +- source/include/FreeRTOS_Sockets.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/source/FreeRTOS_Sockets.c b/source/FreeRTOS_Sockets.c index 418c8251a5..1f95840b2e 100644 --- a/source/FreeRTOS_Sockets.c +++ b/source/FreeRTOS_Sockets.c @@ -4425,7 +4425,7 @@ void vSocketWakeUpUser( FreeRTOS_Socket_t * pxSocket ) /* Confirm that this is a TCP socket before dereferencing structure * member pointers. */ - if( prvValidSocket( pxSocket, FR EERTOS_IPPROTO_TCP, pdFALSE ) == pdTRUE ) + if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_TCP, pdFALSE ) == pdTRUE ) { pxBuffer = pxSocket->u.xTCP.txStream; diff --git a/source/include/FreeRTOS_Sockets.h b/source/include/FreeRTOS_Sockets.h index 4a466cdd58..ea273526fc 100644 --- a/source/include/FreeRTOS_Sockets.h +++ b/source/include/FreeRTOS_Sockets.h @@ -368,18 +368,18 @@ BaseType_t FreeRTOS_connstatus( ConstSocket_t xSocket ); /* For advanced applications only: - * Get a direct pointer to the circular transmit buffer. + * Get a direct pointer to the beginning of the circular transmit buffer. + * In case the buffer was not yet created, it will be created in + * this call. */ uint8_t * FreeRTOS_get_tx_base( ConstSocket_t xSocket ); /* For advanced applications only: - * Get a direct pointer to the circular transmit buffer at the - * head position. + * Get a direct pointer to the circular transmit buffer. * '*pxLength' will contain the number of bytes that may be written. */ uint8_t * FreeRTOS_get_tx_head( ConstSocket_t xSocket, BaseType_t * pxLength ); - /* For the web server: borrow the circular Rx buffer for inspection * HTML driver wants to see if a sequence of 13/10/13/10 is available. */ const struct xSTREAM_BUFFER * FreeRTOS_get_rx_buf( ConstSocket_t xSocket ); From 7c012f1a59a21c2dc609bca9dec315dcb41255a0 Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Tue, 12 Sep 2023 12:25:25 +0800 Subject: [PATCH 3/9] Attempt to repair utest --- test/unit-test/CMakeLists.txt | 112 +++++++++--------- .../FreeRTOS_Sockets_TCP_API_utest.c | 19 +++ test/unit-test/FreeRTOS_Sockets/ut.cmake | 15 +++ 3 files changed, 90 insertions(+), 56 deletions(-) diff --git a/test/unit-test/CMakeLists.txt b/test/unit-test/CMakeLists.txt index 79e538bcc3..660ae9ffc3 100644 --- a/test/unit-test/CMakeLists.txt +++ b/test/unit-test/CMakeLists.txt @@ -259,62 +259,62 @@ include( ${MODULE_ROOT_DIR}/test/unit-test/cmock/create_test.cmake ) # Include unit-test build configuration -include( ${UNIT_TEST_DIR}/FreeRTOS_ARP/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_ARP_DataLenLessThanMinPacket/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_BitConfig/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_DHCP/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_DHCPv6/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_WIN/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_Tiny_TCP/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_DNS/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_ConfigNoCallback/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Cache/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Networking/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Callback/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Parser/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IP/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig1/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig2/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig3/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP_wo_assert/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils_DiffConfig/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Utils/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_Utils/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig1/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Sockets/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Timers/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_ND/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig1/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig2/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_Stream_Buffer/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_RA/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IP/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv4/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv6/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Reception/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP_DiffConfig/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv4/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv6/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission_IPv6/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6_ConfigLowTCPMSS/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_ConfigDriverCheckChecksum/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_IPv6/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_Routing/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigV4Only/ut.cmake ) -include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigCompatibleWithSingle/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_ARP/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_ARP_DataLenLessThanMinPacket/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_BitConfig/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_DHCP/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_DHCPv6/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_WIN/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_Tiny_TCP/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_ConfigNoCallback/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Cache/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Networking/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Callback/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Parser/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IP/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig1/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig2/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig3/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP_wo_assert/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils_DiffConfig/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Utils/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_Utils/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig1/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Sockets/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Timers/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_ND/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig1/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig2/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_Stream_Buffer/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_RA/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IP/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv4/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv6/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Reception/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP_DiffConfig/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv4/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv6/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission_IPv6/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6_ConfigLowTCPMSS/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_ConfigDriverCheckChecksum/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_IPv6/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_Routing/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigV4Only/ut.cmake ) +# include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigCompatibleWithSingle/ut.cmake ) # ==================================== Coverage Analysis configuration ======================================== # Add a target for running coverage on tests. diff --git a/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c b/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c index 8a87630435..1e46f90c5c 100644 --- a/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c +++ b/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c @@ -784,8 +784,12 @@ void test_FreeRTOS_get_tx_head_InvalidParams( void ) uint8_t * pucReturn; FreeRTOS_Socket_t xSocket; BaseType_t xLength; + size_t uxLength = 128; + size_t uxMallocSize; + StreamBuffer_t * pxBuffer; memset( &xSocket, 0, sizeof( xSocket ) ); + xSocket.u.xTCP.uxTxStreamSize = uxLength; /* Invalid Protocol. */ pucReturn = FreeRTOS_get_tx_head( &xSocket, &xLength ); @@ -795,6 +799,21 @@ void test_FreeRTOS_get_tx_head_InvalidParams( void ) pucReturn = FreeRTOS_get_tx_head( NULL, &xLength ); TEST_ASSERT_EQUAL( NULL, pucReturn ); +// FAIL: Memory Mismatch. Byte 0 Expected 0xB0 Was 0xE0. +// Function pvPortMalloc Argument xSize. Function called with unexpected argument value. + + /* Add an extra 4 (or 8) bytes. */ + uxLength += sizeof( size_t ); + + /* And make the length a multiple of sizeof( size_t ). */ + uxLength &= ~( sizeof( size_t ) - 1U ); + + uxMallocSize = ( sizeof( *pxBuffer ) + uxLength ) - sizeof( pxBuffer->ucArray ); + + pvPortMalloc_ExpectAndReturn( uxMallocSize, NULL ); + + vTCPStateChange_Expect( &xSocket, eCLOSE_WAIT ); + /* NULL stream. */ xSocket.ucProtocol = FREERTOS_IPPROTO_TCP; pucReturn = FreeRTOS_get_tx_head( &xSocket, &xLength ); diff --git a/test/unit-test/FreeRTOS_Sockets/ut.cmake b/test/unit-test/FreeRTOS_Sockets/ut.cmake index 8803623e47..241d32af76 100644 --- a/test/unit-test/FreeRTOS_Sockets/ut.cmake +++ b/test/unit-test/FreeRTOS_Sockets/ut.cmake @@ -19,6 +19,7 @@ list(APPEND mock_list "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_IPv4_Sockets.h" "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_IPv6_Sockets.h" "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_Routing.h" + "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_Sockets.h" "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_Stream_Buffer.h" "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_TCP_WIN.h" "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_IP_Private.h" @@ -26,6 +27,20 @@ list(APPEND mock_list "${MODULE_ROOT_DIR}/test/unit-test/${project_name}/Sockets_list_macros.h" ) +# Without 'FreeRTOS_Sockets.h': +# +# 1 - FreeRTOS_Sockets_GenericAPI_utest (Not Run) +# 2 - FreeRTOS_Sockets_TCP_API_utest (Not Run) +# 3 - FreeRTOS_Sockets_UDP_API_utest (Not Run) +# 4 - FreeRTOS_Sockets_privates_utest (Not Run) +# +# With 'FreeRTOS_Sockets.h': +# +# 3 - FreeRTOS_Sockets_UDP_API_utest (Failed) +# +# FAIL:Function FreeRTOS_recvfrom. Called more times than expected. +# FAIL:Function FreeRTOS_sendto. Called more times than expected. + set(mock_include_list "") # list the directories your mocks need list(APPEND mock_include_list From 9b9ca20ee2b84e5f7f3cca88ed7509d2f384594c Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Fri, 15 Sep 2023 18:12:55 +0800 Subject: [PATCH 4/9] Changes after CI checks --- source/FreeRTOS_Sockets.c | 6 +- source/include/FreeRTOS_Sockets.h | 2 +- test/unit-test/CMakeLists.txt | 112 +++++++++--------- .../FreeRTOS_Sockets_TCP_API_utest.c | 20 ++-- 4 files changed, 70 insertions(+), 70 deletions(-) diff --git a/source/FreeRTOS_Sockets.c b/source/FreeRTOS_Sockets.c index 1f95840b2e..5d4576064b 100644 --- a/source/FreeRTOS_Sockets.c +++ b/source/FreeRTOS_Sockets.c @@ -4371,7 +4371,7 @@ void vSocketWakeUpUser( FreeRTOS_Socket_t * pxSocket ) * @return Address the first byte in the circular transmit buffer if all checks pass. * Or else, NULL is returned. */ - uint8_t * FreeRTOS_get_tx_base( ConstSocket_t xSocket ) + uint8_t * FreeRTOS_get_tx_base( Socket_t xSocket ) { uint8_t * pucReturn = NULL; const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; @@ -4385,7 +4385,7 @@ void vSocketWakeUpUser( FreeRTOS_Socket_t * pxSocket ) /* If the TX buffer hasn't been created yet, * and if no malloc error has occurred on this socket yet. */ if( ( pxBuffer == NULL ) && - ( pxSocket->u.xTCP.bits.bMallocError == pdFALSE ) ) + ( pxSocket->u.xTCP.bits.bMallocError == pdFALSE_UNSIGNED ) ) { /* Create the outgoing stream only when it is needed */ ( void ) prvTCPCreateStream( pxSocket, pdFALSE ); @@ -4432,7 +4432,7 @@ void vSocketWakeUpUser( FreeRTOS_Socket_t * pxSocket ) /* If the TX buffer hasn't been created yet, * and if no malloc error has occurred on this socket yet. */ if( ( pxBuffer == NULL ) && - ( pxSocket->u.xTCP.bits.bMallocError == pdFALSE ) ) + ( pxSocket->u.xTCP.bits.bMallocError == pdFALSE_UNSIGNED ) ) { /* Create the outgoing stream only when it is needed */ ( void ) prvTCPCreateStream( pxSocket, pdFALSE ); diff --git a/source/include/FreeRTOS_Sockets.h b/source/include/FreeRTOS_Sockets.h index ea273526fc..d85c1735a9 100644 --- a/source/include/FreeRTOS_Sockets.h +++ b/source/include/FreeRTOS_Sockets.h @@ -372,7 +372,7 @@ * In case the buffer was not yet created, it will be created in * this call. */ - uint8_t * FreeRTOS_get_tx_base( ConstSocket_t xSocket ); + uint8_t * FreeRTOS_get_tx_base( Socket_t xSocket ); /* For advanced applications only: * Get a direct pointer to the circular transmit buffer. diff --git a/test/unit-test/CMakeLists.txt b/test/unit-test/CMakeLists.txt index 660ae9ffc3..8654529036 100644 --- a/test/unit-test/CMakeLists.txt +++ b/test/unit-test/CMakeLists.txt @@ -259,62 +259,62 @@ include( ${MODULE_ROOT_DIR}/test/unit-test/cmock/create_test.cmake ) # Include unit-test build configuration -# include( ${UNIT_TEST_DIR}/FreeRTOS_ARP/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_ARP_DataLenLessThanMinPacket/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_BitConfig/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_DHCP/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_DHCPv6/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_WIN/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_Tiny_TCP/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_ConfigNoCallback/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Cache/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Networking/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Callback/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Parser/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IP/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig1/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig2/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig3/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP_wo_assert/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils_DiffConfig/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Utils/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_Utils/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig1/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Sockets/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Timers/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_ND/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig1/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig2/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_Stream_Buffer/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_RA/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IP/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv4/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv6/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Reception/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP_DiffConfig/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv4/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv6/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission_IPv6/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6_ConfigLowTCPMSS/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_ConfigDriverCheckChecksum/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_IPv6/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_Routing/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigV4Only/ut.cmake ) -# include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigCompatibleWithSingle/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_ARP/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_ARP_DataLenLessThanMinPacket/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_BitConfig/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_DHCP/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_DHCPv6/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_WIN/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Tiny_TCP/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_DNS/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_ConfigNoCallback/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Cache/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Networking/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Callback/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Parser/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IP/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig1/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig2/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig3/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP_wo_assert/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils_DiffConfig/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Utils/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_Utils/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig1/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Sockets/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Timers/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_ND/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig1/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig2/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Stream_Buffer/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_RA/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IP/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv4/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv6/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Reception/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP_DiffConfig/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv4/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv6/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission_IPv6/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6_ConfigLowTCPMSS/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_ConfigDriverCheckChecksum/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_IPv6/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Routing/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigV4Only/ut.cmake ) + include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigCompatibleWithSingle/ut.cmake ) # ==================================== Coverage Analysis configuration ======================================== # Add a target for running coverage on tests. diff --git a/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c b/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c index 1e46f90c5c..f90461d5d9 100644 --- a/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c +++ b/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c @@ -784,9 +784,9 @@ void test_FreeRTOS_get_tx_head_InvalidParams( void ) uint8_t * pucReturn; FreeRTOS_Socket_t xSocket; BaseType_t xLength; - size_t uxLength = 128; - size_t uxMallocSize; - StreamBuffer_t * pxBuffer; + size_t uxLength = 128; + size_t uxMallocSize; + StreamBuffer_t * pxBuffer; memset( &xSocket, 0, sizeof( xSocket ) ); xSocket.u.xTCP.uxTxStreamSize = uxLength; @@ -799,16 +799,16 @@ void test_FreeRTOS_get_tx_head_InvalidParams( void ) pucReturn = FreeRTOS_get_tx_head( NULL, &xLength ); TEST_ASSERT_EQUAL( NULL, pucReturn ); -// FAIL: Memory Mismatch. Byte 0 Expected 0xB0 Was 0xE0. -// Function pvPortMalloc Argument xSize. Function called with unexpected argument value. +/* FAIL: Memory Mismatch. Byte 0 Expected 0xB0 Was 0xE0. */ +/* Function pvPortMalloc Argument xSize. Function called with unexpected argument value. */ - /* Add an extra 4 (or 8) bytes. */ - uxLength += sizeof( size_t ); + /* Add an extra 4 (or 8) bytes. */ + uxLength += sizeof( size_t ); - /* And make the length a multiple of sizeof( size_t ). */ - uxLength &= ~( sizeof( size_t ) - 1U ); + /* And make the length a multiple of sizeof( size_t ). */ + uxLength &= ~( sizeof( size_t ) - 1U ); - uxMallocSize = ( sizeof( *pxBuffer ) + uxLength ) - sizeof( pxBuffer->ucArray ); + uxMallocSize = ( sizeof( *pxBuffer ) + uxLength ) - sizeof( pxBuffer->ucArray ); pvPortMalloc_ExpectAndReturn( uxMallocSize, NULL ); From 83bbc7ab1c145d7726e0a709f354f3b24a65e22c Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Tue, 19 Sep 2023 13:52:41 +0800 Subject: [PATCH 5/9] utest: Added tests for get_tx_base --- test/unit-test/CMakeLists.txt | 112 +++++++++--------- .../FreeRTOS_Sockets_TCP_API_utest.c | 63 ++++++++++ 2 files changed, 119 insertions(+), 56 deletions(-) diff --git a/test/unit-test/CMakeLists.txt b/test/unit-test/CMakeLists.txt index 8654529036..f6f773d8fe 100644 --- a/test/unit-test/CMakeLists.txt +++ b/test/unit-test/CMakeLists.txt @@ -259,62 +259,62 @@ include( ${MODULE_ROOT_DIR}/test/unit-test/cmock/create_test.cmake ) # Include unit-test build configuration - include( ${UNIT_TEST_DIR}/FreeRTOS_ARP/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_ARP_DataLenLessThanMinPacket/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_BitConfig/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_DHCP/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_DHCPv6/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_WIN/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Tiny_TCP/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_DNS/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_ConfigNoCallback/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Cache/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Networking/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Callback/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Parser/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IP/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig1/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig2/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig3/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP_wo_assert/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils_DiffConfig/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Utils/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_Utils/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig1/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Sockets/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Timers/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_ND/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig1/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig2/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Stream_Buffer/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_RA/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IP/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv4/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv6/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Reception/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP_DiffConfig/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv4/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv6/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission_IPv6/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6_ConfigLowTCPMSS/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_ConfigDriverCheckChecksum/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_IPv6/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Routing/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigV4Only/ut.cmake ) - include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigCompatibleWithSingle/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_ARP/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_ARP_DataLenLessThanMinPacket/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_BitConfig/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_DHCP/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_DHCPv6/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_WIN/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_Tiny_TCP/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_ConfigNoCallback/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Cache/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Networking/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Callback/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Parser/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IP/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig1/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig2/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig3/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP_wo_assert/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils_DiffConfig/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Utils/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_Utils/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig1/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Sockets/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Timers/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_ND/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig1/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig2/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_Stream_Buffer/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_RA/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IP/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv4/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv6/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Reception/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP_DiffConfig/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv4/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv6/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission_IPv6/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6_ConfigLowTCPMSS/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_ConfigDriverCheckChecksum/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_IPv6/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_Routing/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigV4Only/ut.cmake ) +#include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigCompatibleWithSingle/ut.cmake ) # ==================================== Coverage Analysis configuration ======================================== # Add a target for running coverage on tests. diff --git a/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c b/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c index 5daf9fde4d..bc34f52354 100644 --- a/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c +++ b/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c @@ -1809,3 +1809,66 @@ void test_prvTCPSendLoop_NullBuffer() TEST_ASSERT_EQUAL( uxDataLength, xReturn ); } + +/** + * @brief Invalid parameters passed to the function. + */ +void test_FreeRTOS_get_tx_base_InvalidParams( void ) +{ + uint8_t * pucReturn; + FreeRTOS_Socket_t xSocket; + BaseType_t xLength; + size_t uxLength = 128; + size_t uxMallocSize; + StreamBuffer_t * pxBuffer; + + memset( &xSocket, 0, sizeof( xSocket ) ); + xSocket.u.xTCP.uxTxStreamSize = uxLength; + + /* Invalid Protocol. */ + pucReturn = FreeRTOS_get_tx_base( &xSocket ); + TEST_ASSERT_EQUAL( NULL, pucReturn ); + + /* NULL socket. */ + pucReturn = FreeRTOS_get_tx_base( NULL ); + TEST_ASSERT_EQUAL( NULL, pucReturn ); + +/* FAIL: Memory Mismatch. Byte 0 Expected 0xB0 Was 0xE0. */ +/* Function pvPortMalloc Argument xSize. Function called with unexpected argument value. */ + + /* Add an extra 4 (or 8) bytes. */ + uxLength += sizeof( size_t ); + + /* And make the length a multiple of sizeof( size_t ). */ + uxLength &= ~( sizeof( size_t ) - 1U ); + + uxMallocSize = ( sizeof( *pxBuffer ) + uxLength ) - sizeof( pxBuffer->ucArray ); + + pvPortMalloc_ExpectAndReturn( uxMallocSize, NULL ); + + vTCPStateChange_Expect( &xSocket, eCLOSE_WAIT ); + + /* NULL stream. */ + xSocket.ucProtocol = FREERTOS_IPPROTO_TCP; + pucReturn = FreeRTOS_get_tx_base( &xSocket ); + TEST_ASSERT_EQUAL( NULL, pucReturn ); +} + +/** + * @brief All fields of the socket are NULL. + */ +void test_FreeRTOS_get_tx_base_AllNULL( void ) +{ + uint8_t * pucReturn; + FreeRTOS_Socket_t xSocket; + uint8_t ucStream[ ipconfigTCP_MSS ]; + + memset( &xSocket, 0, sizeof( xSocket ) ); + memset( ucStream, 0, ipconfigTCP_MSS ); + + xSocket.ucProtocol = FREERTOS_IPPROTO_TCP; + xSocket.u.xTCP.txStream = ( StreamBuffer_t * ) ucStream; + + pucReturn = FreeRTOS_get_tx_base( &xSocket ); + TEST_ASSERT_EQUAL_PTR( ( ( StreamBuffer_t * ) ucStream )->ucArray, pucReturn ); +} From 1b7777982775f393767e5e0ee51f34d9b2679c3c Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Sat, 23 Sep 2023 15:37:33 +0800 Subject: [PATCH 6/9] Do not use const socket type in FreeRTOS_get_tx_base() --- source/FreeRTOS_Sockets.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/FreeRTOS_Sockets.c b/source/FreeRTOS_Sockets.c index 8acbdf744e..85b6efe312 100644 --- a/source/FreeRTOS_Sockets.c +++ b/source/FreeRTOS_Sockets.c @@ -4374,7 +4374,7 @@ void vSocketWakeUpUser( FreeRTOS_Socket_t * pxSocket ) uint8_t * FreeRTOS_get_tx_base( Socket_t xSocket ) { uint8_t * pucReturn = NULL; - const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; + FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; /* Confirm that this is a TCP socket before dereferencing structure * member pointers. */ From 58685c7d370080672ae756966dd2abe82e6b5011 Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Tue, 26 Sep 2023 16:18:39 +0800 Subject: [PATCH 7/9] Removed comments from cmake file ut --- test/unit-test/CMakeLists.txt | 112 +++++++++++++++++----------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/test/unit-test/CMakeLists.txt b/test/unit-test/CMakeLists.txt index f6f773d8fe..79e538bcc3 100644 --- a/test/unit-test/CMakeLists.txt +++ b/test/unit-test/CMakeLists.txt @@ -259,62 +259,62 @@ include( ${MODULE_ROOT_DIR}/test/unit-test/cmock/create_test.cmake ) # Include unit-test build configuration -#include( ${UNIT_TEST_DIR}/FreeRTOS_ARP/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_ARP_DataLenLessThanMinPacket/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_BitConfig/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_DHCP/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_DHCPv6/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_WIN/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_Tiny_TCP/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_ConfigNoCallback/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Cache/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Networking/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Callback/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Parser/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IP/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig1/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig2/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig3/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP_wo_assert/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils_DiffConfig/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Utils/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_Utils/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig1/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Sockets/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Timers/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_ND/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig1/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig2/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_Stream_Buffer/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_RA/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IP/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv4/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv6/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Reception/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP_DiffConfig/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv4/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv6/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission_IPv6/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6_ConfigLowTCPMSS/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_ConfigDriverCheckChecksum/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_IPv6/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_Routing/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigV4Only/ut.cmake ) -#include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigCompatibleWithSingle/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_ARP/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_ARP_DataLenLessThanMinPacket/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_BitConfig/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_DHCP/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_DHCPv6/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_WIN/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_Tiny_TCP/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_DNS/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_ConfigNoCallback/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Cache/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Networking/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Callback/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_DNS_Parser/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IP/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig1/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig2/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IP_DiffConfig3/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_ICMP_wo_assert/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Utils_DiffConfig/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Utils/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_Utils/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_DiffConfig1/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IPv4_Sockets/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IP_Timers/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_ND/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig1/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_DiffConfig2/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_Stream_Buffer/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_RA/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IP/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv4/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_UDP_IPv6/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Reception/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_IP_DiffConfig/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv4/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_State_Handling_IPv6/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Transmission_IPv6/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_TCP_Utils_IPv6_ConfigLowTCPMSS/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_IPv6_ConfigDriverCheckChecksum/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_Sockets_IPv6/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_Routing/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigV4Only/ut.cmake ) +include( ${UNIT_TEST_DIR}/FreeRTOS_Routing_ConfigCompatibleWithSingle/ut.cmake ) # ==================================== Coverage Analysis configuration ======================================== # Add a target for running coverage on tests. From a4cbb13c5249497a40ad8bf3f184c60dde42030a Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Wed, 27 Sep 2023 16:14:06 +0800 Subject: [PATCH 8/9] Repaired UT --- .../FreeRTOS_Sockets_TCP_API_utest.c | 19 ------------------- test/unit-test/FreeRTOS_Sockets/ut.cmake | 1 - 2 files changed, 20 deletions(-) diff --git a/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c b/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c index 247429888a..bd88e0cd12 100644 --- a/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c +++ b/test/unit-test/FreeRTOS_Sockets/FreeRTOS_Sockets_TCP_API_utest.c @@ -784,12 +784,8 @@ void test_FreeRTOS_get_tx_head_InvalidParams( void ) uint8_t * pucReturn; FreeRTOS_Socket_t xSocket; BaseType_t xLength; - size_t uxLength = 128; - size_t uxMallocSize; - StreamBuffer_t * pxBuffer; memset( &xSocket, 0, sizeof( xSocket ) ); - xSocket.u.xTCP.uxTxStreamSize = uxLength; /* Invalid Protocol. */ pucReturn = FreeRTOS_get_tx_head( &xSocket, &xLength ); @@ -814,21 +810,6 @@ void test_FreeRTOS_get_tx_head_NoStream( void ) memset( &xSocket, 0, sizeof( xSocket ) ); memset( ucStream, 0, ipconfigTCP_MSS ); -/* FAIL: Memory Mismatch. Byte 0 Expected 0xB0 Was 0xE0. */ -/* Function pvPortMalloc Argument xSize. Function called with unexpected argument value. */ - - /* Add an extra 4 (or 8) bytes. */ - uxLength += sizeof( size_t ); - - /* And make the length a multiple of sizeof( size_t ). */ - uxLength &= ~( sizeof( size_t ) - 1U ); - - uxMallocSize = ( sizeof( *pxBuffer ) + uxLength ) - sizeof( pxBuffer->ucArray ); - - pvPortMalloc_ExpectAndReturn( uxMallocSize, NULL ); - - vTCPStateChange_Expect( &xSocket, eCLOSE_WAIT ); - /* NULL stream. */ xSocket.ucProtocol = FREERTOS_IPPROTO_TCP; pvPortMalloc_ExpectAnyArgsAndReturn( ucStream ); diff --git a/test/unit-test/FreeRTOS_Sockets/ut.cmake b/test/unit-test/FreeRTOS_Sockets/ut.cmake index 241d32af76..30a39aa6ba 100644 --- a/test/unit-test/FreeRTOS_Sockets/ut.cmake +++ b/test/unit-test/FreeRTOS_Sockets/ut.cmake @@ -19,7 +19,6 @@ list(APPEND mock_list "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_IPv4_Sockets.h" "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_IPv6_Sockets.h" "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_Routing.h" - "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_Sockets.h" "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_Stream_Buffer.h" "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_TCP_WIN.h" "${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_IP_Private.h" From 103d7b3b5dd462b3394b2dff69151daa7c668e6e Mon Sep 17 00:00:00 2001 From: Hein Tibosch Date: Fri, 29 Sep 2023 15:02:57 +0800 Subject: [PATCH 9/9] Removed a nested if/endif couple --- source/include/FreeRTOS_Sockets.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/source/include/FreeRTOS_Sockets.h b/source/include/FreeRTOS_Sockets.h index 960b9f2b90..6ae8fdc868 100644 --- a/source/include/FreeRTOS_Sockets.h +++ b/source/include/FreeRTOS_Sockets.h @@ -325,15 +325,12 @@ BaseType_t FreeRTOS_shutdown( Socket_t xSocket, BaseType_t xHow ); - #if ( ipconfigUSE_TCP == 1 ) - /* Release a TCP payload buffer that was obtained by * calling FreeRTOS_recv() with the FREERTOS_ZERO_COPY flag, * and a pointer to a void pointer. */ - BaseType_t FreeRTOS_ReleaseTCPPayloadBuffer( Socket_t xSocket, - void const * pvBuffer, - BaseType_t xByteCount ); - #endif /* ( ipconfigUSE_TCP == 1 ) */ + BaseType_t FreeRTOS_ReleaseTCPPayloadBuffer( Socket_t xSocket, + void const * pvBuffer, + BaseType_t xByteCount ); /* Returns the number of bytes available in the Rx buffer. */ BaseType_t FreeRTOS_rx_size( ConstSocket_t xSocket );