diff options
author | Andreas Jaeger <aj@suse.de> | 2000-06-28 12:56:56 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2000-06-28 12:56:56 +0000 |
commit | 8c8ade2980f8fd0632fe2a9b2b7f1307bc12713d (patch) | |
tree | 1e25213c424d17509e7a0fe9b013e860112f23f5 /localedata/tests-mbwc/tst_mbrlen.c | |
parent | 2803faf059c8061e6fb001edaa965def1013e699 (diff) | |
download | glibc-8c8ade2980f8fd0632fe2a9b2b7f1307bc12713d.tar.gz glibc-8c8ade2980f8fd0632fe2a9b2b7f1307bc12713d.tar.xz glibc-8c8ade2980f8fd0632fe2a9b2b7f1307bc12713d.zip |
Test files for mbrlen.c.
Diffstat (limited to 'localedata/tests-mbwc/tst_mbrlen.c')
-rw-r--r-- | localedata/tests-mbwc/tst_mbrlen.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/localedata/tests-mbwc/tst_mbrlen.c b/localedata/tests-mbwc/tst_mbrlen.c new file mode 100644 index 0000000000..a067acb266 --- /dev/null +++ b/localedata/tests-mbwc/tst_mbrlen.c @@ -0,0 +1,81 @@ +/* + MBRLEN: size_t mbrlen (char *s, size_t n, mbstate_t *ps) +*/ + +#define TST_FUNCTION mbrlen + +#include "tsp_common.c" +#include "dat_mbrlen.c" + + +int +tst_mbrlen (FILE * fp, int debug_flg) +{ + TST_DECL_VARS (size_t); + char s_flg; + const char *s_in; + size_t n; + char t_flg; + char t_ini; + static mbstate_t s = { 0 }; + mbstate_t *ps; + + TST_DO_TEST (mbrlen) + { + TST_HEAD_LOCALE (mbrlen, S_MBRLEN); + TST_DO_REC (mbrlen) + { + if (mbrlen (NULL, 0, &s) != 0) + { + err_count++; + Result (C_FAILURE, S_MBRLEN, CASE_3, + "Initialization (external mbstate object) failed " + "- skipped this test case."); + continue; + } + + TST_DO_SEQ (MBRLEN_SEQNUM) + { + TST_GET_ERRET_SEQ (mbrlen); + s_flg = TST_INPUT_SEQ (mbrlen).s_flg; + s_in = TST_INPUT_SEQ (mbrlen).s; + n = TST_INPUT_SEQ (mbrlen).n; + t_flg = TST_INPUT_SEQ (mbrlen).t_flg; + t_ini = TST_INPUT_SEQ (mbrlen).t_init; + if (s_flg == 0) + { + s_in = NULL; + } + + if (n == USE_MBCURMAX) /* rewrite tst_mblen() like this */ + { + n = MB_CUR_MAX; + } + + ps = (t_flg == 0) ? NULL : &s; +#if 0 + if (t_ini != 0) + { + memset (&s, 0, sizeof (s)); + } +#endif + TST_CLEAR_ERRNO; + ret = mbrlen (s_in, n, ps); + TST_SAVE_ERRNO; + + if (debug_flg) + { + fprintf (stdout, "mbrlen() [ %s : %d : %d ] ret = %d\n", + locale, rec + 1, seq_num + 1, ret); + fprintf (stdout, " errno = %d\n", errno_save); + } + + TST_IF_RETURN (S_MBRLEN) + { + }; + } + } + } + + return err_count; +} |