diff options
author | Andreas Jaeger <aj@suse.de> | 2000-06-27 12:14:09 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2000-06-27 12:14:09 +0000 |
commit | 5b905722f66719de502ecd6129ef9a1bda4f9f47 (patch) | |
tree | e74e131343a6427f807f151abcabcce2c62f94ee /localedata/tests-mbwc/tst_wcscpy.c | |
parent | 756bb30555774e22121790fd6eb3dcf2ca4ed29e (diff) | |
download | glibc-5b905722f66719de502ecd6129ef9a1bda4f9f47.tar.gz glibc-5b905722f66719de502ecd6129ef9a1bda4f9f47.tar.xz glibc-5b905722f66719de502ecd6129ef9a1bda4f9f47.zip |
* Makefile (tests): Add tests from tests-mbwc subdirectory,
comment them out for now. (subdir-dirs): New for tests-mbwc, add also vpaths. * Makefile (tests): Add tests from tests-mbwc subdirectory, comment them out for now. (subdir-dirs): New for tests-mbwc, add also vpaths.
Diffstat (limited to 'localedata/tests-mbwc/tst_wcscpy.c')
-rw-r--r-- | localedata/tests-mbwc/tst_wcscpy.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/localedata/tests-mbwc/tst_wcscpy.c b/localedata/tests-mbwc/tst_wcscpy.c new file mode 100644 index 0000000000..2e9212e6ce --- /dev/null +++ b/localedata/tests-mbwc/tst_wcscpy.c @@ -0,0 +1,84 @@ +/*-------------------------------------------------------------------------------------*/ +/* WCSCPY: wchar_t *wcscpy( wchar_t *ws1, const wchar_t *ws2 ) */ +/*-------------------------------------------------------------------------------------*/ +#define TST_FUNCTION wcscpy + +#include "tsp_common.c" +#include "dat_wcscpy.c" + +int +tst_wcscpy (FILE * fp, int debug_flg) +{ + TST_DECL_VARS (wchar_t *); + wchar_t ws1[WCSSIZE], *ws2, *ws_ex; + int err, i; + + TST_DO_TEST (wcscpy) + { + TST_HEAD_LOCALE (wcscpy, S_WCSCPY); + TST_DO_REC (wcscpy) + { + TST_GET_ERRET (wcscpy); + ws2 = TST_INPUT (wcscpy).ws; /* external value: size WCSSIZE */ + ret = wcscpy (ws1, ws2); + + TST_IF_RETURN (S_WCSCPY) + { + if (ret == ws1) + { + Result (C_SUCCESS, S_WCSCPY, CASE_3, MS_PASSED); + } + else + { + err_count++; + Result (C_FAILURE, S_WCSCPY, CASE_3, + "the return address may not be correct"); + } + } + + if (ret == ws1) + { + ws_ex = TST_EXPECT (wcscpy).ws; + + for (err = 0, i = 0; + (ws1[i] != 0L || ws_ex[i] != 0L) && i < WCSSIZE; i++) + { + if (debug_flg) + { + fprintf (stderr, + "ws1[ %d ] = 0x%x <-> wx_ex[ %d ] = 0x%x\n", i, + ws1[i], i, ws_ex[i]); + } + + if (ws1[i] != ws_ex[i]) + { + err++; + err_count++; + Result (C_FAILURE, S_WCSCPY, CASE_4, + "copied string is different from an" + " expected string"); + break; + } + } + + if (!err) + { + Result (C_SUCCESS, S_WCSCPY, CASE_4, MS_PASSED); + } + + if (ws1[i] == 0L) + { + Result (C_SUCCESS, S_WCSCPY, CASE_5, MS_PASSED); + } + else + { + err_count++; + Result (C_FAILURE, S_WCSCPY, CASE_5, + "copied string is not null-terminated"); + } + } + } + } + + return err_count; +} |