| /* |
| TOWCTRANS: wint_t towctrans (wint_t wc, wctrans_t desc); |
| */ |
| |
| #define TST_FUNCTION towctrans |
| |
| #include "tsp_common.c" |
| #include "dat_towctrans.c" |
| |
| |
| int |
| tst_towctrans (FILE *fp, int debug_flg) |
| { |
| TST_DECL_VARS (wint_t); |
| wint_t wc; |
| const char *ts; |
| #if SHOJI_IS_RIGHT |
| int dummy=0; |
| #endif |
| wctrans_t wto; |
| |
| TST_DO_TEST (towctrans) |
| { |
| TST_HEAD_LOCALE (towctrans, S_TOWCTRANS); |
| TST_DO_REC (towctrans) |
| { |
| TST_GET_ERRET (towctrans); |
| wc = TST_INPUT (towctrans).wc; |
| ts = TST_INPUT (towctrans).ts; |
| |
| #if SHOJI_IS_RIGHT |
| if ((wto = wctrans (ts)) == (wctrans_t) 0) |
| { |
| #if 0 |
| result (fp, C_IGNORED, S_TOWCTRANS, locale, rec+1, seq_num+1, 3, |
| "Skip this data because the wctrans object is not invalid."); |
| warn_count++; |
| continue; |
| #else |
| wto = &dummy; /* not good ... */ |
| #endif |
| if (debug_flg) |
| { |
| fprintf (stdout, "towctrans() ------ wctrans() returnd 0.\n"); |
| } |
| } |
| #else |
| wto = wctrans (ts); |
| #endif |
| |
| TST_CLEAR_ERRNO; |
| ret = towctrans (wc, wto); |
| TST_SAVE_ERRNO; |
| |
| if (debug_flg) |
| { |
| fprintf (stdout, "towctrans() [ %s : %d ] ret = 0x%x\n", |
| locale, rec+1, ret); |
| fprintf (stdout, " errno = %d\n", |
| errno_save); |
| } |
| |
| TST_IF_RETURN (S_TOWCTRANS) |
| { |
| if (ret != 0) |
| { |
| result (fp, C_SUCCESS, S_TOWCTRANS, locale, rec+1, |
| seq_num+1, 3, MS_PASSED); |
| } |
| else |
| { |
| err_count++; |
| result (fp, C_FAILURE, S_TOWCTRANS, locale, rec+1, |
| seq_num+1, 3, |
| "the function returned 0, but should be non-zero"); |
| } |
| } |
| } |
| } |
| |
| return err_count; |
| } |