File: utf8.c

package info (click to toggle)
libgit2 1.9.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 60,804 kB
  • sloc: ansic: 203,436; javascript: 2,458; sh: 1,763; python: 384; perl: 99; php: 65; makefile: 33
file content (20 lines) | stat: -rw-r--r-- 820 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "clar_libgit2.h"
#include "utf8.h"

void test_utf8__char_length(void)
{
	cl_assert_equal_i(0, git_utf8_char_length("", 0));
	cl_assert_equal_i(1, git_utf8_char_length("$", 1));
	cl_assert_equal_i(5, git_utf8_char_length("abcde", 5));
	cl_assert_equal_i(1, git_utf8_char_length("\xc2\xa2", 2));
	cl_assert_equal_i(2, git_utf8_char_length("\x24\xc2\xa2", 3));
	cl_assert_equal_i(1, git_utf8_char_length("\xf0\x90\x8d\x88", 4));

	/* uncontinued character counted as single characters */
	cl_assert_equal_i(2, git_utf8_char_length("\x24\xc2", 2));
	cl_assert_equal_i(3, git_utf8_char_length("\x24\xc2\xc2\xa2", 4));

	/* invalid characters are counted as single characters */
	cl_assert_equal_i(4, git_utf8_char_length("\x24\xc0\xc0\x34", 4));
	cl_assert_equal_i(4, git_utf8_char_length("\x24\xf5\xfd\xc2", 4));
}