GATE
tests.h File Reference

Macros and functions to create unit tests. More...

#include "gate/gate_core_api.h"
#include "gate/gatetypes.h"
#include "gate/results.h"
#include "gate/streams.h"

Classes

struct  gate_test_report_class
 
struct  gate_test_case_t
 

Macros

#define gate_test_trace_on()   gate_test_trace_enable(true)
 
#define gate_test_trace_off()   gate_test_trace_enable(false)
 
#define GATE_TEST_STR(expression)   #expression
 
#define GATE_TEST_UNIT_BEGIN(name)   gate_test_unit_begin(GATE_TEST_STR(name), __FILE__, __LINE__)
 
#define GATE_TEST_UNIT_END   return true
 
#define GATE_TEST_FUNCTION(name)   gate_bool_t name (void)
 
#define GATE_TEST_CHECK(expression)
 
#define GATE_TEST_REQUIRE(expression)
 
#define GATE_TEST_CHECK_RESULT(expected, expression)   GATE_TEST_CHECK( ((expected) == (expression)) )
 
#define GATE_TEST_REQUIRE_RESULT(expected, expression)   GATE_TEST_REQUIRE( ((expected) == (expression)) )
 
#define GATE_TEST_CHECK_OK(expression)   GATE_TEST_CHECK( (GATE_RESULT_OK == (expression)) )
 
#define GATE_TEST_REQUIRE_OK(expression)   GATE_TEST_REQUIRE( (GATE_RESULT_OK == (expression)) )
 
#define GATE_TEST_CHECK_EQUAL(expression, equals)   GATE_TEST_CHECK( ((expression) == (equals)) )
 
#define GATE_TEST_REQUIRE_EQUAL(expression, equals)   GATE_TEST_REQUIRE( ((expression) == (equals)) )
 
#define GATE_TEST_CHECK_NOT_EQUAL(expression, not_equals)   GATE_TEST_CHECK( ((expression) != (not_equals)) )
 
#define GATE_TEST_REQUIRE_NOT_EQUAL(expression, not_equals)   GATE_TEST_REQUIRE( ((expression) != (not_equals)) )
 
#define GATE_TEST_TRACE_MESSAGE(message)   gate_test_trace_message(message, __FILE__, __LINE__)
 
#define GATE_TEST_TRACE_VALUE(int_value)   gate_test_trace_value(int_value, __FILE__, __LINE__)
 
#define GATE_TEST_INIT(ptr_output_stream)
 
#define GATE_TEST_INIT_DEFAULT()   GATE_TEST_INIT(NULL)
 

Typedefs

typedef struct gate_test_report_class gate_test_report_t
 
typedef gate_bool_t(* gate_test_function) (void)
 

Functions

GATE_CORE_API void gate_test_init (gate_stream_t *stream)
 
GATE_CORE_API void gate_test_trace_enable (gate_bool_t on)
 
GATE_CORE_API void gate_test_trace_message (char const *message, char const *filepath, unsigned codeline)
 
GATE_CORE_API void gate_test_trace_value (gate_int64_t value, char const *filepath, unsigned codeline)
 
GATE_CORE_API void gate_test_error_message (char const *message, char const *filepath, unsigned codeline)
 
GATE_CORE_API void gate_test_count_test ()
 
GATE_CORE_API void gate_test_count_error ()
 
GATE_CORE_API void gate_test_unit_begin (char const *unit_name, char const *filepath, unsigned codeline)
 
GATE_CORE_API unsigned gate_test_get_reports (gate_test_report_t *target_report_array, unsigned max_reports)
 
GATE_CORE_API void gate_test_print_reports ()
 
GATE_CORE_API gate_bool_t gate_test_failed ()
 
GATE_CORE_API gate_bool_t gate_test_cases_run (gate_test_case_t const *test_cases, gate_size_t test_cases_count)
 
GATE_CORE_API int gate_test_main (gate_test_case_t const *test_cases, gate_size_t test_cases_count, char const *const *arguments, gate_size_t argcount)
 

Detailed Description

Macros and functions to create unit tests.

Macro Definition Documentation

◆ GATE_TEST_CHECK

#define GATE_TEST_CHECK ( expression)
Value:
do \
{ \
gate_test_count_test(); \
gate_test_trace_message( GATE_TEST_STR(expression), __FILE__, __LINE__ ); \
if( (expression) ) \
{ \
} \
else \
{ \
gate_test_count_error(); \
gate_test_error_message( GATE_TEST_STR(expression), __FILE__, __LINE__ ); \
} \
} while(0)

◆ GATE_TEST_INIT

#define GATE_TEST_INIT ( ptr_output_stream)
Value:
do \
{ \
gate_test_init(ptr_output_stream); \
gate_test_trace_message("INIT GATE TEST", __FILE__, __LINE__); \
} while(0)

◆ GATE_TEST_REQUIRE

#define GATE_TEST_REQUIRE ( expression)
Value:
do \
{ \
gate_test_count_test(); \
gate_test_trace_message( GATE_TEST_STR(expression), __FILE__, __LINE__ ); \
if( (expression) ) \
{ \
} \
else \
{ \
gate_test_count_error(); \
gate_test_error_message( GATE_TEST_STR(expression), __FILE__, __LINE__ ); \
return false; \
} \
} while(0)