LibJuno 1.0.4
LibJuno is a lightweight C11 library designed specifically for embedded systems.
Loading...
Searching...
No Matches
test_udp_module.cpp File Reference

Google Test suite for the UDP module (JunoUdp_Init and vtable dispatch). More...

#include <gtest/gtest.h>
#include <string.h>
#include <stdint.h>
#include "udp_api.h"
#include "juno/status.h"
#include "juno/module.h"
Include dependency graph for test_udp_module.cpp:

Data Structures

class  UdpModuleTest
 

Functions

static JUNO_STATUS_T TestSend (JUNO_UDP_ROOT_T *ptRoot, const UDP_THREAD_MSG_T *ptMsg)
 
static JUNO_STATUS_T TestReceive (JUNO_UDP_ROOT_T *ptRoot, UDP_THREAD_MSG_T *ptMsg)
 
static JUNO_STATUS_T TestFree (JUNO_UDP_ROOT_T *ptRoot)
 
static void TestFailureHandler (JUNO_STATUS_T tStatus, const char *pcMsg, void *pvUserData)
 
static void ResetAllDoubles (void)
 
 TEST_F (UdpModuleTest, InitHappyPathWiresVtable)
 
 TEST_F (UdpModuleTest, InitNullRootReturnsNullptrError)
 
 TEST_F (UdpModuleTest, InitNullVtableReturnsNullptrError)
 
 TEST_F (UdpModuleTest, InitStoresFailureHandlerAndUserData)
 
 TEST_F (UdpModuleTest, InitNullHandlerAndNullUserDataArePermitted)
 
 TEST_F (UdpModuleTest, RootHoldsPtApiField)
 
 TEST_F (UdpModuleTest, RootHoldsFailureHandlerField)
 
 TEST_F (UdpModuleTest, AllApiOperationsReturnStatusT)
 
 TEST_F (UdpModuleTest, FailureHandlerFiredViaJunoFailRoot)
 
 TEST_F (UdpModuleTest, FailureHandlerReceivesCorrectUserData)
 
 TEST_F (UdpModuleTest, FailureHandlerNotInvokedOnSuccess)
 
 TEST_F (UdpModuleTest, SendDispatchesViaVtable)
 
 TEST_F (UdpModuleTest, SendInjectedFailureReturnsExactStatus)
 
 TEST_F (UdpModuleTest, ReceiveDispatchesViaVtableAndPopulatesOutput)
 
 TEST_F (UdpModuleTest, ReceiveInjectedFailureReturnsExactStatus)
 
 TEST_F (UdpModuleTest, ReceiveTimeoutReturnsTimeoutError)
 
 TEST_F (UdpModuleTest, ReceiveTimeoutStatusCodeIsDistinctFromSuccess)
 
 TEST_F (UdpModuleTest, FreeDispatchesViaVtable)
 
 TEST_F (UdpModuleTest, FreeInjectedFailureReturnsExactStatus)
 
 TEST_F (UdpModuleTest, MessageStructSizeIs76Bytes)
 

Variables

struct { 
 
   int   iSendCallCount 
 
   int   iReceiveCallCount 
 
   int   iFreeCalled 
 
   bool   bFailSend 
 
   bool   bFailReceive 
 
   bool   bFailFree 
 
   JUNO_STATUS_T   tSendStatus 
 
   JUNO_STATUS_T   tReceiveStatus 
 
   JUNO_STATUS_T   tFreeStatus 
 
   const UDP_THREAD_MSG_T *   ptLastSendMsg 
 
   UDP_THREAD_MSG_T *   ptLastReceiveMsg 
 
   UDP_THREAD_MSG_T   tReceivePayload 
 
s_tFakeState 
 
static const JUNO_UDP_API_T s_tTestApi
 
struct { 
 
   int   iCallCount 
 
   JUNO_STATUS_T   tLastStatus 
 
