Skip to content
Permalink
78575a842b
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
74 lines (64 sloc) 1.53 KB
/*
STRFMON: size_t strfmon (char *buf, size_t nbyte, const char *fmt, ...)
*/
#define TST_FUNCTION strfmon
#include "tsp_common.c"
#include "dat_strfmon.c"
#include <monetary.h>
int
tst_strfmon (FILE * fp, int debug_flg)
{
TST_DECL_VARS (size_t);
char buf[MONSIZE], *mon;
size_t nbt;
char *fmt;
double val;
TST_DO_TEST (strfmon)
{
TST_HEAD_LOCALE (strfmon, S_STRFMON);
TST_DO_REC (strfmon)
{
TST_GET_ERRET (strfmon);
nbt = TST_INPUT (strfmon).nbytes;
fmt = TST_INPUT (strfmon).fmt;
val = TST_INPUT (strfmon).val;
memset (buf, 0, MONSIZE);
if (nbt > MONSIZE)
{
err_count++;
Result (C_FAILURE, S_STRFMON, CASE_3, "buffer too small in test");
continue;
}
TST_CLEAR_ERRNO;
ret = strfmon (buf, nbt, fmt, val, val, val);
TST_SAVE_ERRNO;
if (debug_flg) /* seems fprintf doesn't update the errno */
{
fprintf (stdout, "strfmon() [ %s : %d ]\n", locale, rec + 1);
fprintf (stdout, " : err = %d | %s\n", errno_save,
strerror (errno));
fprintf (stdout, " : ret = %d; \t fmt = |%s|\n", ret, fmt);
fprintf (stdout, " : buf = |%s|\n\n", buf);
}
TST_IF_RETURN (S_STRFMON)
{
};
if (errno != 0 || ret == -1)
{
continue;
}
mon = TST_EXPECT (strfmon).mon;
if (!strcmp (buf, mon))
{
Result (C_SUCCESS, S_STRFMON, CASE_3, MS_PASSED);
}
else
{
err_count++;
Result (C_FAILURE, S_STRFMON, CASE_3, "the formatted string is "
"different from an expected result");
}
}
}
return err_count;
}