mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
Test files for strfmon.
This commit is contained in:
parent
a748c3c64c
commit
ee6c9d77a3
264
localedata/tests-mbwc/dat_strfmon.c
Normal file
264
localedata/tests-mbwc/dat_strfmon.c
Normal file
@ -0,0 +1,264 @@
|
||||
/*
|
||||
* TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY
|
||||
*
|
||||
* FILE: dat_strfmon.c
|
||||
*
|
||||
* STRFMON: size_t strfmon (char *buf, size_t nbyte, char *fmt, ... );
|
||||
*/
|
||||
|
||||
/*
|
||||
* NOTE:
|
||||
*
|
||||
* The buffer size should be enough to contain a string including a
|
||||
* null char.
|
||||
* Returns the number of bytes of the string (NOT including a null char).
|
||||
*/
|
||||
|
||||
TST_STRFMON tst_strfmon_loc [] = {
|
||||
{
|
||||
{ Tstrfmon, TST_LOC_de },
|
||||
{
|
||||
{
|
||||
/* #01 */
|
||||
/*inp*/ { 23, "%n %% %i", 123.00 },
|
||||
/*exp*/ { 1,0,1,22, "123,00 DM % 123,00 DEM" },
|
||||
},
|
||||
{
|
||||
/* #02 */
|
||||
/*inp*/ { 23, "%n %% %i", 123.00 },
|
||||
/*exp*/ { 1,0,1,22, "123,00 DM % 123,00 DEM" },
|
||||
},
|
||||
{
|
||||
/* #03 */
|
||||
/*inp*/ { 22, "%n %% %i", 123.00 },
|
||||
/*exp*/ { 1,E2BIG,1,-1, "" },
|
||||
},
|
||||
{
|
||||
/* #04 */
|
||||
/*inp*/ { 30, "%n|%i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,24, "1.234,56 DM|1.234,56 DEM" },
|
||||
},
|
||||
{
|
||||
/* #05 */
|
||||
/*inp*/ { 32, "%n|%i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,26, "-1.234,56 DM|-1.234,56 DEM"},
|
||||
},
|
||||
{
|
||||
/* #06 */
|
||||
/*inp*/ { 32, "%12n|%12i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,25, " 1.234,56 DM|1.234,56 DEM"},
|
||||
},
|
||||
{
|
||||
/* #07 */
|
||||
/*inp*/ { 32, "%12n|%12i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,26, "-1.234,56 DM|-1.234,56 DEM"},
|
||||
},
|
||||
{
|
||||
/* #08 */
|
||||
/*inp*/ { 32, "%#5n|%#5i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,28, " 1.234,56 DM| 1.234,56 DEM"},
|
||||
},
|
||||
{
|
||||
/* #09 */
|
||||
/*inp*/ { 32, "%#5n|%#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,28, "- 1.234,56 DM|- 1.234,56 DEM"},
|
||||
},
|
||||
{
|
||||
/* #10 */
|
||||
/*inp*/ { 32, "%=*#5n|%=*#5i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,28, " *1.234,56 DM| *1.234,56 DEM"},
|
||||
},
|
||||
{
|
||||
/* #11 */
|
||||
/*inp*/ { 32, "%=0#5n|%=0#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,28, "-01.234,56 DM|-01.234,56 DEM"},
|
||||
},
|
||||
{
|
||||
/* #12 */
|
||||
/*inp*/ { 32, "%^#5n|%^#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,26, "- 1234,56 DM|- 1234,56 DEM"},
|
||||
},
|
||||
{
|
||||
/* #13 */
|
||||
/*inp*/ { 32, "%#5.0n|%#5.0i", 1234.444 },
|
||||
/*exp*/ { 1,0,1,22, " 1.234 DM| 1.234 DEM" },
|
||||
},
|
||||
{
|
||||
/* #14 */
|
||||
/*inp*/ { 32, "%#5.0n|%#5.4i", -1234.555 },
|
||||
/*exp*/ { 1,0,1,27, "- 1.235 DM|- 1.234,5550 DEM"},
|
||||
},
|
||||
{
|
||||
/* #15 */
|
||||
/*inp*/ { 32, "%(#5n|%!(#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,26, "( 1.234,56 DM)|( 1.234,56)"},
|
||||
},
|
||||
{ is_last: 1 }
|
||||
}
|
||||
},
|
||||
{
|
||||
{ Tstrfmon, TST_LOC_enUS },
|
||||
{
|
||||
{
|
||||
/* #01 */
|
||||
/*inp*/ { 22, "%n %% %i", 123.00 },
|
||||
/*exp*/ { 1,0,1,20, "$123.00 % USD 123.00" },
|
||||
},
|
||||
{
|
||||
/* #02 */
|
||||
/*inp*/ { 21, "%n %% %i", 123.00 },
|
||||
/*exp*/ { 1,0,1,20, "$123.00 % USD 123.00" },
|
||||
},
|
||||
{
|
||||
/* #03 */
|
||||
/*inp*/ { 20, "%n %% %i", 123.00 },
|
||||
/*exp*/ { 1,E2BIG,1,-1, "" },
|
||||
},
|
||||
{
|
||||
/* #04 */
|
||||
/*inp*/ { 30, "%n|%i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,22, "$1,234.56|USD 1,234.56" },
|
||||
},
|
||||
{
|
||||
/* #05 */
|
||||
/*inp*/ { 32, "%n|%i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,24, "-$1,234.56|-USD 1,234.56" },
|
||||
},
|
||||
{
|
||||
/* #06 */
|
||||
/*inp*/ { 30, "%12n|%12i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,25, " $1,234.56|USD 1,234.56"},
|
||||
},
|
||||
{
|
||||
/* #07 */
|
||||
/*inp*/ { 32, "%12n|%12i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,26, " -$1,234.56|-USD 1,234.56"},
|
||||
},
|
||||
{
|
||||
/* #08 */
|
||||
/*inp*/ { 32, "%#5n|%#5i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,26, " $ 1,234.56| USD 1,234.56"},
|
||||
},
|
||||
{
|
||||
/* #09 */
|
||||
/*inp*/ { 32, "%#5n|%#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,26, "-$ 1,234.56|-USD 1,234.56"},
|
||||
},
|
||||
{
|
||||
/* #10 */
|
||||
/*inp*/ { 32, "%=*#5n|%=*#5i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,26, " $*1,234.56| USD *1,234.56"},
|
||||
},
|
||||
{
|
||||
/* #11 */
|
||||
/*inp*/ { 32, "%=0#5n|%=0#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,26, "-$01,234.56|-USD 01,234.56"},
|
||||
},
|
||||
{
|
||||
/* #12 */
|
||||
/*inp*/ { 32, "%^#5n|%^#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,24, "-$ 1234.56|-USD 1234.56" },
|
||||
},
|
||||
{
|
||||
/* #13 */
|
||||
/*inp*/ { 32, "%#5.0n|%#5.0i", 1234.444 },
|
||||
/*exp*/ { 1,0,1,20, " $ 1,234| USD 1,234" },
|
||||
},
|
||||
{
|
||||
/* #14 */
|
||||
/*inp*/ { 32, "%#5.0n|%#5.4i", -1234.555 },
|
||||
/*exp*/ { 1,0,1,25, "-$ 1,235|-USD 1,234.5550"},
|
||||
},
|
||||
{
|
||||
/* #15 */
|
||||
/*inp*/ { 32, "%(#5n|%!(#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,24, "($ 1,234.56)|( 1,234.56)" },
|
||||
},
|
||||
{ is_last: 1 }
|
||||
}
|
||||
},
|
||||
{
|
||||
{ Tstrfmon, TST_LOC_eucJP },
|
||||
{
|
||||
{
|
||||
/* #01 */
|
||||
/*inp*/ { 17, "%n %% %i", 123.00 },
|
||||
/*exp*/ { 1,0,1,15, "\241\357123 % JPY 123" },
|
||||
},
|
||||
{
|
||||
/* #02 */
|
||||
/*inp*/ { 16, "%n %% %i", 123.00 },
|
||||
/*exp*/ { 1,0,1,15, "\241\357123 % JPY 123" },
|
||||
},
|
||||
{
|
||||
/* #03 */
|
||||
/*inp*/ { 15, "%n %% %i", 123.00 },
|
||||
/*exp*/ { 1,E2BIG,1,-1, "" },
|
||||
},
|
||||
{
|
||||
/* #04 */
|
||||
/*inp*/ { 30, "%n|%i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,17, "\241\3571,235|JPY 1,235" },
|
||||
},
|
||||
{
|
||||
/* #05 */
|
||||
/*inp*/ { 32, "%n|%i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,19, "\241\357-1,235|JPY -1,235" },
|
||||
},
|
||||
{
|
||||
/* #06 */
|
||||
/*inp*/ { 32, "%12n|%12i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,25, " \241\3571,235| JPY 1,235" },
|
||||
},
|
||||
{
|
||||
/* #07 */
|
||||
/*inp*/ { 32, "%12n|%12i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,25, " \241\357-1,235| JPY -1,235" },
|
||||
},
|
||||
{
|
||||
/* #08 */
|
||||
/*inp*/ { 32, "%#5n|%#5i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,21, " \241\357 1,235| JPY 1,235" },
|
||||
},
|
||||
{
|
||||
/* #09 */
|
||||
/*inp*/ { 32, "%#5n|%#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,21, "\241\357- 1,235|JPY - 1,235" },
|
||||
},
|
||||
{
|
||||
/* #10 */
|
||||
/*inp*/ { 32, "%=*#5n|%=*#5i", 1234.561 },
|
||||
/*exp*/ { 1,0,1,21, " \241\357*1,235| JPY *1,235" },
|
||||
},
|
||||
{
|
||||
/* #11 */
|
||||
/*inp*/ { 32, "%=0#5n|%=0#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,21, "\241\357-01,235|JPY -01,235" },
|
||||
},
|
||||
{
|
||||
/* #12 */
|
||||
/*inp*/ { 32, "%^#5n|%^#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,19, "\241\357- 1235|JPY - 1235" },
|
||||
},
|
||||
{
|
||||
/* #13 */
|
||||
/*inp*/ { 32, "%#5.0n|%#5.0i", 1234.444 },
|
||||
/*exp*/ { 1,0,1,21, " \241\357 1,234| JPY 1,234" },
|
||||
},
|
||||
{
|
||||
/* #14 */
|
||||
/*inp*/ { 32, "%#5.0n|%#5.4i", -1234.555 },
|
||||
/*exp*/ { 1,0,1,26, "\241\357- 1,235|JPY - 1,234.5550"},
|
||||
},
|
||||
{
|
||||
/* #15 */
|
||||
/*inp*/ { 32, "%(#5n|%!(#5i", -1234.561 },
|
||||
/*exp*/ { 1,0,1,19, "(\241\357 1,235)|( 1,235)" },
|
||||
},
|
||||
{ is_last: 1 }
|
||||
}
|
||||
},
|
||||
{
|
||||
{ Tstrfmon, TST_LOC_end }
|
||||
}
|
||||
};
|
68
localedata/tests-mbwc/tst_strfmon.c
Normal file
68
localedata/tests-mbwc/tst_strfmon.c
Normal file
@ -0,0 +1,68 @@
|
||||
/*
|
||||
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);
|
||||
|
||||
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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user