1 /*
2 WCSCHR: wchar_t *wcschr (wchar_t *ws, wchar_t wc);
3 */
4
5 #define TST_FUNCTION wcschr
6
7 #include "tsp_common.c"
8 #include "dat_wcschr.c"
9
10 int
tst_wcschr(FILE * fp,int debug_flg)11 tst_wcschr (FILE * fp, int debug_flg)
12 {
13 TST_DECL_VARS (wchar_t *);
14 wchar_t *ws, wc;
15
16 TST_DO_TEST (wcschr)
17 {
18 TST_HEAD_LOCALE (wcschr, S_WCSCHR);
19 TST_DO_REC (wcschr)
20 {
21 TST_GET_ERRET (wcschr);
22 ws = TST_INPUT (wcschr).ws; /* external value: size WCSSIZE */
23 wc = TST_INPUT (wcschr).wc;
24 ret = wcschr (ws, wc);
25
26 if (debug_flg)
27 {
28 if (ret)
29 {
30 fprintf (stderr, "wcschr: ret = 0x%lx\n",
31 (unsigned long int) *ret);
32 }
33 else
34 {
35 fprintf (stderr, "wcschr: ret = NULL pointer\n");
36 }
37 }
38
39 TST_IF_RETURN (S_WCSCHR)
40 {
41 if (ret == NULL)
42 {
43 if (debug_flg)
44 {
45 fprintf (stderr, "*** Warning *** tst_wcschr: "
46 "set ret_flg=1 to check NULL return value\n");
47 }
48
49 Result (C_INVALID, S_WCSCHR, CASE_3, "(check the test data) "
50 "set ret_flg=1 to check NULL return value");
51 continue;
52 }
53
54 if (*ret == wc)
55 {
56 Result (C_SUCCESS, S_WCSCHR, CASE_3, MS_PASSED);
57 }
58 else
59 {
60 err_count++;
61 Result (C_FAILURE, S_WCSCHR, CASE_3,
62 "the returned address of the string seems to be wrong");
63 }
64 }
65 }
66 }
67
68 return err_count;
69 }
70