suricata
Testing

Unit testing support functions. More...

Data Structures

struct  UtTest_
 

Macros

#define FAIL
 Fail a test. More...
 
#define FAIL_IF(expr)
 Fail a test if expression evaluates to true. More...
 
#define FAIL_IF_NOT(expr)
 Fail a test if expression evaluates to false. More...
 
#define FAIL_IF_NULL(expr)
 Fail a test if expression evaluates to NULL. More...
 
#define FAIL_IF_NOT_NULL(expr)
 Fail a test if expression evaluates to non-NULL. More...
 
#define PASS
 Pass the test. More...
 

Typedefs

typedef struct UtTest_ UtTest
 

Functions

void UtRegisterTest (const char *name, int(*TestFn)(void))
 Register unit test. More...
 
void UtListTests (const char *regex_arg)
 List all registered unit tests. More...
 
uint32_t UtRunTests (const char *regex_arg)
 Run all registered unittests. More...
 
void UtInitialize (void)
 Initialize unit test list. More...
 
void UtCleanup (void)
 Cleanup unit test list. More...
 
void UtRunModeRegister (void)
 
int UtRunSelftest (const char *regex_arg)
 Run self tests. More...
 

Variables

int unittests_fatal = 0
 
int unittests_fatal
 

Detailed Description

Unit testing support functions.

Macro Definition Documentation

◆ FAIL

#define FAIL
Value:
do { \
if (unittests_fatal) { \
BUG_ON(1); \
} else { \
return 0; \
} \
} while (0)

Fail a test.

Definition at line 61 of file util-unittest.h.

◆ FAIL_IF

#define FAIL_IF (   expr)
Value:
do { \
if (unittests_fatal) { \
BUG_ON(expr); \
} else if (expr) { \
return 0; \
} \
} while (0)

Fail a test if expression evaluates to true.

Definition at line 72 of file util-unittest.h.

◆ FAIL_IF_NOT

#define FAIL_IF_NOT (   expr)
Value:
do { \
FAIL_IF(!(expr)); \
} while (0)

Fail a test if expression evaluates to false.

Definition at line 83 of file util-unittest.h.

◆ FAIL_IF_NOT_NULL

#define FAIL_IF_NOT_NULL (   expr)
Value:
do { \
FAIL_IF(NULL != expr); \
} while (0)

Fail a test if expression evaluates to non-NULL.

Definition at line 97 of file util-unittest.h.

◆ FAIL_IF_NULL

#define FAIL_IF_NULL (   expr)
Value:
do { \
FAIL_IF(NULL == expr); \
} while (0)

Fail a test if expression evaluates to NULL.

Definition at line 90 of file util-unittest.h.

◆ PASS

#define PASS
Value:
do { \
return 1; \
} while (0)

Pass the test.

Only to be used at the end of a function instead of "return 1."

Definition at line 106 of file util-unittest.h.

Typedef Documentation

◆ UtTest

typedef struct UtTest_ UtTest

Function Documentation

◆ UtCleanup()

void UtCleanup ( void  )

Cleanup unit test list.

Definition at line 269 of file util-unittest.c.

◆ UtInitialize()

void UtInitialize ( void  )

Initialize unit test list.

Definition at line 260 of file util-unittest.c.

Referenced by RunUnittests(), and UtRunSelftest().

Here is the caller graph for this function:

◆ UtListTests()

void UtListTests ( const char *  regex_arg)

List all registered unit tests.

Parameters
regex_argRegular expression to limit listed tests.

Definition at line 157 of file util-unittest.c.

◆ UtRegisterTest()

void UtRegisterTest ( const char *  name,
int(*)(void)  TestFn 
)

Register unit test.

Parameters
nameUnit test name
TestFnUnit test function

Definition at line 103 of file util-unittest.c.

