diff options
| author | 2023-02-07 17:48:28 +0000 | |
|---|---|---|
| committer | 2023-02-07 17:48:28 +0000 | |
| commit | 705346372df1fee924c3f6d8bb7413fa2ed587e8 (patch) | |
| tree | e5b4d2e04935faf584ff45f92b209057cfbafaae /c_test/creole.c | |
| parent | move python (diff) | |
move tests
Diffstat (limited to 'c_test/creole.c')
| -rw-r--r-- | c_test/creole.c | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/c_test/creole.c b/c_test/creole.c new file mode 100644 index 0000000..5f73cd6 --- /dev/null +++ b/c_test/creole.c @@ -0,0 +1,104 @@ +#include "greatest.h" +GREATEST_MAIN_DEFS(); +#include "../creole.c" + +/************************************************************************** + * Reader + *************************************************************************/ +#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); +} + +#if 0 +TEST encode_decode_byte_seq(struct seq *s) { + unsigned char buf[7]; + struct creole_reader r = {0}; + struct word w; + creole_word i = 0; + + for (;;) { + ASSERT_EQ(creole_encode(i, s->encode_to, s->high_bits, + buf), 1); + r.p = buf; + r.left = s->encode_to; + ASSERT_EQ(decode_seq(&r, &w), 1); + ASSERT_EQ(w.len, s->encode_to); + ASSERT_EQ(w.high_bits, s->high_bits); + ASSERT_EQ(w.word, i); + + if (i == s->max) + break; + i++; + } + + PASS(); +} +SUITE(pseudo_utf8_encode_all) { + struct seq s; + + s.max = 0x7F; + s.encode_to = 1; + s.high_bits = 0; + RUN_TEST1(encode_decode_byte_seq, &s); + + for (s.high_bits = 0; s.high_bits < 16; s.high_bits++) { + s.max = 0x7F; + s.encode_to = 2; + RUN_TEST1(encode_decode_byte_seq, &s); + + s.max = 0xFFF; + s.encode_to = 3; + RUN_TEST1(encode_decode_byte_seq, &s); + + s.max = 0x1FFFF; + s.encode_to = 4; + RUN_TEST1(encode_decode_byte_seq, &s); + + s.max = 0x3FFFFF; + s.encode_to = 5; + RUN_TEST1(encode_decode_byte_seq, &s); + + s.max = 0x7FFFFFF; + s.encode_to = 6; + RUN_TEST1(encode_decode_byte_seq, &s); + + s.max = 0xFFFFFFFF; + s.encode_to = 7; + RUN_TEST1(encode_decode_byte_seq, &s); + } +} +#endif + +int main(int argc, char *argv[]) { + GREATEST_MAIN_BEGIN(); + RUN_SUITE(reader); + GREATEST_MAIN_END(); +} |
