summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorsanine-a <sanine.not@pm.me>2022-12-15 11:04:34 -0600
committersanine-a <sanine.not@pm.me>2022-12-15 11:04:34 -0600
commit9bc220eb2ba77e6a7184d7b63f086e6a268b75e3 (patch)
treefeb6dcafe94efe37a3771e941cb4a4e6b489355a /tests
parentdb7c08e8ccaa7a7faf44a5a7def5db03c24f7934 (diff)
implement basic auto-registration
Diffstat (limited to 'tests')
-rw-r--r--tests/helpers.c1
-rw-r--r--tests/macro-tests.c196
-rw-r--r--tests/main.c1
-rw-r--r--tests/tests.h2
4 files changed, 198 insertions, 2 deletions
diff --git a/tests/helpers.c b/tests/helpers.c
index 37afcae..b20483a 100644
--- a/tests/helpers.c
+++ b/tests/helpers.c
@@ -1,6 +1,5 @@
#include <stdio.h>
-#include "lily-test.h"
#include "tests.h"
void _run_test(const char *name, const char* (*test)())
diff --git a/tests/macro-tests.c b/tests/macro-tests.c
index b5f0ac5..81a2932 100644
--- a/tests/macro-tests.c
+++ b/tests/macro-tests.c
@@ -160,3 +160,199 @@ const char * test_LILY_COUNTER()
return 0;
}
+
+
+const char * test_LILY_COUNTER_DECREMENT()
+{
+ if (LILY_COUNTER != 20)
+ return "LILY_COUNTER is not 20!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 19)
+ return "LILY_COUNTER is not 19!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 18)
+ return "LILY_COUNTER is not 18!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 17)
+ return "LILY_COUNTER is not 17!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 16)
+ return "LILY_COUNTER is not 16!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 15)
+ return "LILY_COUNTER is not 15!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 14)
+ return "LILY_COUNTER is not 14!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 13)
+ return "LILY_COUNTER is not 13!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 12)
+ return "LILY_COUNTER is not 12!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 11)
+ return "LILY_COUNTER is not 11!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 10)
+ return "LILY_COUNTER is not 10!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 9)
+ return "LILY_COUNTER is not 9!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 8)
+ return "LILY_COUNTER is not 8!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 7)
+ return "LILY_COUNTER is not 7!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 6)
+ return "LILY_COUNTER is not 6!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 5)
+ return "LILY_COUNTER is not 5!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 4)
+ return "LILY_COUNTER is not 4!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 3)
+ return "LILY_COUNTER is not 3!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 2)
+ return "LILY_COUNTER is not 2!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 1)
+ return "LILY_COUNTER is not 1!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 0)
+ return "LILY_COUNTER is not 0!";
+
+ #define LILY_COUNTER_DECREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 0xfff)
+ return "LILY_COUNTER is not 0xfff!";
+
+ #define LILY_COUNTER_INCREMENT
+ #include "lily-test.h"
+
+ if (LILY_COUNTER != 0)
+ return "LILY_COUNTER is not 0 again!";
+
+ return 0;
+}
+
+
+LILY_FILE_BEGIN()
+
+
+int array[3] = { 0, 0, 0 };
+
+LILY_TEST("set array[0] to 1")
+{
+ array[0] = 1;
+}
+#include LILY_PUSH_TEST()
+
+
+LILY_TEST("set array[1] to 2")
+{
+ array[1] = 2;
+}
+#include LILY_PUSH_TEST()
+
+
+LILY_TEST("set array[2] to 3")
+{
+ array[2] = 3;
+}
+#include LILY_PUSH_TEST()
+
+
+#define LILY_FILE_END
+#include LILY_REGISTER_TESTS()
+
+const char * test_auto_registration()
+{
+ lily_ll_node_t *n = &LILY_LIST_HEAD;
+ if (n->next == NULL) {
+ return "No functions were registered!";
+ }
+ if (n->next == n) {
+ return "List loops!";
+ }
+
+ while (n->next != NULL) {
+ n->f();
+ n = n->next;
+ }
+
+ if (array[0] != 1)
+ return "Function 0 didn't run!";
+ if (array[1] != 2)
+ return "Function 1 didn't run!";
+ if (array[2] != 3)
+ return "Function 2 didn't run!";
+
+ return 0;
+}
diff --git a/tests/main.c b/tests/main.c
index 49c6aa8..1598190 100644
--- a/tests/main.c
+++ b/tests/main.c
@@ -3,7 +3,6 @@
#include <string.h>
#include <stdlib.h>
-#include "lily-test.h"
#include "tests.h"
int main()
diff --git a/tests/tests.h b/tests/tests.h
index 86c9b88..481260e 100644
--- a/tests/tests.h
+++ b/tests/tests.h
@@ -10,6 +10,8 @@ int validate_message(const char* received, const char* expected,
#define TESTS \
X(test_LILY_LOCATION) \
X(test_LILY_COUNTER) \
+ X(test_LILY_COUNTER_DECREMENT) \
+ X(test_auto_registration) \
#define X(test) const char * test();
TESTS