YAZ 5.37.0
test.h File Reference

Unit Test for YAZ. More...

#include <yaz/yconfig.h>
#include <stdio.h>

Go to the source code of this file.

Macros

#define YAZ_TEST_TYPE_OK   1
 Test OK.
#define YAZ_TEST_TYPE_FAIL   2
 Test failed.
#define YAZ_CHECK(as)
 boolean test. as only evaluated once
#define YAZ_CHECK_TODO(as)
 a test we know will fail at this time.
#define YAZ_CHECK_EQ(left, right)
 equality test. left, right only evaluated once
#define YAZ_CHECK_INIT(argc, argv)
 Macro to initialize the system (in start of main typically).
#define YAZ_CHECK_TERM   yaz_check_term1(); return 0
 Macro to terminate the system (end of main, normally).
#define YAZ_CHECK_LOG()
 Macro to enable and initialize the yaz_log(start of main).

Functions

int yaz_test_get_verbosity (void)
 Get the verbosity level.
void yaz_check_init1 (int *argc, char ***argv)
 used by macro. Should not be called directly
void yaz_check_term1 (void)
 used by macro. Should not be called directly
void yaz_check_init_log (const char *argv0)
 used by macro. Should not be called directly
void yaz_check_print1 (int type, const char *file, int line, const char *expr)
 used by macro. Should not be called directly
void yaz_check_eq1 (int type, const char *file, int line, const char *left, const char *right, int lval, int rval)
 used by macro. Should not be called directly
void yaz_check_inc_todo (void)
 used by macro. Should not be called directly

Detailed Description

Unit Test for YAZ.

Definition in file test.h.

Macro Definition Documentation

◆ YAZ_CHECK

#define YAZ_CHECK ( as)
Value:
{ \
if (as) { \
yaz_check_print1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, #as); \
} else { \
yaz_check_print1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, #as); \
} \
}
#define YAZ_TEST_TYPE_FAIL
Test failed.
Definition test.h:44
#define YAZ_TEST_TYPE_OK
Test OK.
Definition test.h:42

boolean test. as only evaluated once

Definition at line 47 of file test.h.

◆ YAZ_CHECK_EQ

#define YAZ_CHECK_EQ ( left,
right )
Value:
{ \
int lval = left; \
int rval = right; \
if (lval == rval) { \
yaz_check_eq1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, \
#left, #right, lval, rval); \
} else { \
yaz_check_eq1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, \
#left, #right, lval, rval); \
} \
}

equality test. left, right only evaluated once

Definition at line 72 of file test.h.

◆ YAZ_CHECK_INIT

#define YAZ_CHECK_INIT ( argc,
argv )
Value:
yaz_check_init1(&argc, &argv)
void yaz_check_init1(int *argc_p, char ***argv_p)
used by macro. Should not be called directly
Definition test.c:52

Macro to initialize the system (in start of main typically).

Definition at line 85 of file test.h.

◆ YAZ_CHECK_LOG

#define YAZ_CHECK_LOG ( )
Value:
void yaz_check_init_log(const char *argv0)
Initialize the log system.
Definition test.c:118

Macro to enable and initialize the yaz_log(start of main).

Definition at line 90 of file test.h.

◆ YAZ_CHECK_TERM

#define YAZ_CHECK_TERM   yaz_check_term1(); return 0

Macro to terminate the system (end of main, normally).

Definition at line 87 of file test.h.

◆ YAZ_CHECK_TODO

#define YAZ_CHECK_TODO ( as)
Value:
{ \
yaz_check_inc_todo(); \
if (!as) { \
yaz_check_print1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, "TODO: " #as); \
} else { \
yaz_check_print1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, "TODO: "#as); \
} \
}

a test we know will fail at this time.

Later, when the bug is fixed, this test will suddenly pass, which will be reported as an error, to remind you to go and fix your tests.

Definition at line 62 of file test.h.

◆ YAZ_TEST_TYPE_FAIL

#define YAZ_TEST_TYPE_FAIL   2

Test failed.

Definition at line 44 of file test.h.

Referenced by yaz_check_print1().

◆ YAZ_TEST_TYPE_OK

#define YAZ_TEST_TYPE_OK   1

Test OK.

Definition at line 42 of file test.h.

Referenced by yaz_check_eq1(), and yaz_check_print1().

Function Documentation

◆ yaz_check_eq1()

void yaz_check_eq1 ( int type,
const char * file,
int line,
const char * left,
const char * right,
int lval,
int rval )

used by macro. Should not be called directly

Definition at line 168 of file test.c.

References type, yaz_check_print1(), yaz_snprintf(), and YAZ_TEST_TYPE_OK.

◆ yaz_check_inc_todo()

void yaz_check_inc_todo ( void )

used by macro. Should not be called directly

Definition at line 128 of file test.c.

References test_todo.

◆ yaz_check_init1()

void yaz_check_init1 ( int * argc,
char *** argv )

used by macro. Should not be called directly

Definition at line 52 of file test.c.

References progname, test_fout, test_prog, test_stop, and test_verbose.

◆ yaz_check_init_log()

void yaz_check_init_log ( const char * argv0)

used by macro. Should not be called directly

used by macro. Should not be called directly

Definition at line 118 of file test.c.

References log_tests, progname, yaz_log_init_file(), yaz_log_trunc(), and yaz_snprintf().

◆ yaz_check_print1()

void yaz_check_print1 ( int type,
const char * file,
int line,
const char * expr )

used by macro. Should not be called directly

Definition at line 180 of file test.c.

References get_file(), log_tests, test_failed, test_stop, test_total, test_verbose, type, yaz_log(), YAZ_TEST_TYPE_FAIL, YAZ_TEST_TYPE_OK, and YLOG_LOG.

Referenced by yaz_check_eq1().

◆ yaz_check_term1()

void yaz_check_term1 ( void )

used by macro. Should not be called directly

Definition at line 133 of file test.c.

References get_file(), test_failed, test_fout, test_prog, test_todo, test_total, test_verbose, and yaz_deinit_globals().

◆ yaz_test_get_verbosity()

int yaz_test_get_verbosity ( void )

Get the verbosity level.

Definition at line 218 of file test.c.

References test_verbose.