summaryrefslogtreecommitdiff
path: root/unittest/unittest.h
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2010-03-09 12:19:59 +0100
committerTobias Klauser <klto@zhaw.ch>2010-03-09 12:19:59 +0100
commitd76cfad42a29b94c129c8e48b145e61ebd03b183 (patch)
tree24780f0e1adcfaf80cd4d09f9de8d9ed5ab9118a /unittest/unittest.h
parent0a2822d4ad8721673e31d122549e9426105b0289 (diff)
Add unittest module
Diffstat (limited to 'unittest/unittest.h')
-rw-r--r--unittest/unittest.h40
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_ */