From c0cd4e5f199e8567ec3b5e216fbee27837d21bea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Yaroslav=20de=20la=20Pe=C3=B1a=20Smirnov?=
 <yps@yaroslavps.com>
Date: Thu, 20 Jan 2022 02:34:32 +0300
Subject: init

---
 include/tests/tests.h | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 include/tests/tests.h

(limited to 'include/tests')

diff --git a/include/tests/tests.h b/include/tests/tests.h
new file mode 100644
index 0000000..8c89fcc
--- /dev/null
+++ b/include/tests/tests.h
@@ -0,0 +1,45 @@
+#ifndef TESTS_H
+#define TESTS_H
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifndef NOCOLOR
+#define TBLD "\033[1m"
+#define TRED "\033[31m"
+#define TGRN "\033[32m"
+#define TBLU "\033[34m"
+#define TRST "\033[0m"
+#else
+#define TBLD ""
+#define TRED ""
+#define TGRN ""
+#define TBLU ""
+#define TRST ""
+#endif
+
+#define RUN_TEST(test_func) \
+	printf("%s:\t", #test_func); \
+	fflush(stdout); \
+	test_func(); \
+	printf(TGRN "OK!\n" TRST)
+
+#define INIT_TESTS() \
+	printf(TBLD "running %s tests\n" TRST, __FILE__)
+
+#define FAIL_TEST(reason) \
+	printf(TBLD TRED "FAIL!\n" TRST); \
+	printf("%s:%d: %s: ", __FILE__, __LINE__, __func__); \
+	printf(reason); \
+	abort()
+
+#define asserteq(a, b) \
+	if (a != b) { \
+		FAIL_TEST("assertion " TBLD TBLU #a " == " #b TRST " failed\n"); \
+	}
+
+#define assertneq(a, b) \
+	if (a == b) { \
+		FAIL_TEST("assertion " TBLD TBLU #a " != " #b TRST " failed\n"); \
+	}
+
+#endif
-- 
cgit v1.2.3