diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2010-03-09 12:19:59 +0100 |
---|---|---|
committer | Tobias Klauser <klto@zhaw.ch> | 2010-03-09 12:19:59 +0100 |
commit | d76cfad42a29b94c129c8e48b145e61ebd03b183 (patch) | |
tree | 24780f0e1adcfaf80cd4d09f9de8d9ed5ab9118a /unittest/unittest.h | |
parent | 0a2822d4ad8721673e31d122549e9426105b0289 (diff) |
Add unittest module
Diffstat (limited to 'unittest/unittest.h')
-rw-r--r-- | unittest/unittest.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/unittest/unittest.h b/unittest/unittest.h new file mode 100644 index 0000000..0ed005f --- /dev/null +++ b/unittest/unittest.h @@ -0,0 +1,40 @@ +#ifndef _UNITTEST_H_ +#define _UNITTEST_H_ + +#include <stdlib.h> +#include <stdio.h> +#include "stringify.h" + +#define TEST_PASS 0 +#define TEST_FAIL 1 + +#define assert_err(fmt, args...) \ + fprintf(stderr, "%s:%d: Assertion error: " fmt, __FILE__, __LINE__, ##args) + +/* Assert the expression 'expr' */ +#define test_assert(expr) ({if (!(expr)) { \ + assert_err(__stringify(expr) "\n"); \ + exit(TEST_FAIL); \ + }}) + +/* Assert the expression 'expr' and print 'msg' on fail */ +#define test_assert_msg(expr, msg) ({if (!(expr)) { \ + assert_err(msg "\n"); \ + exit(TEST_FAIL); \ + }}) + +/* Assert that a == b */ +#define test_assert_eq(a, b) ({ \ + if ((a) != (b)) { \ + assert_err(__stringify(a) " != " __stringify(b) "\n"); \ + exit(TEST_FAIL); \ + }}) + +/* Assert that a != b */ +#define test_assert_neq(a, b) ({ \ + if ((a) == (b)) { \ + assert_err(__stringify(a) " != " __stringify(b) "\n"); \ + exit(TEST_FAIL); \ + }}) + +#endif /* _UNITTEST_H_ */ |