Implement read/write tests for Unicode.
This commit is contained in:
parent
8e08a72eda
commit
bd84933b6b
@ -42,6 +42,9 @@
|
|||||||
|
|
||||||
void test_guac_unicode() {
|
void test_guac_unicode() {
|
||||||
|
|
||||||
|
int codepoint;
|
||||||
|
char buffer[16];
|
||||||
|
|
||||||
/* Test character length */
|
/* Test character length */
|
||||||
CU_ASSERT_EQUAL(1, guac_utf8_charsize(UTF8_1b[0]));
|
CU_ASSERT_EQUAL(1, guac_utf8_charsize(UTF8_1b[0]));
|
||||||
CU_ASSERT_EQUAL(2, guac_utf8_charsize(UTF8_2b[0]));
|
CU_ASSERT_EQUAL(2, guac_utf8_charsize(UTF8_2b[0]));
|
||||||
@ -60,8 +63,35 @@ void test_guac_unicode() {
|
|||||||
CU_ASSERT_EQUAL(5, guac_utf8_strlen("hello"));
|
CU_ASSERT_EQUAL(5, guac_utf8_strlen("hello"));
|
||||||
CU_ASSERT_EQUAL(9, guac_utf8_strlen("guacamole"));
|
CU_ASSERT_EQUAL(9, guac_utf8_strlen("guacamole"));
|
||||||
|
|
||||||
/*int guac_utf8_write(int codepoint, char* utf8, int length);
|
/* Test writes */
|
||||||
int guac_utf8_read(const char* utf8, int length, int* codepoint);*/
|
CU_ASSERT_EQUAL(1, guac_utf8_write(0x00065, &(buffer[0]), 10));
|
||||||
|
CU_ASSERT_EQUAL(2, guac_utf8_write(0x00654, &(buffer[1]), 9));
|
||||||
|
CU_ASSERT_EQUAL(3, guac_utf8_write(0x00876, &(buffer[3]), 7));
|
||||||
|
CU_ASSERT_EQUAL(4, guac_utf8_write(0x12345, &(buffer[6]), 4));
|
||||||
|
CU_ASSERT_EQUAL(0, guac_utf8_write(0x00066, &(buffer[10]), 0));
|
||||||
|
|
||||||
|
/* Test result of write */
|
||||||
|
CU_ASSERT(memcmp("\x65", &(buffer[0]), 1) == 0); /* U+0065 */
|
||||||
|
CU_ASSERT(memcmp("\xD9\x94", &(buffer[1]), 2) == 0); /* U+0654 */
|
||||||
|
CU_ASSERT(memcmp("\xE0\xA1\xB6", &(buffer[3]), 3) == 0); /* U+0876 */
|
||||||
|
CU_ASSERT(memcmp("\xF0\x92\x8D\x85", &(buffer[6]), 4) == 0); /* U+12345 */
|
||||||
|
|
||||||
|
/* Test reads */
|
||||||
|
|
||||||
|
CU_ASSERT_EQUAL(1, guac_utf8_read(&(buffer[0]), 10, &codepoint));
|
||||||
|
CU_ASSERT_EQUAL(0x0065, codepoint);
|
||||||
|
|
||||||
|
CU_ASSERT_EQUAL(2, guac_utf8_read(&(buffer[1]), 9, &codepoint));
|
||||||
|
CU_ASSERT_EQUAL(0x0654, codepoint);
|
||||||
|
|
||||||
|
CU_ASSERT_EQUAL(3, guac_utf8_read(&(buffer[3]), 7, &codepoint));
|
||||||
|
CU_ASSERT_EQUAL(0x0876, codepoint);
|
||||||
|
|
||||||
|
CU_ASSERT_EQUAL(4, guac_utf8_read(&(buffer[6]), 4, &codepoint));
|
||||||
|
CU_ASSERT_EQUAL(0x12345, codepoint);
|
||||||
|
|
||||||
|
CU_ASSERT_EQUAL(0, guac_utf8_read(&(buffer[10]), 0, &codepoint));
|
||||||
|
CU_ASSERT_EQUAL(0x12345, codepoint);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user