X-Git-Url: http://git.squeep.com/?p=reservoir_sample;a=blobdiff_plain;f=test_suite.h;fp=test_suite.h;h=09fd24d07b6d9cb378f0bda07677ca8b17b27bbe;hp=0000000000000000000000000000000000000000;hb=97d878a076b7a769ed3e5f65f95fa453406af63c;hpb=6bd502bb5a3c61bb3b0cd76d613973346e8a5d90 diff --git a/test_suite.h b/test_suite.h new file mode 100644 index 0000000..09fd24d --- /dev/null +++ b/test_suite.h @@ -0,0 +1,35 @@ +#ifndef TEST_SUITE_H_6XEHCUS5 +#define TEST_SUITE_H_6XEHCUS5 + +#ifdef TEST + +typedef struct test { + const char * const test_name; + int (* const test_fn)(void *test_data, void *suite_data); + int (* const test_pre_fn)(void *test_data, void *suite_data); + int (* const test_post_fn)(void *test_data, void *suite_data); + void *test_data; +} test_t; + +/* define all of these within module to test */ +extern test_t test_suite[]; +extern int test_suite_pre(void *suite_data); +extern int test_suite_post(void *suite_data); +extern void *test_suite_data; + +/* use these in tests */ +void test_verbose(const char *fmt, ...) __attribute__((format(printf, 1, 2))); /* stdout only with -v flag */ +void test_info(const char *fmt, ...) __attribute__((format(printf, 1, 2))); /* stdout */ +void test_error(const char *fmt, ...) __attribute__((format(printf, 1, 2))); /* stderr */ + +#define TEST_VERBOSE(fmt,...) do { test_verbose("%s@%s:%d/%s/" fmt "\n", "verbose", __FILE__, __LINE__, __func__, ##__VA_ARGS__); } while (0) +#define TEST_INFO(fmt,...) do { test_info("%s@%s:%d/%s/" fmt "\n", "info", __FILE__, __LINE__, __func__, ##__VA_ARGS__); } while (0) +#define TEST_ERROR(fmt,...) do { test_error("%s@%s:%d/%s/" fmt "\n", "error", __FILE__, __LINE__, __func__, ##__VA_ARGS__); } while (0) + +#else /* TEST */ +#define TEST_VERBOSE(...) +#define TEST_INFO(...) +#define TEST_ERROR(...) +#endif /* TEST */ + +#endif /* TEST_SUITE_H_6XEHCUS5 */