   void *   pvLastUserData 
 
s_tFhDouble 
 

Detailed Description

Google Test suite for the UDP module (JunoUdp_Init and vtable dispatch).

Covers requirements: REQ-UDP-001, REQ-UDP-003, REQ-UDP-006, REQ-UDP-007, REQ-UDP-008, REQ-UDP-009, REQ-UDP-012, REQ-UDP-013, REQ-UDP-016.

Test doubles use a vtable-injected fake JUNO_UDP_API_T. No POSIX socket API is called from this file. No dynamic allocation is used anywhere in this file.

Function Documentation

◆ ResetAllDoubles()

static void ResetAllDoubles ( void  )
static

◆ TEST_F() [1/20]

TEST_F ( UdpModuleTest  ,
AllApiOperationsReturnStatusT   
)

◆ TEST_F() [2/20]

TEST_F ( UdpModuleTest  ,
FailureHandlerFiredViaJunoFailRoot   
)

◆ TEST_F() [3/20]

TEST_F ( UdpModuleTest  ,
FailureHandlerNotInvokedOnSuccess   
)

◆ TEST_F() [4/20]

TEST_F ( UdpModuleTest  ,
FailureHandlerReceivesCorrectUserData   
)

◆ TEST_F() [5/20]

TEST_F ( UdpModuleTest  ,
FreeDispatchesViaVtable   
)

◆ TEST_F() [6/20]

TEST_F ( UdpModuleTest  ,
FreeInjectedFailureReturnsExactStatus   
)

◆ TEST_F() [7/20]

TEST_F ( UdpModuleTest  ,
InitHappyPathWiresVtable   
)

◆ TEST_F() [8/20]

TEST_F ( UdpModuleTest  ,
InitNullHandlerAndNullUserDataArePermitted   
)

◆ TEST_F() [9/20]

TEST_F ( UdpModuleTest  ,
InitNullRootReturnsNullptrError   
)

◆ TEST_F() [10/20]

TEST_F ( UdpModuleTest  ,
InitNullVtableReturnsNullptrError   
)

◆ TEST_F() [11/20]

TEST_F ( UdpModuleTest  ,
InitStoresFailureHandlerAndUserData   
)

◆ TEST_F() [12/20]

TEST_F ( UdpModuleTest  ,
MessageStructSizeIs76Bytes   
)

◆ TEST_F() [13/20]

TEST_F ( UdpModuleTest  ,
ReceiveDispatchesViaVtableAndPopulatesOutput   
)

◆ TEST_F() [14/20]

TEST_F ( UdpModuleTest  ,
ReceiveInjectedFailureReturnsExactStatus   
)

◆ TEST_F() [15/20]

TEST_F ( UdpModuleTest  ,
ReceiveTimeoutReturnsTimeoutError   
)

◆ TEST_F() [16/20]

TEST_F ( UdpModuleTest  ,
ReceiveTimeoutStatusCodeIsDistinctFromSuccess   
)

◆ TEST_F() [17/20]

TEST_F ( UdpModuleTest  ,
RootHoldsFailureHandlerField   
)

◆ TEST_F() [18/20]

TEST_F ( UdpModuleTest  ,
RootHoldsPtApiField   
)

◆ TEST_F() [19/20]

TEST_F ( UdpModuleTest  ,
SendDispatchesViaVtable   
)

◆ TEST_F() [20/20]

TEST_F ( UdpModuleTest  ,
SendInjectedFailureReturnsExactStatus   
)

◆ TestFailureHandler()

static void TestFailureHandler ( JUNO_STATUS_T  tStatus,
const char *  pcMsg,
void *  pvUserData 
)
static

◆ TestFree()

static JUNO_STATUS_T TestFree ( JUNO_UDP_ROOT_T ptRoot)
static

◆ TestReceive()

static JUNO_STATUS_T TestReceive ( JUNO_UDP_ROOT_T ptRoot,
UDP_THREAD_MSG_T ptMsg 
)
static

◆ TestSend()

static JUNO_STATUS_T TestSend ( JUNO_UDP_ROOT_T ptRoot,
const UDP_THREAD_MSG_T ptMsg 
)
static

Variable Documentation

◆ bFailFree

bool bFailFree

◆ bFailReceive

bool bFailReceive

◆ bFailSend

bool bFailSend

◆ iCallCount

int iCallCount

◆ iFreeCalled

int iFreeCalled

◆ iReceiveCallCount

int iReceiveCallCount

◆ iSendCallCount

int iSendCallCount

◆ ptLastReceiveMsg

UDP_THREAD_MSG_T* ptLastReceiveMsg

◆ ptLastSendMsg

const UDP_THREAD_MSG_T* ptLastSendMsg

◆ pvLastUserData

void* pvLastUserData

◆ [struct]

struct { ... } s_tFakeState

◆ [struct]

struct { ... } s_tFhDouble

◆ s_tTestApi

const JUNO_UDP_API_T s_tTestApi
static
Initial value:
= {
}
static JUNO_STATUS_T TestReceive(JUNO_UDP_ROOT_T *ptRoot, UDP_THREAD_MSG_T *ptMsg)
Definition test_udp_module.cpp:86
static JUNO_STATUS_T TestSend(JUNO_UDP_ROOT_T *ptRoot, const UDP_THREAD_MSG_T *ptMsg)
Definition test_udp_module.cpp:71
static JUNO_STATUS_T TestFree(JUNO_UDP_ROOT_T *ptRoot)
Definition test_udp_module.cpp:107

◆ tFreeStatus

JUNO_STATUS_T tFreeStatus

◆ tLastStatus

JUNO_STATUS_T tLastStatus

◆ tReceivePayload

UDP_THREAD_MSG_T tReceivePayload

◆ tReceiveStatus

JUNO_STATUS_T tReceiveStatus

◆ tSendStatus

JUNO_STATUS_T tSendStatus