@@ -50,6 +50,80 @@ void test_generic_converters_alias()
5050 }
5151}
5252
53+ struct test_enc_types {
54+ char * name ;
55+ int type ;
56+ };
57+
58+ void test_generic_encoding_types ()
59+ {
60+ int encoding_type ;
61+ const char * encoding_name ;
62+ int i ;
63+ struct test_enc_types encodings [] = {
64+ {"ShiftJIS" , FLB_GENERIC_SJIS },
65+ {"GB18030" , FLB_GENERIC_GB18030 },
66+ {"UHC" , FLB_GENERIC_UHC },
67+ {"Big5" , FLB_GENERIC_BIG5 },
68+ {"Win866" , FLB_GENERIC_WIN866 },
69+ {"Win874" , FLB_GENERIC_WIN874 },
70+ {"Win1250" , FLB_GENERIC_WIN1250 },
71+ {"Win1251" , FLB_GENERIC_WIN1251 },
72+ {"Win1252" , FLB_GENERIC_WIN1252 },
73+ {"Win1253" , FLB_GENERIC_WIN1253 },
74+ {"Win1254" , FLB_GENERIC_WIN1254 },
75+ {"Win1255" , FLB_GENERIC_WIN1255 },
76+ {"Win1256" , FLB_GENERIC_WIN1256 },
77+ {"GBK" , FLB_GENERIC_GBK },
78+ {NULL , FLB_GENERIC_UNSPECIFIED },
79+ };
80+
81+ for (i = 0 ; encodings [i ].name != NULL ; i ++ ) {
82+ encoding_type = flb_unicode_generic_select_encoding_type (encodings [i ].name );
83+ if (TEST_CHECK (encoding_type == encodings [i ].type )) {
84+ TEST_MSG ("supported encoding type selection %d check failed with %s" ,
85+ encoding_type ,
86+ encodings [i ].name );
87+ }
88+ }
89+
90+ encoding_name = "Nonexisitent" ;
91+ encoding_type = flb_unicode_generic_select_encoding_type (encoding_name );
92+ if (!TEST_CHECK (encoding_type == FLB_GENERIC_UNSPECIFIED )) {
93+ TEST_MSG ("supported converter check unexpectedly succeeded with %s" , encoding_name );
94+ return ;
95+ }
96+ }
97+
98+ void test_generic_alias_encoding_types ()
99+ {
100+ int encoding_type ;
101+ int i ;
102+ struct test_enc_types encodings [] = {
103+ {"SJIS" , FLB_GENERIC_SJIS },
104+ {"CP866" , FLB_GENERIC_WIN866 },
105+ {"CP874" , FLB_GENERIC_WIN874 },
106+ {"CP932" , FLB_GENERIC_SJIS },
107+ {"CP936" , FLB_GENERIC_GBK },
108+ {"CP950" , FLB_GENERIC_BIG5 },
109+ {"CP1250" , FLB_GENERIC_WIN1250 },
110+ {"CP1251" , FLB_GENERIC_WIN1251 },
111+ {"CP1252" , FLB_GENERIC_WIN1252 },
112+ {"CP1253" , FLB_GENERIC_WIN1253 },
113+ {"CP1254" , FLB_GENERIC_WIN1254 },
114+ {"CP1255" , FLB_GENERIC_WIN1255 },
115+ {"CP1256" , FLB_GENERIC_WIN1256 },
116+ {NULL , FLB_GENERIC_UNSPECIFIED },
117+ };
118+
119+ for (i = 0 ; encodings [i ].name != NULL ; i ++ ) {
120+ encoding_type = flb_unicode_generic_select_encoding_type (encodings [i ].name );
121+ if (!TEST_CHECK (encoding_type == encodings [i ].type )) {
122+ TEST_MSG ("supported converter check failed with %s" , encodings [i ].name );
123+ }
124+ }
125+ }
126+
53127void test_generic_conversions_sjis ()
54128{
55129 /* "こんにちは" in SJIS */
@@ -277,6 +351,8 @@ void test_all_generic_conversions()
277351TEST_LIST = {
278352 { "generic_converters" , test_generic_converters },
279353 { "generic_converters_alias" , test_generic_converters_alias },
354+ { "generic_encoding_types" , test_generic_encoding_types },
355+ { "generic_alias_encoding_types" , test_generic_alias_encoding_types },
280356 { "generic_conversions_sjis" , test_generic_conversions_sjis },
281357 { "generic_conversions_gbk" , test_generic_conversions_gbk },
282358 { "generic_conversions_big5" , test_generic_conversions_big5 },
0 commit comments