4 #include "unit_test_common.h" 9 #define SEATEST_VERSION "0.5" 10 #define SEATEST_PROJECT_HOME "http://code.google.com/p/seatest/" 11 #define SEATEST_PRINT_BUFFER_SIZE 100000 17 typedef void (*seatest_void_void)(void);
18 typedef void (*seatest_void_string)(
char*);
23 void (*seatest_simple_test_result)(
int passed,
char* reason,
const char*
function,
unsigned int line);
24 void seatest_test_fixture_start(
char* filepath);
25 void seatest_test_fixture_end(
void );
26 void seatest_simple_test_result_log(
int passed,
char* reason,
const char*
function,
unsigned int line);
27 void seatest_assert_true(
int test,
const char*
function,
unsigned int line);
28 void seatest_assert_false(
int test,
const char*
function,
unsigned int line);
29 void seatest_assert_int_equal(
int expected,
int actual,
const char*
function,
unsigned int line);
30 void seatest_assert_ulong_equal(
unsigned long expected,
unsigned long actual,
const char*
function,
unsigned int line);
31 void seatest_assert_float_vec_equal(
float expected,
float actual,
unsigned int delta,
unsigned int seatest_vec,
const char*
function,
unsigned int line);
32 void seatest_assert_float_equal(
float expected,
float actual,
unsigned int delta,
unsigned int loop_round,
const char*
function,
unsigned int line);
33 void seatest_assert_double_equal(
double expected,
double actual,
double delta,
const char*
function,
unsigned int line);
34 void seatest_assert_string_equal(
char* expected,
char* actual,
const char*
function,
unsigned int line);
35 void seatest_assert_string_ends_with(
char* expected,
char* actual,
const char*
function,
unsigned int line);
36 void seatest_assert_string_starts_with(
char* expected,
char* actual,
const char*
function,
unsigned int line);
37 void seatest_assert_string_contains(
char* expected,
char* actual,
const char*
function,
unsigned int line);
38 void seatest_assert_string_doesnt_contain(
char* expected,
char* actual,
const char*
function,
unsigned int line);
39 int seatest_should_run(
char* fixture,
char* test);
40 void seatest_before_run(
char* fixture,
char* test);
41 void seatest_run_test(
char* fixture,
char* test);
42 void seatest_setup(
void );
43 void seatest_teardown(
void );
44 void seatest_suite_teardown(
void );
45 void seatest_suite_setup(
void );
46 void test_fixture_boxfilter (
void);
47 long int GetTickCount(
void );
52 #define assert_true(test) do { seatest_assert_true(test, __FUNCTION__, __LINE__); } while (0) 53 #define assert_false(test) do { seatest_assert_false(test, __FUNCTION__, __LINE__); } while (0) 54 #define assert_int_equal(expected, actual) do { seatest_assert_int_equal(expected, actual, __FUNCTION__, __LINE__); } while (0) 55 #define assert_ulong_equal(expected, actual) do { seatest_assert_ulong_equal(expected, actual, __FUNCTION__, __LINE__); } while (0) 56 #define assert_string_equal(expected, actual) do { seatest_assert_string_equal(expected, actual, __FUNCTION__, __LINE__); } while (0) 57 #define assert_n_array_equal(expected, actual, n) do { int seatest_count; for(seatest_count=0; seatest_count<n; seatest_count++) { char s_seatest[SEATEST_PRINT_BUFFER_SIZE]; sprintf(s_seatest,"Expected %d to be %d at position %d", actual[seatest_count], expected[seatest_count], seatest_count); seatest_simple_test_result((expected[seatest_count] == actual[seatest_count]), s_seatest, __FUNCTION__, __LINE__);} } while (0) 58 #define assert_bit_set(bit_number, value) { seatest_simple_test_result(((1 << bit_number) & value), " Expected bit to be set" , __FUNCTION__, __LINE__); } while (0) 59 #define assert_bit_not_set(bit_number, value) { seatest_simple_test_result(!((1 << bit_number) & value), " Expected bit not to to be set" , __FUNCTION__, __LINE__); } while (0) 60 #define assert_bit_mask_matches(value, mask) { seatest_simple_test_result(((value & mask) == mask), " Expected all bits of mask to be set" , __FUNCTION__, __LINE__); } while (0) 61 #define assert_fail(message) { seatest_simple_test_result(0, message, __FUNCTION__, __LINE__); } while (0) 62 #define assert_float_equal(expected, actual, delta) do { seatest_assert_float_equal(expected, actual, delta, __FUNCTION__, __LINE__); } while (0) 63 #define assert_double_equal(expected, actual, delta) do { seatest_assert_double_equal(expected, actual, delta, __FUNCTION__, __LINE__); } while (0) 64 #define assert_string_contains(expected, actual) do { seatest_assert_string_contains(expected, actual, __FUNCTION__, __LINE__); } while (0) 65 #define assert_string_doesnt_contain(expected, actual) do { seatest_assert_string_doesnt_contain(expected, actual, __FUNCTION__, __LINE__); } while (0) 66 #define assert_string_starts_with(expected, actual) do { seatest_assert_string_starts_with(expected, actual, __FUNCTION__, __LINE__); } while (0) 67 #define assert_string_ends_with(expected, actual) do { seatest_assert_string_ends_with(expected, actual, __FUNCTION__, __LINE__); } while (0) 69 #define assert_float_vec_equal(expected, actual, delta, n) do { \ 71 for(seatest_vec=0; seatest_vec<(n); seatest_vec++) \ 73 seatest_assert_float_vec_equal((expected)[seatest_vec], (actual)[seatest_vec], (delta), seatest_vec, __FUNCTION__, __LINE__); \ 80 void fixture_setup(
void (*setup)(
void ));
81 void fixture_teardown(
void (*teardown)(
void ));
82 #define run_test(test) do { if(seatest_should_run(__FILE__, #test)) {seatest_suite_setup(); seatest_setup(); test(); seatest_teardown(); seatest_suite_teardown(); seatest_run_test(__FILE__, #test); }} while (0) 83 #define test_fixture_start() do { seatest_test_fixture_start(__FILE__); } while (0) 84 #define test_fixture_end() do { seatest_test_fixture_end();} while (0) 85 void fixture_filter(
char* filter);
86 void test_filter(
char* filter);
87 void suite_teardown(seatest_void_void teardown);
88 void suite_setup(seatest_void_void setup);
89 int run_tests(seatest_void_void tests);
90 int seatest_testrunner(
int argc,
char** argv, seatest_void_void tests, seatest_void_void setup, seatest_void_void teardown);
93 #ifdef SEATEST_INTERNAL_TESTS 94 void seatest_simple_test_result_nolog(
int passed,
char* reason,
const char*
function,
unsigned int line);
95 void seatest_assert_last_passed();
96 void seatest_assert_last_failed();
97 void seatest_enable_logging();
98 void seatest_disable_logging();