]> git.ozlabs.org Git - ccan/blob - ccan/utf8/test/run-encode.c
ccan/utf8: new module.
[ccan] / ccan / utf8 / test / run-encode.c
1 #include <ccan/utf8/utf8.h>
2 /* Include the C files directly. */
3 #include <ccan/utf8/utf8.c>
4 #include <ccan/tap/tap.h>
5
6 int main(int argc, char **argv)
7 {
8         int i;
9         char dest[UTF8_MAX_LEN];
10
11         plan_tests(1 + 0x10FFFF + 1);
12
13         for (i = 0; i < 1; i++)
14                 ok1(utf8_encode(i, dest) == 0 && errno == ERANGE);
15         for (; i <= 0x7F; i++)
16                 ok1(utf8_encode(i, dest) == 1);
17         for (; i <= 0x7FF; i++)
18                 ok1(utf8_encode(i, dest) == 2);
19         for (; i <= 0xD7FF; i++)
20                 ok1(utf8_encode(i, dest) == 3);
21         for (; i <= 0xDFFF; i++)
22                 ok1(utf8_encode(i, dest) == 0 && errno == ERANGE);
23         for (; i <= 0xFFFF; i++)
24                 ok1(utf8_encode(i, dest) == 3);
25         for (; i <= 0x10FFFF; i++)
26                 ok1(utf8_encode(i, dest) == 4);
27         ok1(utf8_encode(i, dest) == 0 && errno == ERANGE);
28
29         return exit_status();
30 }