util.h (1612B)
1 /* See LICENSE file for copyright and license details. */ 2 #ifndef UTIL_H 3 #define UTIL_H 4 5 #include "../gen/types.h" 6 #include "../grapheme.h" 7 8 #undef MIN 9 #define MIN(x, y) ((x) < (y) ? (x) : (y)) 10 #undef LEN 11 #define LEN(x) (sizeof(x) / sizeof(*(x))) 12 13 struct unit_test_next_break { 14 const char *description; 15 16 struct { 17 const uint_least32_t *src; 18 size_t srclen; 19 } input; 20 21 struct { 22 size_t ret; 23 } output; 24 }; 25 26 struct unit_test_next_break_utf8 { 27 const char *description; 28 29 struct { 30 const char *src; 31 size_t srclen; 32 } input; 33 34 struct { 35 size_t ret; 36 } output; 37 }; 38 39 int run_break_tests(size_t (*next_break)(const uint_least32_t *, size_t), 40 const struct break_test *test, size_t testlen, 41 const char *); 42 int run_unit_tests(int (*unit_test_callback)(const void *, size_t, const char *, 43 const char *), 44 const void *, size_t, const char *, const char *); 45 46 int unit_test_callback_next_break(const struct unit_test_next_break *, size_t, 47 size_t (*next_break)(const uint_least32_t *, 48 size_t), 49 const char *, const char *); 50 int unit_test_callback_next_break_utf8(const struct unit_test_next_break_utf8 *, 51 size_t, 52 size_t (*next_break_utf8)(const char *, 53 size_t), 54 const char *, const char *); 55 56 #endif /* UTIL_H */