diff options
| author | 2023-02-05 11:44:37 +0000 | |
|---|---|---|
| committer | 2023-02-05 11:44:37 +0000 | |
| commit | f63d6cdd3df24d869437f9f689cbfff5d4bfb435 (patch) | |
| tree | ee6c907242abe6d27edd87cf87979db6c928693a /test_creole.c | |
prototype bytecode interpreter
Diffstat (limited to 'test_creole.c')
| -rw-r--r-- | test_creole.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test_creole.c b/test_creole.c new file mode 100644 index 0000000..b8dc008 --- /dev/null +++ b/test_creole.c @@ -0,0 +1,44 @@ +#include "greatest.h" +GREATEST_MAIN_DEFS(); +#include "creole.c" + +/************************************************************************** + * Reader suite + *************************************************************************/ +#define reader_lit(r, s) do { \ + r.p = (unsigned char *)s; \ + r.left = sizeof(s) - 1; \ +} while(0) + +TEST reader_test_basic(struct creole_reader *r) { + size_t i = 0; + unsigned char *s = r->p; + size_t len = r->left; + + for (i = 0; i < len; i++) { + ASSERT_EQ(read_eof(r), 0); + ASSERT_EQ(read(r), s[i]); + } + + for (i = 0; i < 5; i++) { + ASSERT_EQ(read_eof(r), 1); + ASSERT_EQ(read(r), -1); + } + PASS(); +} + +SUITE(reader) { + struct creole_reader r = {0}; + + reader_lit(r, "abcdefg"); + RUN_TEST1(reader_test_basic, &r); + + reader_lit(r, ""); + RUN_TEST1(reader_test_basic, &r); +} + +int main(int argc, char *argv[]) { + GREATEST_MAIN_BEGIN(); + RUN_SUITE(reader); + GREATEST_MAIN_END(); +} |
