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 13struct 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 26struct 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 39int 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 *); 42int 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 46int 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 *); 50int 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 */