Referenced by AlertFastLogRegisterTests(), AppLayerHtpFileRegisterTests(), AppLayerProtoDetectUnittestsRegister(), AppLayerUnittestsRegister(), ByteRegisterTests(), ConfRegisterTests(), ConfYamlRegisterTests(), DecodeCHDLCRegisterTests(), DecodeESPRegisterTests(), DecodeEthernetRegisterTests(), DecodeGeneveRegisterTests(), DecodeGRERegisterTests(), DecodeICMPV4RegisterTests(), DecodeICMPV6RegisterTests(), DecodeIPV4RegisterTests(), DecodeIPV6RegisterTests(), DecodeMPLSRegisterTests(), DecodeNSHRegisterTests(), DecodePPPOERegisterTests(), DecodePPPRegisterTests(), DecodeRawRegisterTests(), DecodeTCPRegisterTests(), DecodeUDPV4RegisterTests(), DecodeVLANRegisterTests(), DecodeVNTagRegisterTests(), DecodeVXLANRegisterTests(), DefragRegisterTests(), DeStateRegisterTests(), DetectAddressIPv4Tests(), DetectAddressIPv6Tests(), DetectEngineAlertRegisterTests(), DetectEngineContentInspectionRegisterTests(), DetectEngineRegisterTests(), DetectEngineTagRegisterTests(), DetectFiledataRegisterTests(), DetectFragOffsetRegisterTests(), DetectHTTP2errorCodeRegisterTests(), DetectHTTP2frameTypeRegisterTests(), DetectHTTP2priorityRegisterTests(), DetectHTTP2settingsRegisterTests(), DetectHTTP2sizeUpdateRegisterTests(), DetectHTTP2windowRegisterTests(), DetectHttpClientBodyRegisterTests(), DetectHttpCookieRegisterTests(), DetectHttpHeaderRegisterTests(), DetectHttpHHRegisterTests(), DetectHttpMethodRegisterTests(), DetectHttpRawHeaderRegisterTests(), DetectHttpServerBodyRegisterTests(), DetectHttpStatCodeRegisterTests(), DetectHttpStatMsgRegisterTests(), DetectIcmpv4HdrRegisterTests(), DetectICMPv6hdrRegisterTests(), DetectICMPv6mtuRegisterTests(), DetectIPAddrRegisterTests(), DetectIpv4hdrRegisterTests(), DetectIpv6hdrRegisterTests(), DetectParseRegisterTests(), DetectProtoTests(), DetectTcphdrRegisterTests(), DetectTemplateRegisterTests(), DetectTransformPcrexformRegisterTests(), DetectTtlRegisterTests(), DetectUdphdrRegisterTests(), DNP3ParserRegisterTests(), EngineEventRegisterTests(), FlowBitRegisterTests(), FlowBitsRegisterTests(), FlowRegisterTests(), FTPParserRegisterTests(), HashListTableRegisterTests(), HashTableRegisterTests(), HostBitRegisterTests(), HostBitsRegisterTests(), HTPFileParserRegisterTests(), HTPXFFParserRegisterTests(), IKEChosenSaRegisterTests(), IKEParserRegisterTests(), IPOnlyRegisterTests(), IPPairBitRegisterTests(), MacSetRegisterTests(), MagicRegisterTests(), MemcmpRegisterTests(), MemrchrRegisterTests(), ModbusParserRegisterTests(), OutputJsonStatsRegisterTests(), PayloadRegisterTests(), PoolRegisterTests(), PoolThreadRegisterTests(), RegisterFlowStorageTests(), RegisterHostStorageTests(), RegisterIPPairStorageTests(), RegisterThreadStorageTests(), SCAtomicRegisterTests(), SCClassConfRegisterTests(), SCHInfoRegisterTests(), SCLogRegisterTests(), SCProfilingRegisterTests(), SCProtoNameRegisterTests(), SCRadix4RegisterTests(), SCRadix6RegisterTests(), SCRConfRegisterTests(), SCReputationRegisterTests(), SCRuleVarsRegisterTests(), SCSigRegisterSignatureOrderingTests(), SCThresholdConfRegisterTests(), SigGroupHeadRegisterTests(), SigParseRegisterTests(), SigRegisterTests(), SMTPParserRegisterTests(), SSHParserRegisterTests(), StatsRegisterTests(), StreamingBufferRegisterTests(), StreamTcpInlineRegisterTests(), StreamTcpListRegisterTests(), StreamTcpReassembleRegisterTests(), StreamTcpRegisterTests(), StreamTcpSackRegisterTests(), StreamTcpUtilRegisterTests(), ThreadMacrosRegisterTests(), TlsExpiredRegisterTests(), TlsNotAfterRegisterTests(), TlsNotBeforeRegisterTests(), TlsValidRegisterTests(), TmqhFlowRegisterTests(), UTHRegisterTests(), UtilActionRegisterTests(), UtilCIDRTests(), UtilMiscRegisterTests(), UtilSpmSearchRegistertests(), and UtRunSelftest().

◆ UtRunModeRegister()

void UtRunModeRegister ( void  )

Definition at line 283 of file util-unittest.c.

References RUNMODE_UNITTEST, and RunModeRegisterNewRunMode().

Here is the call graph for this function:

◆ UtRunSelftest()

int UtRunSelftest ( const char *  regex_arg)

Run self tests.

Parameters
regex_argThe regular expression
Return values
0all successful

Definition at line 321 of file util-unittest.c.

References UtInitialize(), and UtRegisterTest().

Referenced by RunUnittests().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UtRunTests()

uint32_t UtRunTests ( const char *  regex_arg)

Run all registered unittests.

Parameters
regex_argThe regular expression
Return values
0all successful
resultnumber of tests that failed

Definition at line 188 of file util-unittest.c.

References StreamTcpInitMemuse(), and StreamTcpReassembleInitMemuse().

Here is the call graph for this function:

Variable Documentation

◆ unittests_fatal [1/2]

int unittests_fatal = 0

Definition at line 52 of file util-unittest.c.

◆ unittests_fatal [2/2]

int unittests_fatal

Definition at line 52 of file util-unittest.c.

unittests_fatal
int unittests_fatal
Definition: util-unittest.c:52