12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /*
- MBLEN: int mblen (char *s, size_t n)
- */
- #define TST_FUNCTION mblen
- #include "tsp_common.c"
- #include "dat_mblen.c"
- int
- tst_mblen (FILE * fp, int debug_flg)
- {
- TST_DECL_VARS (int);
- char s_flg;
- const char *s_in;
- size_t n;
- TST_DO_TEST (mblen)
- {
- TST_HEAD_LOCALE (mblen, S_MBLEN);
- TST_DO_REC (mblen)
- {
- TST_GET_ERRET (mblen);
- s_flg = TST_INPUT (mblen).s_flg;
- s_in = TST_INPUT (mblen).s;
- n = TST_INPUT (mblen).n;
- if (s_flg == 0)
- {
- s_in = NULL;
- }
- if (n == USE_MBCURMAX)
- {
- n = MB_CUR_MAX;
- }
- TST_CLEAR_ERRNO;
- ret = mblen (s_in, n);
- TST_SAVE_ERRNO;
- TST_IF_RETURN (S_MBLEN)
- {
- if (s_in == NULL)
- { /* state dependency */
- if (ret_exp == +1)
- { /* state-dependent */
- if (ret != 0)
- {
- /* non-zero: state-dependent encoding */
- Result (C_SUCCESS, S_MBLEN, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_MBLEN, CASE_3,
- "should be state-dependent encoding, "
- "but the return value shows it is"
- " state-independent");
- }
- }
- if (ret_exp == 0)
- { /* state-independent */
- if (ret == 0)
- {
- /* non-zero: state-dependent encoding */
- Result (C_SUCCESS, S_MBLEN, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_MBLEN, CASE_3,
- "should be state-independent encoding, "
- "but the return value shows it is"
- " state-dependent");
- }
- }
- }
- }
- }
- }
- return err_count;
- }
|