Skip to content

Commit 0ccb10a

Browse files
committed
Add UT coverage for vReleaseSinglePacketFromUDPSocket
1 parent 8beaa01 commit 0ccb10a

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

test/unit-test/FreeRTOS_IP_Utils/FreeRTOS_IP_Utils_stubs.c

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@
4242

4343
/* =========================== EXTERN VARIABLES =========================== */
4444

45+
#define RELEASE_UDP_SOCKET_NETWORK_BUFFER_ADDRESS ((uint8_t *) 0xABCD1234)
46+
#define RELEASE_UDP_SOCKET_NETWORK_BUFFER_SIZE 256
47+
4548
NetworkInterface_t xInterfaces[ 1 ];
4649

4750
BaseType_t xCallEventHook;
@@ -145,3 +148,43 @@ BaseType_t prvChecksumIPv4Checks_InvalidLength( uint8_t * pucEthernetBuffer,
145148

146149
return xReturn;
147150
}
151+
152+
static int32_t FreeRTOS_recvfrom_StubHappyPath( const ConstSocket_t xSocket,
153+
void * pvBuffer,
154+
size_t uxBufferLength,
155+
BaseType_t xFlags,
156+
struct freertos_sockaddr * pxSourceAddress,
157+
socklen_t * pxSourceAddressLength,
158+
int callbacks )
159+
{
160+
configASSERT(uxBufferLength == 0);
161+
configASSERT(xFlags == FREERTOS_ZERO_COPY);
162+
configASSERT(pxSourceAddress == NULL);
163+
configASSERT(pxSourceAddressLength == NULL);
164+
165+
(void) callbacks;
166+
167+
*( ( uint8_t ** ) pvBuffer ) = RELEASE_UDP_SOCKET_NETWORK_BUFFER_ADDRESS;
168+
169+
return RELEASE_UDP_SOCKET_NETWORK_BUFFER_SIZE;
170+
}
171+
172+
static int32_t FreeRTOS_recvfrom_StubNonHappyPath( const ConstSocket_t xSocket,
173+
void * pvBuffer,
174+
size_t uxBufferLength,
175+
BaseType_t xFlags,
176+
struct freertos_sockaddr * pxSourceAddress,
177+
socklen_t * pxSourceAddressLength,
178+
int callbacks )
179+
{
180+
configASSERT(uxBufferLength == 0);
181+
configASSERT(xFlags == FREERTOS_ZERO_COPY);
182+
configASSERT(pxSourceAddress == NULL);
183+
configASSERT(pxSourceAddressLength == NULL);
184+
185+
(void) callbacks;
186+
187+
*( ( uint8_t ** ) pvBuffer ) = NULL;
188+
189+
return -pdFREERTOS_ERRNO_EAGAIN;
190+
}

test/unit-test/FreeRTOS_IP_Utils/FreeRTOS_IP_Utils_utest.c

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
#include "mock_FreeRTOS_DHCP.h"
5252
#include "mock_FreeRTOS_DHCPv6.h"
5353
#include "mock_FreeRTOS_Routing.h"
54+
#include "mock_FreeRTOS_Sockets.h"
5455
#include "mock_FreeRTOS_IPv4_Utils.h"
5556
#include "mock_FreeRTOS_IPv6_Utils.h"
5657
#include "mock_NetworkBufferManagement.h"
@@ -3332,3 +3333,37 @@ void test_eGetDHCPState( void )
33323333
TEST_ASSERT_EQUAL( i, eReturn );
33333334
}
33343335
}
3336+
3337+
/**
3338+
* @brief Test vReleaseSinglePacketFromUDPSocket
3339+
* To validate if vReleaseSinglePacketFromUDPSocket
3340+
* releases the buffer in happy path case.
3341+
*/
3342+
void test_vReleaseSinglePacketFromUDPSocket_HappyPath( void )
3343+
{
3344+
3345+
Socket_t xSocket;
3346+
3347+
/* Get a stub. */
3348+
FreeRTOS_recvfrom_Stub( FreeRTOS_recvfrom_StubHappyPath );
3349+
3350+
FreeRTOS_ReleaseUDPPayloadBuffer_Expect(RELEASE_UDP_SOCKET_NETWORK_BUFFER_ADDRESS);
3351+
3352+
vReleaseSinglePacketFromUDPSocket(xSocket);
3353+
3354+
}
3355+
3356+
/**
3357+
* @brief Test vReleaseSinglePacketFromUDPSocket
3358+
* To validate if vReleaseSinglePacketFromUDPSocket does not try to
3359+
* release the buffer if receive from fails.
3360+
*/
3361+
void test_vReleaseSinglePacketFromUDPSocket_NonHappyPath( void )
3362+
{
3363+
Socket_t xSocket;
3364+
/* Get a stub. */
3365+
FreeRTOS_recvfrom_Stub( FreeRTOS_recvfrom_StubNonHappyPath );
3366+
3367+
vReleaseSinglePacketFromUDPSocket(xSocket);
3368+
3369+
}

test/unit-test/FreeRTOS_IP_Utils/ut.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ list(APPEND mock_list
2121
"${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_ND.h"
2222
"${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_DHCP.h"
2323
"${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_DHCPv6.h"
24+
"${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_Sockets.h"
2425
"${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_Routing.h"
2526
"${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_IPv4_Utils.h"
2627
"${CMAKE_BINARY_DIR}/Annexed_TCP/FreeRTOS_IPv6_Utils.h"

0 commit comments

Comments
 (0)