test.h File Reference

Unit Test for YAZ. More...

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

Go to the source code of this file.

Defines

#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)   yaz_check_init1(&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()   yaz_check_init_log(argv[0])
 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.


Define Documentation

#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); \
  } \
}
boolean test. as only evaluated once

Definition at line 47 of file test.h.

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

#define YAZ_CHECK_INIT ( argc,
argv   )     yaz_check_init1(&argc, &argv)

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

Definition at line 85 of file test.h.

 
#define YAZ_CHECK_LOG (  )     yaz_check_init_log(argv[0])

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

Definition at line 90 of file test.h.

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

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

#define YAZ_TEST_TYPE_FAIL   2

Test failed.

Definition at line 44 of file test.h.

Referenced by yaz_check_print1().

#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

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 159 of file test.c.

References yaz_check_print1(), and YAZ_TEST_TYPE_OK.

void yaz_check_inc_todo ( void   ) 

used by macro. Should not be called directly

Definition at line 120 of file test.c.

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

used by macro. Should not be called directly

Definition at line 50 of file test.c.

void yaz_check_init_log ( const char *  argv0  ) 

used by macro. Should not be called directly

Definition at line 110 of file test.c.

References yaz_log_init_file(), and yaz_log_trunc().

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 171 of file test.c.

References yaz_log(), YAZ_TEST_TYPE_FAIL, YAZ_TEST_TYPE_OK, and YLOG_LOG.

Referenced by yaz_check_eq1().

void yaz_check_term1 ( void   ) 

used by macro. Should not be called directly

Definition at line 125 of file test.c.

int yaz_test_get_verbosity ( void   ) 

Get the verbosity level.

Definition at line 205 of file test.c.


Generated on Wed Jun 18 11:17:03 2008 for YAZ by  doxygen 1.5.6