X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Ftest.h;h=cc0fd78aaaf21c8e5614c0776fdf4631ea355d76;hb=5978e22206f36565d27a4d513962832f92955652;hp=fc10c8d5492a94bfd28f164e9d28bac39df3fc8c;hpb=274253df134ea2cd4bf051d947b6c6a464c7bac6;p=awesomized%2Flibmemcached diff --git a/tests/test.h b/tests/test.h index fc10c8d5..cc0fd78a 100644 --- a/tests/test.h +++ b/tests/test.h @@ -16,9 +16,12 @@ extern "C" { #include #include -#include #include +#if !defined(__cplusplus) +# include +#endif + typedef struct world_st world_st; typedef struct collection_st collection_st; typedef struct test_st test_st; @@ -36,6 +39,8 @@ typedef test_return_t (*test_callback_fn)(void *); typedef test_return_t (*test_callback_runner_fn)(test_callback_fn, void *); typedef test_return_t (*test_callback_error_fn)(test_return_t, void *); +/* Help function for use with gettimeofday() */ +long int timedif(struct timeval a, struct timeval b); /** A structure describing the test case. @@ -144,11 +149,31 @@ void create_core(void); */ const char *test_strerror(test_return_t code); -#define test_truth(A) \ +#define test_fail(A) \ +do \ +{ \ + if (1) { \ + fprintf(stderr, "\nFailed at %s:%d: %s\n", __FILE__, __LINE__, #A);\ + create_core(); \ + return TEST_FAILURE; \ + } \ +} while (0) + +#define test_true(A) \ +do \ +{ \ + if (! (A)) { \ + fprintf(stderr, "\nAssertion failed at %s:%d: %s\n", __FILE__, __LINE__, #A);\ + create_core(); \ + return TEST_FAILURE; \ + } \ +} while (0) + +#define test_true_got(A,B) \ do \ { \ if (! (A)) { \ - fprintf(stderr, "\nAssertion failed in %s:%d: %s\n", __FILE__, __LINE__, #A);\ + fprintf(stderr, "\nAssertion failed at %s:%d: \"%s\" received \"%s\"\n", __FILE__, __LINE__, #A, (B));\ create_core(); \ return TEST_FAILURE; \ } \ @@ -158,7 +183,7 @@ do \ do \ { \ if ((A)) { \ - fprintf(stderr, "\nAssertion failed in %s:%d: %s\n", __FILE__, __LINE__, #A);\ + fprintf(stderr, "\nAssertion failed at %s:%d: %s\n", __FILE__, __LINE__, #A);\ create_core(); \ return TEST_FAILURE; \ } \