📄 converter.tsy
字号:
ASSERT_STRING(name, "result-a");}//# TESTCASE// title: idn_converter_addalias() - #6// group: generic{ r = idn_converter_addalias("test", "result-a", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-b", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-c", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-d", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-e", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-f", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-g", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-h", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-i", 1); ASSERT_RESULT(r, idn_success); name = idn_converter_getrealname("test"); ASSERT_STRING(name, "result-i");}//# TESTCASE// title: idn_converter_addalias() - null character// group: generic{ r = idn_converter_addalias("", "result", 0); ASSERT_RESULT(r, idn_invalid_syntax); r = idn_converter_addalias("test", "", 0); ASSERT_RESULT(r, idn_invalid_syntax); r = idn_converter_addalias("", "", 0); ASSERT_RESULT(r, idn_invalid_syntax);}//# TESTCASE// title: idn_converter_resetalias() - no alias added// group: generic{ r = idn_converter_resetalias(); ASSERT_RESULT(r, idn_success); name = idn_converter_getrealname("test"); ASSERT_STRING(name, "test");}//# TESTCASE// title: idn_converter_resetalias() - one alias added// group: generic{ r = idn_converter_addalias("test", "result-a", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_resetalias(); ASSERT_RESULT(r, idn_success); name = idn_converter_getrealname("test"); ASSERT_STRING(name, "test");}//# TESTCASE// title: idn_converter_resetalias() - many aliases added// group: generic{ r = idn_converter_addalias("test", "result-a", 1); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-b", 1); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-c", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-d", 1); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-e", 1); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-f", 1); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-g", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-h", 0); ASSERT_RESULT(r, idn_success); r = idn_converter_addalias("test", "result-i", 1); ASSERT_RESULT(r, idn_success); r = idn_converter_resetalias(); ASSERT_RESULT(r, idn_success); name = idn_converter_getrealname("test"); ASSERT_STRING(name, "test");}//# TESTCASE// title: idn_converter_aliasfile() - boundary condition// group: generic quiet{ r = idn_converter_aliasfile(""); ASSERT_RESULT(r, idn_nofile); r = idn_converter_aliasfile("idnalias-not-found.conf"); ASSERT_RESULT(r, idn_nofile);}//# TESTCASE// title: idn_converter_aliasfile() - long line// group: generic quiet{ char line[LINEBUF_SIZE]; const char *entry = "aaaaaaaaaa"; int i; int len; len = strlen(entry); for (i = 0; i < LINEBUF_SIZE - len; i += len) { memcpy(line + i, entry, len); } *(line + (LINEBUF_SIZE / 2)) = ' '; *(line + i) = '\0'; create_conf_file(CONF_FILENAME, 0, line, NULL); r = idn_converter_aliasfile(CONF_FILENAME); ASSERT_RESULT(r, idn_invalid_syntax);}//# TESTCASE// title: idn_converter_aliasfile() - no new line at end of file// group: generic quiet{ create_conf_file(CONF_FILENAME, CONF_NO_EOF_NEWLINE, "*.ISO_8859-1 ISO-8859-1", "*.ISO_8859-2 ISO-8859-1", "*.SJIS Shift_JIS", "*.Shift_JIS Shift_JIS", "ja_JP.EUC eucJP", "japanese eucJP", NULL); r = idn_converter_aliasfile(CONF_FILENAME); ASSERT_RESULT(r, idn_success); name = idn_converter_getrealname("japanese"); ASSERT_STRING(name, "eucJP");}//# TESTCASE// title: idn_converter_aliasfile() - invalid entries// group: generic quiet{ create_conf_file(CONF_FILENAME, 0, "*.ISO_8859-1 ISO-8859-1", "*.ISO_8859-2 ISO-8859-1", "*.SJIS", "*.Shift_JIS", "ja_JP.EUC eucJP", "japanese eucJP", NULL); r = idn_converter_aliasfile(CONF_FILENAME); ASSERT_RESULT(r, idn_invalid_syntax);}//# TESTCASE// title: idn_converter_aliasfile() - more then two items in one line// group: generic quiet{ create_conf_file(CONF_FILENAME, 0, "*.ISO_8859-1 ISO-8859-1", "*.ISO_8859-2 ISO-8859-1", "*.SJIS Shift_JIS ko_KR.EUC", "*.Shift_JIS Shift_JIS", "*.big5 Big5 *.big5 *.big5", "ja_JP.EUC eucJP", "japanese eucJP", NULL); r = idn_converter_aliasfile(CONF_FILENAME); ASSERT_RESULT(r, idn_success); name = idn_converter_getrealname("japanese"); ASSERT_STRING(name, "eucJP");}//# TESTCASE// title: idn_converter_localencoding() - #1// group: localencoding{ r = idn_converter_create("test.UTF-8", &ctx, IDN_CONVERTER_DELAYEDOPEN); ASSERT_RESULT(r, idn_success); name = idn_converter_localencoding(ctx); ASSERT_STRING(name, "UTF-8"); idn_converter_destroy(ctx);}//# TESTCASE// title: idn_converter_localencoding() - #2// group: localencoding{ r = idn_converter_create("test.KOI8-R", &ctx, IDN_CONVERTER_DELAYEDOPEN);#ifdef WITHOUT_ICONV ASSERT_RESULT(r, idn_invalid_name);#else ASSERT_RESULT(r, idn_success); name = idn_converter_localencoding(ctx); ASSERT_STRING(name, "KOI8-R"); idn_converter_destroy(ctx);#endif}//# TESTCASE// title: idn_converter_localencoding() - #3// group: localencoding{ r = idn_converter_create("unresolvedname", &ctx, IDN_CONVERTER_DELAYEDOPEN);#ifdef WITHOUT_ICONV ASSERT_RESULT(r, idn_invalid_name);#else ASSERT_RESULT(r, idn_success); name = idn_converter_localencoding(ctx); ASSERT_STRING(name, "unresolvedname"); idn_converter_destroy(ctx);#endif}//# TESTCASE// title: idn_converter_encodingtype()// group: conversion{ ASSERT_INT(idn_converter_encodingtype(punycode_ctx), IDN_ACE_STRICTCASE); ASSERT_INT(idn_converter_encodingtype(utf8_ctx), IDN_NONACE);#ifndef WITHOUT_ICONV ASSERT_INT(idn_converter_encodingtype(eucjp_ctx), IDN_NONACE);#endif}//# TESTCASE// title: idn_converter_isasciicompatible()// group: conversion{ ASSERT_INT(idn_converter_isasciicompatible(punycode_ctx), 1); ASSERT_INT(idn_converter_isasciicompatible(utf8_ctx), 0);#ifndef WITHOUT_ICONV ASSERT_INT(idn_converter_isasciicompatible(eucjp_ctx), 0);#endif}//# TESTCASE// title: idn_converter_convfromucs4()// group: conversion quiet{ unsigned long from_nullchar = 0x0000; unsigned long from[2] = { UCS4_NAME, 0x0000 }; char to[1]; char to_punycode[PUNYCODE_NAME_SIZE];#ifndef WITHOUT_ICONV char to_eucjp[EUCJP_NAME_SIZE];#endif r = idn_converter_convfromucs4(punycode_ctx, &from_nullchar, to, 0); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convfromucs4(punycode_ctx, &from_nullchar, to, 1); ASSERT_RESULT(r, idn_success); ASSERT_STRING(to, ""); r = idn_converter_convfromucs4(punycode_ctx, from, to_punycode, 0); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convfromucs4(punycode_ctx, from, to_punycode, PUNYCODE_NAME_SIZE - 1); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convfromucs4(punycode_ctx, from, to_punycode, PUNYCODE_NAME_SIZE); ASSERT_RESULT(r, idn_success); ASSERT_STRING(to_punycode, PUNYCODE_NAME);#ifndef WITHOUT_ICONV r = idn_converter_convfromucs4(eucjp_ctx, &from_nullchar, to, 0); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convfromucs4(eucjp_ctx, &from_nullchar, to, 1); ASSERT_RESULT(r, idn_success); ASSERT_STRING(to, ""); r = idn_converter_convfromucs4(eucjp_ctx, from, to_eucjp, 0); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convfromucs4(eucjp_ctx, from, to_eucjp, EUCJP_NAME_SIZE - 1); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convfromucs4(eucjp_ctx, from, to_eucjp, EUCJP_NAME_SIZE); ASSERT_RESULT(r, idn_success); ASSERT_STRING(to_eucjp, EUCJP_NAME); from[0] = 0x80000000; r = idn_converter_convfromucs4(eucjp_ctx, from, to_eucjp, EUCJP_NAME_SIZE); ASSERT_RESULT(r, idn_invalid_encoding); from[0] = UCS4_INVALID_NAME_FOR_EUCJP; r = idn_converter_convfromucs4(eucjp_ctx, from, to_eucjp, EUCJP_NAME_SIZE); ASSERT_RESULT(r, idn_nomapping);#endif}//# TESTCASE// title: idn_converter_convtoucs4()// group: conversion{ unsigned long to_nullchar = 0x0000; unsigned long to[1]; unsigned long punycode_to[2];#ifndef WITHOUT_ICONV unsigned long eucjp_to[2];#endif unsigned long ucs4_name[2] = { UCS4_NAME, 0x0000 }; r = idn_converter_convtoucs4(punycode_ctx, "", to, 0); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convtoucs4(punycode_ctx, "", to, 1); ASSERT_RESULT(r, idn_success); ASSERT_UCS4STRING(to, &to_nullchar); r = idn_converter_convtoucs4(punycode_ctx, PUNYCODE_NAME, punycode_to, 0); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convtoucs4(punycode_ctx, PUNYCODE_NAME, punycode_to, 1); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convtoucs4(punycode_ctx, PUNYCODE_NAME, punycode_to, 2); ASSERT_RESULT(r, idn_success); ASSERT_UCS4STRING_THRU(punycode_to, ucs4_name);#ifndef WITHOUT_ICONV r = idn_converter_convtoucs4(eucjp_ctx, "", to, 0); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convtoucs4(eucjp_ctx, "", to, 1); ASSERT_RESULT(r, idn_success); ASSERT_UCS4STRING(to, &to_nullchar); r = idn_converter_convtoucs4(eucjp_ctx, EUCJP_NAME, eucjp_to, 0); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convtoucs4(eucjp_ctx, EUCJP_NAME, eucjp_to, 1); ASSERT_RESULT(r, idn_buffer_overflow); r = idn_converter_convtoucs4(eucjp_ctx, EUCJP_NAME, eucjp_to, 2); ASSERT_RESULT(r, idn_success); ASSERT_UCS4STRING(to, &to_nullchar); r = idn_converter_convtoucs4(eucjp_ctx, "\xFF\xFF", eucjp_to, 2); ASSERT_RESULT(r, idn_invalid_encoding);#endif}//# TESTCASE// title: idn_converter_destroy(), idn_converter_incrref()// group: generic{ idn_converter_t ctx2; r = idn_converter_create(IDN_UTF8_ENCODING_NAME, &ctx, 0); ASSERT_RESULT(r, idn_success); idn_converter_destroy(ctx); r = idn_converter_create(IDN_UTF8_ENCODING_NAME, &ctx2, 0); ASSERT_RESULT(r, idn_success); idn_converter_incrref(ctx2); ASSERT_RESULT(r, idn_success); idn_converter_destroy(ctx2); idn_converter_destroy(ctx2);}//# TESTCASE// title: idn_converter_register()// group: generic{ char eucjp_to[3]; unsigned long ucs4_to[2]; unsigned long ucs4_name[2] = { UCS4_NAME, 0x0000 }; r = idn_converter_register("test", NULL, NULL, idn_test_encode, idn_test_decode, NULL, IDN_ACE_STRICTCASE); ASSERT_RESULT(r, idn_success); r = idn_converter_create("test", &ctx, 0); ASSERT_RESULT(r, idn_success); r = idn_converter_convfromucs4(ctx, ucs4_name, eucjp_to, sizeof(eucjp_to)); ASSERT_RESULT(r, idn_success); ASSERT_STRING(eucjp_to, EUCJP_NAME); r = idn_converter_convtoucs4(ctx, "", ucs4_to, SIZEOFUCS4(ucs4_to)); ASSERT_RESULT(r, idn_success); ASSERT_UCS4STRING(ucs4_to, ucs4_name); idn_converter_destroy(ctx);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -