28 lines
922 B
C
28 lines
922 B
C
#include "../src/Drv/lcd/lcd_text.h"
|
|
#include "test_common.h"
|
|
|
|
int main(void)
|
|
{
|
|
uint32_t unicode = 0;
|
|
const unsigned char ascii[] = "A";
|
|
const unsigned char u2[] = {0xC2, 0xA2, 0x00}; /* U+00A2 */
|
|
const unsigned char u3[] = {0xE4, 0xBD, 0xA0, 0x00}; /* U+4F60 */
|
|
const unsigned char invalid[] = {0xF0, 0x00}; /* 4-byte start not supported */
|
|
const unsigned char truncated2[] = {0xC2, 0x00};
|
|
const unsigned char truncated3[] = {0xE4, 0xBD, 0x00};
|
|
|
|
ASSERT_EQ_INT(1, utf8_next(ascii, &unicode));
|
|
ASSERT_EQ_U32(0x41u, unicode);
|
|
|
|
ASSERT_EQ_INT(2, utf8_next(u2, &unicode));
|
|
ASSERT_EQ_U32(0x00A2u, unicode);
|
|
|
|
ASSERT_EQ_INT(3, utf8_next(u3, &unicode));
|
|
ASSERT_EQ_U32(0x4F60u, unicode);
|
|
|
|
ASSERT_EQ_INT(0, utf8_next(invalid, &unicode));
|
|
ASSERT_EQ_INT(0, utf8_next(truncated2, &unicode));
|
|
ASSERT_EQ_INT(0, utf8_next(truncated3, &unicode));
|
|
return 0;
|
|
}
|