|
6 | 6 | /* ////////////////////////////////////////////////////////////////////////////////////// |
7 | 7 | * main |
8 | 8 | */ |
| 9 | +#ifdef TB_CONFIG_MODULE_HAVE_CHARSET |
| 10 | +static tb_void_t tb_demo_utf8_case_test(tb_char_t const* input, tb_char_t const* lower_expected, tb_char_t const* upper_expected) |
| 11 | +{ |
| 12 | + tb_char_t* lower = tb_strdup(input); |
| 13 | + tb_char_t* upper = tb_strdup(input); |
| 14 | + tb_bool_t lower_ok = tb_false; |
| 15 | + tb_bool_t upper_ok = tb_false; |
| 16 | + if (lower && upper) |
| 17 | + { |
| 18 | + tb_long_t lower_size = tb_charset_utf8_tolower(lower, tb_strlen(lower)); |
| 19 | + tb_long_t upper_size = tb_charset_utf8_toupper(upper, tb_strlen(upper)); |
| 20 | + lower_ok = (lower_size >= 0 && !tb_strcmp(lower, lower_expected)); |
| 21 | + upper_ok = (upper_size >= 0 && !tb_strcmp(upper, upper_expected)); |
| 22 | + } |
| 23 | + |
| 24 | + if (lower_ok) tb_trace_i("utf8 lower ok: %s -> %s", input, lower); |
| 25 | + else tb_trace_i("utf8 lower failed: %s -> %s, expect: %s", input, lower? lower : "(null)", lower_expected); |
| 26 | + |
| 27 | + if (upper_ok) tb_trace_i("utf8 upper ok: %s -> %s", input, upper); |
| 28 | + else tb_trace_i("utf8 upper failed: %s -> %s, expect: %s", input, upper? upper : "(null)", upper_expected); |
| 29 | + |
| 30 | + if (lower) tb_free(lower); |
| 31 | + if (upper) tb_free(upper); |
| 32 | +} |
| 33 | +#endif |
| 34 | + |
9 | 35 | tb_int_t tb_demo_other_test_main(tb_int_t argc, tb_char_t** argv) |
10 | 36 | { |
| 37 | +#ifdef TB_CONFIG_MODULE_HAVE_CHARSET |
| 38 | + tb_demo_utf8_case_test("Hello", "hello", "HELLO"); |
| 39 | + tb_demo_utf8_case_test("Звезда Хэнсин", "звезда хэнсин", "ЗВЕЗДА ХЭНСИН"); |
| 40 | + tb_demo_utf8_case_test("Test 源文件🎆 Message", "test 源文件🎆 message", "TEST 源文件🎆 MESSAGE"); |
| 41 | +#else |
| 42 | + tb_used(argc); |
| 43 | + tb_used(argv); |
| 44 | +#endif |
11 | 45 | return 0; |
12 | 46 | } |
0 commit comments