summaryrefslogtreecommitdiff
path: root/src/macro.h
diff options
context:
space:
mode:
authorClaudius Holeksa <mail@keldu.de>2023-05-09 16:56:27 +0200
committerClaudius Holeksa <mail@keldu.de>2023-05-09 16:56:27 +0200
commit1c1406d02d333a3317fdbb67921af4ba31bd9bcd (patch)
tree78c3b42c98b8910b8eaa36689fd227b9bec3da23 /src/macro.h
downloadmini-test-1c1406d02d333a3317fdbb67921af4ba31bd9bcd.tar.gz
First version of the mini testing framework
Diffstat (limited to 'src/macro.h')
-rw-r--r--src/macro.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/macro.h b/src/macro.h
new file mode 100644
index 0000000..0421388
--- /dev/null
+++ b/src/macro.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#define KEL_CONCAT_(x, y) x##y
+#define KEL_CONCAT(x, y) KEL_CONCAT_(x, y)
+
+#define KEL_UNIQUE_NAME(prefix) KEL_CONCAT(prefix, __LINE__)
+
+#define KEL_TEST(description) \
+ class KEL_UNIQUE_NAME(test_case) : public ::keltest::test_case { \
+ public: \
+ KEL_UNIQUE_NAME(test_case)(): ::keltest::test_case(__FILE__,__LINE__,description) {} \
+ void run() override; \
+ } KEL_UNIQUE_NAME(test_case_); \
+ void KEL_UNIQUE_NAME(test_case)::run()
+
+#define KEL_EXPECT(expr, msg_split) \
+ if( ! (expr) ){ \
+ auto msg = msg_split; \
+ throw std::runtime_error{std::string{msg}}; \
+ }