17 #include <l/l_sys_lib.h>
23 const char* test_kind,
39 #define DOWN_IN_FLAMES(tst,src) \
40 down_in_flames( (tst), __FILE__, __LINE__, (src) )
42 #define RETURN_VICTORIOUSLY() \
43 do { print_victory(__FILE__); \
44 return EXIT_SUCCESS; \
47 #define TEST_TRUE(line) \
48 do if (!(line)) { DOWN_IN_FLAMES( "TEST_TRUE", #line ); } while( 0 )
50 #define TEST_FALSE(line) \
51 do if ( line ) { DOWN_IN_FLAMES( "TEST_FALSE", #line ); } while( 0 )
53 #define TEST_SUCCESS(line) \
58 DOWN_IN_FLAMES( "TEST_SUCCESS", #line ); \
63 #define TEST_APPROX_EQUALITY(x,y) \
65 const double a(x), b(y); \
66 if(!(a==b || fabs(a-b) <= (fabs(a)+fabs(b))*0.005 )) \
68 DOWN_IN_FLAMES( "TEST_APPROX_EQUALITY", #x " approx == " #y ); \
73 #define TEST_APPROX_ZERO(z) TEST_ZERO_WITH_TOLERANCE(z, 1e-10)
76 #define TEST_ZERO_WITH_TOLERANCE(z, t) \
78 if (!(fabs(z) <= (t))) \
80 DOWN_IN_FLAMES( "TEST_ZERO_WITH_TOLERANCE", "fabs(" #z ")<=" #t );\
85 #define TEST_FAIL(line) \
87 bool assert_fail_failed = false; \
89 catch( kjb::Index_out_of_bounds& iob ) \
93 assert_fail_failed = true; \
97 assert_fail_failed = true; \
99 if (!assert_fail_failed) \
101 DOWN_IN_FLAMES( "TEST_FAIL", #line ); \
void print_victory(const char *)
Definition: l_test.cpp:39
void down_in_flames(const char *test_kind, const char *filename, int line_num, const char *bad_line)
Definition: l_test.cpp:26
Support for error handling exception classes in libKJB.