summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/helpers.c15
-rw-r--r--tests/main.c13
-rw-r--r--tests/test.c116
-rw-r--r--tests/tests.h7
4 files changed, 35 insertions, 116 deletions
diff --git a/tests/helpers.c b/tests/helpers.c
new file mode 100644
index 0000000..42a0724
--- /dev/null
+++ b/tests/helpers.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+#include "lily-test.h"
+#include "tests.h"
+
+void run_test(const char *name, const char* (*test)())
+{
+ printf("%s... ", name);
+ const char *result = test();
+ if (result != 0) {
+ printf("FAILED (%s)\n", result);
+ }
+ else
+ printf("OK\n");
+}
diff --git a/tests/main.c b/tests/main.c
new file mode 100644
index 0000000..a3de945
--- /dev/null
+++ b/tests/main.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+#include <stdbool.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "lily-test.h"
+#include "tests.h"
+
+int main()
+{
+ printf("all tests finished.\n");
+ return 0;
+}
diff --git a/tests/test.c b/tests/test.c
deleted file mode 100644
index 85c1ad7..0000000
--- a/tests/test.c
+++ /dev/null
@@ -1,116 +0,0 @@
-#include <stdio.h>
-#include <stdbool.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "lily-test.h"
-
-LILY_INIT();
-
-void run_test(const char *name, lily_test (*fp)())
-{
- printf("%s... ", name);
- const char *result = fp();
- if (result != 0) {
- printf("FAILED (%s)\n", result);
- }
- else
- printf("OK\n");
-}
-
-
-lily_test check_init()
-{
- // should fail to compile if lily_test_data is undefined
- if (lily_test_data.tests_run != 0)
- return "tests_run is not equal to zero!";
- if (lily_test_data.tests_failed != 0)
- return "tests_failed is not equal to zero!";
- return 0;
-}
-
-
-int get_message(char **destination, const char *source)
-{
- const char *s = source;
- size_t size = 0;
- while (*s != '\n') {
- if (*s == 0)
- return false;
- s++;
- size++;
- }
-
- *destination = malloc((size+1) * sizeof(char));
- strncpy(*destination, source, size);
- (*destination)[size] = 0;
- return true;
-}
-
-#define assert_msg "message"
-
-lily_test wrap_assert(bool statement)
-{
- lily_assert_msg(statement, assert_msg);
- return 0;
-}
-
-lily_test check_assert()
-{
- if (wrap_assert(true) != 0)
- return "true assertion did not return 0!";
-
- const char *result = wrap_assert(false);
-
- if (result == 0)
- return "false assertion returned zero!";
-
- char *message;
- if (!get_message(&message, result))
- return "false assertion contained malformed message!";
-
- if (strcmp(message, assert_msg) != 0)
- return "false assertion message was not '" assert_msg "'!";
- free(message);
-
- return 0;
-}
-
-
-const char *assert_eq_true()
-{
- lily_assert_equal(15, 15);
- return 0;
-}
-const char *assert_eq_false()
-{
- lily_assert_equal(14, 15);
- return 0;
-}
-
-lily_test check_other_asserts()
-{
- if (assert_eq_true() != 0)
- return "equality assertion returned non-zero when true!";
- const char *result = assert_eq_false();
- if (result == 0)
- return "equality assertion returned zero when false!";
- char *message;
- if (!get_message(&message, result))
- return "false equality assertion returned malformed message!";
- if (strcmp(message, "'14' is not equal to '15'") != 0)
- return "false equality assertion returned incorrect message!";
-
- return 0;
-}
-
-
-int main()
-{
- run_test("check LILY_INIT()", check_init);
- run_test("check basic assertion", check_assert);
- run_test("check other asserts", check_other_asserts);
-
- printf("all tests finished.\n");
- return 0;
-}
diff --git a/tests/tests.h b/tests/tests.h
new file mode 100644
index 0000000..cbe0f02
--- /dev/null
+++ b/tests/tests.h
@@ -0,0 +1,7 @@
+#ifndef LILY_META_TESTS_H
+#define LILY_META_TESTS_H
+
+void run_test(const char *name, const char* (*fp)());
+int validate_message(const char* received, const char* expected,
+ const char* FILE, unsigned int LINE);
+#endif