Update.
[glibc.git] / localedata / tests-mbwc / tst_strfmon.c
blob8413f2cc511d0acff0e9f04bfe3eeded2baf838f
1 /*
2 STRFMON: size_t strfmon (char *buf, size_t nbyte, const char *fmt, ...)
3 */
5 #define TST_FUNCTION strfmon
7 #include "tsp_common.c"
8 #include "dat_strfmon.c"
9 #include <monetary.h>
11 int
12 tst_strfmon (FILE * fp, int debug_flg)
14 TST_DECL_VARS (size_t);
15 char buf[MONSIZE], *mon;
16 size_t nbt;
17 char *fmt;
18 double val;
20 TST_DO_TEST (strfmon)
22 TST_HEAD_LOCALE (strfmon, S_STRFMON);
23 TST_DO_REC (strfmon)
25 TST_GET_ERRET (strfmon);
26 nbt = TST_INPUT (strfmon).nbytes;
27 fmt = TST_INPUT (strfmon).fmt;
28 val = TST_INPUT (strfmon).val;
29 memset (buf, 0, MONSIZE);
31 TST_CLEAR_ERRNO;
32 ret = strfmon (buf, nbt, fmt, val, val, val);
33 TST_SAVE_ERRNO;
35 if (debug_flg) /* seems fprintf doesn't update the errno */
37 fprintf (stdout, "strfmon() [ %s : %d ]\n", locale, rec + 1);
38 fprintf (stdout, " : err = %d | %s\n", errno_save,
39 strerror (errno));
40 fprintf (stdout, " : ret = %d; \t fmt = |%s|\n", ret, fmt);
41 fprintf (stdout, " : buf = |%s|\n\n", buf);
44 TST_IF_RETURN (S_STRFMON)
47 if (errno != 0 || ret == -1)
49 continue;
52 mon = TST_EXPECT (strfmon).mon;
54 if (!strcmp (buf, mon))
56 Result (C_SUCCESS, S_STRFMON, CASE_3, MS_PASSED);
58 else
60 err_count++;
61 Result (C_FAILURE, S_STRFMON, CASE_3, "the formatted string is "
62 "different from an expected result");
67 return err_count;