50 lines
1.4 KiB
C
50 lines
1.4 KiB
C
/* See LICENSE file for copyright and license details. */
|
|
#ifndef UTIL_H
|
|
#define UTIL_H
|
|
|
|
#include "../gen/types.h"
|
|
#include "../grapheme.h"
|
|
|
|
#undef MIN
|
|
#define MIN(x,y) ((x) < (y) ? (x) : (y))
|
|
#undef LEN
|
|
#define LEN(x) (sizeof(x) / sizeof(*(x)))
|
|
|
|
struct unit_test_next_break {
|
|
const char *description;
|
|
struct {
|
|
const uint_least32_t *src;
|
|
size_t srclen;
|
|
} input;
|
|
struct {
|
|
size_t ret;
|
|
} output;
|
|
};
|
|
|
|
struct unit_test_next_break_utf8 {
|
|
const char *description;
|
|
struct {
|
|
const char *src;
|
|
size_t srclen;
|
|
} input;
|
|
struct {
|
|
size_t ret;
|
|
} output;
|
|
};
|
|
|
|
int run_break_tests(size_t (*next_break)(const uint_least32_t *, size_t),
|
|
const struct break_test *test, size_t testlen,
|
|
const char *);
|
|
int run_unit_tests(int (*unit_test_callback)(const void *, size_t, const char *,
|
|
const char *), const void *, size_t, const char *, const char *);
|
|
|
|
int unit_test_callback_next_break(const struct unit_test_next_break *, size_t,
|
|
size_t (*next_break)(const uint_least32_t *, size_t),
|
|
const char *, const char *);
|
|
int unit_test_callback_next_break_utf8(const struct unit_test_next_break_utf8 *,
|
|
size_t,
|
|
size_t (*next_break_utf8)(const char *, size_t),
|
|
const char *, const char *);
|
|
|
|
#endif /* UTIL_H */
|