123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /*
- WCSTOD: double wcstod (wchar_t *np, const wchar_t **endp);
- */
- #define TST_FUNCTION wcstod
- #include "tsp_common.c"
- #include "dat_wcstod.c"
- int
- tst_wcstod (FILE * fp, int debug_flg)
- {
- TST_DECL_VARS (double);
- wchar_t *np, *endp, fwc;
- double val;
- TST_DO_TEST (wcstod)
- {
- TST_HEAD_LOCALE (wcstod, S_WCSTOD);
- TST_DO_REC (wcstod)
- {
- TST_GET_ERRET (wcstod);
- np = TST_INPUT (wcstod).np;
- TST_CLEAR_ERRNO;
- ret = wcstod (np, &endp);
- TST_SAVE_ERRNO;
- if (debug_flg)
- {
- fprintf (stdout, "wcstod() [ %s : %d ] ret = %f\n", locale,
- rec + 1, ret);
- fprintf (stdout, " *endp = 0x%lx\n",
- (unsigned long int) *endp);
- }
- TST_IF_RETURN (S_WCSTOD)
- {
- if (ret != 0)
- {
- val = ret - TST_EXPECT (wcstod).val;
- if (TST_ABS (val) < TST_DBL_EPS)
- {
- Result (C_SUCCESS, S_WCSTOD, CASE_3, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSTOD, CASE_3, "return value is wrong");
- }
- }
- }
- fwc = TST_EXPECT (wcstod).fwc;
- if (fwc == *endp)
- {
- Result (C_SUCCESS, S_WCSTOD, CASE_4, MS_PASSED);
- }
- else
- {
- err_count++;
- Result (C_FAILURE, S_WCSTOD, CASE_4, "a final wc is wrong.");
- }
- }
- }
- return err_count;
- }
|