Project Ne10
An Open Optimized Software Library Project for the ARM Architecture
Loading...
Searching...
No Matches
seatest.h
1#ifndef SEATEST_H
2#define SEATEST_H
3#include <stdio.h>
4#include "unit_test_common.h"
5/*
6Defines
7*/
8
9#define SEATEST_VERSION "0.5"
10#define SEATEST_PROJECT_HOME "http://code.google.com/p/seatest/"
11#define SEATEST_PRINT_BUFFER_SIZE 100000
12
13/*
14Typedefs
15*/
16
17typedef void (*seatest_void_void)(void);
18typedef void (*seatest_void_string)(char*);
19
20/*
21Declarationsresult_size
22*/
23void (*seatest_simple_test_result)(int passed, char* reason, const char* function, unsigned int line);
24void seatest_test_fixture_start(char* filepath);
25void seatest_test_fixture_end( void );
26void seatest_simple_test_result_log(int passed, char* reason, const char* function, unsigned int line);
27void seatest_assert_true(int test, const char* function, unsigned int line);
28void seatest_assert_false(int test, const char* function, unsigned int line);
29void seatest_assert_int_equal(int expected, int actual, const char* function, unsigned int line);
30void seatest_assert_ulong_equal(unsigned long expected, unsigned long actual, const char* function, unsigned int line);
31void seatest_assert_float_vec_equal(float expected, float actual, unsigned int delta, unsigned int seatest_vec, const char* function, unsigned int line);
32void seatest_assert_float_equal(float expected, float actual, unsigned int delta, unsigned int loop_round, const char* function, unsigned int line);
33void seatest_assert_double_equal(double expected, double actual, double delta, const char* function, unsigned int line);
34void seatest_assert_string_equal(char* expected, char* actual, const char* function, unsigned int line);
35void seatest_assert_string_ends_with(char* expected, char* actual, const char* function, unsigned int line);
36void seatest_assert_string_starts_with(char* expected, char* actual, const char* function, unsigned int line);
37void seatest_assert_string_contains(char* expected, char* actual, const char* function, unsigned int line);
38void seatest_assert_string_doesnt_contain(char* expected, char* actual, const char* function, unsigned int line);
39int seatest_should_run( char* fixture, char* test);
40void seatest_before_run( char* fixture, char* test);
41void seatest_run_test(char* fixture, char* test);
42void seatest_setup( void );
43void seatest_teardown( void );
44void seatest_suite_teardown( void );
45void seatest_suite_setup( void );
46void test_fixture_boxfilter (void);
47long int GetTickCount( void );
48/*
49Assert Macros
50*/
51
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)
68
69#define assert_float_vec_equal(expected, actual, delta, n) do { \
70 int seatest_vec; \
71 for(seatest_vec=0; seatest_vec<(n); seatest_vec++) \
72 { \
73 seatest_assert_float_vec_equal((expected)[seatest_vec], (actual)[seatest_vec], (delta), seatest_vec, __FUNCTION__, __LINE__); \
74 } \
75} while (0)
76/*
77Fixture / Test Management
78*/
79
80void fixture_setup(void (*setup)( void ));
81void 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)
85void fixture_filter(char* filter);
86void test_filter(char* filter);
87void suite_teardown(seatest_void_void teardown);
88void suite_setup(seatest_void_void setup);
89int run_tests(seatest_void_void tests);
90int seatest_testrunner(int argc, char** argv, seatest_void_void tests, seatest_void_void setup, seatest_void_void teardown);
91#endif
92
93#ifdef SEATEST_INTERNAL_TESTS
94void seatest_simple_test_result_nolog(int passed, char* reason, const char* function, unsigned int line);
95void seatest_assert_last_passed();
96void seatest_assert_last_failed();
97void seatest_enable_logging();
98void seatest_disable_logging();
99#endif