suricata
Testing

Unit testing support functions. More...

Data Structures

struct  UtTest_
 

Macros

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

Typedefs

typedef struct UtTest_ UtTest
 

Functions

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

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)
int unittests_fatal

Fail a test.

Definition at line 60 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 71 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 82 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 96 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 89 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 105 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.

References UtTest_::next, and SCFree.

Referenced by RunUnittests(), and UtRunSelftest().

Here is the caller graph for this function:

◆ 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.

References UtTest_::name, UtTest_::next, and regex_arg.

Referenced by RunUnittests().

Here is the caller graph for this function:

◆ 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.

References name, UtTest_::name, UtTest_::next, and UtTest_::TestFn.

Referenced by AlertFastLogRegisterTests(), AppLayerHtpFileRegisterTests(), AppLayerProtoDetectUnittestsRegister(), AppLayerUnittestsRegister(), ByteRegisterTests(), CoredumpConfigRegisterTests(), DcePayloadRegisterTests(), DecodeCHDLCRegisterTests(), DecodeESPRegisterTests(), DecodeEthernetRegisterTests(), DecodeGeneveRegisterTests(), DecodeGRERegisterTests(), DecodeICMPV4RegisterTests(), DecodeICMPV6RegisterTests(), DecodeIPV4RegisterTests(), DecodeIPV6RegisterTests(), DecodeMPLSRegisterTests(), DecodeNSHRegisterTests(), DecodePPPOERegisterTests(), DecodePPPRegisterTests(), DecodeRawRegisterTests(), DecodeTCPRegisterTests(), DecodeUDPV4RegisterTests(), DecodeVLANRegisterTests(), DecodeVNTagRegisterTests(), DecodeVXLANRegisterTests(), DefragRegisterTests(), DeStateRegisterTests(), DetectAddressIPv4Tests(), DetectAddressIPv6Tests(), DetectAddressTests(), 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(), DetectPortTests(), DetectProtoTests(), DetectTcphdrRegisterTests(), DetectTemplateRegisterTests(), DetectTransformPcrexformRegisterTests(), DetectTtlRegisterTests(), DetectUdphdrRegisterTests(), DNP3ParserRegisterTests(), EngineEventRegisterTests(), FlowBitRegisterTests(), FlowBitsRegisterTests(), FlowRateRegisterTests(), 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(), SCConfRegisterTests(), SCConfYamlRegisterTests(), SCHInfoRegisterTests(), SCLogRegisterTests(), SCProfilingRegisterTests(), SCProtoNameRegisterTests(), SCRadix4RegisterTests(), SCRadix6RegisterTests(), SCRConfRegisterTests(), SCReputationRegisterTests(), SCRuleVarsRegisterTests(), SCSigRegisterSignatureOrderingTests(), SCThresholdConfRegisterTests(), SigGroupHeadRegisterTests(), SigParseRegisterTests(), SigRegisterTests(), SMTPParserRegisterTests(), SSHParserRegisterTests(), StatsRegisterTests(), StreamingBufferRegisterTests(), StreamTcpInlineRegisterTests(), StreamTcpListRegisterTests(), StreamTcpReassembleRegisterTests(), StreamTcpRegisterTests(), StreamTcpSackRegisterTests(), StreamTcpUtilRegisterTests(), ThreadingAffinityRegisterTests(), 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().

Referenced by RunModeRegisterRunModes().

Here is the call graph for this function:
Here is the caller 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 regex_arg, UtCleanup(), UtInitialize(), UtRegisterTest(), and UtRunTests().

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 FlowGetMemuse(), UtTest_::name, UtTest_::next, regex_arg, SCLogInfo, StreamTcpInitMemuse(), StreamTcpMemuseCounter(), StreamTcpReassembleInitMemuse(), StreamTcpReassembleMemuseGlobalCounter(), UtTest_::TestFn, TimeModeSetOffline(), TimeSetToCurrentTime(), and unittests_fatal.

Referenced by RunUnittests(), and UtRunSelftest().

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

Variable Documentation

◆ unittests_fatal [1/2]

int unittests_fatal = 0

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

Referenced by SCParseCommandLine(), and UtRunTests().

◆ unittests_fatal [2/2]

int unittests_fatal
extern

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

Referenced by SCParseCommandLine(), and UtRunTests().