summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/assertions.c50
-rw-r--r--tests/helpers.c2
-rw-r--r--tests/main.c4
-rw-r--r--tests/tests.h6
4 files changed, 11 insertions, 51 deletions
diff --git a/tests/assertions.c b/tests/assertions.c
index d95f52a..5fb5e8d 100644
--- a/tests/assertions.c
+++ b/tests/assertions.c
@@ -4,51 +4,13 @@
#include "lily-test.h"
#include "tests.h"
-// basic assertion
-lily_test wrap_assert_msg(int statement, const char *message)
+const char *test_LILY_LOCATION()
{
- // if you move the location of this line, BE SURE TO UPDATE THE
- // TEST BELOW so that it expects the correct line!
- lily_assert_msg(statement, 1, message, NULL);
- return LILY_SUCCESS;
-}
-
-const char* basic_assertion()
-{
- lily_test result = wrap_assert_msg(1, "should succeed");
- if (result.error != 0)
- return "assert_msg() incorrectly returned non-zero error on true statement!";
-
- result = wrap_assert_msg(0, "should fail");
- if (result.error == 0)
- return "assert_msg() incorrectly returned zero error on false statement!";
- if (strcmp(result.message, "should fail") != 0)
- return "assert_msg() returned with incorrect message!";
- if (strcmp(result.location, "tests/assertions.c:12") != 0)
- return "assert_msg() returned with incorrect location!";
-
- return 0;
-}
-
-
-// assert equal
-lily_test wrap_assert_equal(int x, int y)
-{
- lily_assert_equal(x, y);
- return LILY_SUCCESS;
-}
-
-const char* assert_equal()
-{
- lily_test result = wrap_assert_equal(15, 15);
- if (result.error != LILY_NO_ERROR)
- return "lily_assert_equal incorrectly returned an error on equal inputs!";
-
- result = wrap_assert_equal(14, 15);
- if (result.error != LILY_NULL_DATA)
- return "lily_assert_equal returned an incorrect error on non-equal inputs!";
- if (strcmp(result.message, "x is not equal to y") != 0)
- return "lily_assert_equal returned incorrect message for non-equal inputs!";
+ // if you move this line, you MUST update the expected string!
+ const char *location = LILY_LOCATION;
+ int diff = strcmp(location, "tests/assertions.c:10");
+ if (diff != 0)
+ return "LILY_LOCATION did not resolve correctly!";
return 0;
}
diff --git a/tests/helpers.c b/tests/helpers.c
index cdf72b4..37afcae 100644
--- a/tests/helpers.c
+++ b/tests/helpers.c
@@ -3,7 +3,7 @@
#include "lily-test.h"
#include "tests.h"
-void run_test(const char *name, const char* (*test)())
+void _run_test(const char *name, const char* (*test)())
{
printf("%s... ", name);
const char *result = test();
diff --git a/tests/main.c b/tests/main.c
index 69bf65e..0659713 100644
--- a/tests/main.c
+++ b/tests/main.c
@@ -8,9 +8,7 @@
int main()
{
- run_test("check lily_assert_msg()", basic_assertion);
- run_test("check lily_assert_equal()", assert_equal);
+ run_test(test_LILY_LOCATION);
- printf("all tests finished.\n");
return 0;
}
diff --git a/tests/tests.h b/tests/tests.h
index e1d7e04..eab0115 100644
--- a/tests/tests.h
+++ b/tests/tests.h
@@ -1,12 +1,12 @@
#ifndef LILY_META_TESTS_H
#define LILY_META_TESTS_H
-void run_test(const char *name, const char* (*test)());
+#define run_test(test) _run_test(#test, test)
+void _run_test(const char *name, const char* (*test)());
int validate_message(const char* received, const char* expected,
const char* FILE, unsigned int LINE);
// test cases
-const char* basic_assertion();
-const char* assert_equal();
+const char* test_LILY_LOCATION();
#endif