1 /* Test of <wctype.h> substitute.
2 Copyright (C) 2007-2024 Free Software Foundation, Inc.
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 /* Written by Bruno Haible <bruno@clisp.org>, 2007. */
23 /* Check that the type wint_t is defined. */
25 /* Check that WEOF is defined. */
28 /* Check that the type wctype_t is defined. */
31 /* Check that the type wctrans_t is defined. */
39 /* Check that the isw* functions exist as functions or as macros. */
52 /* Check that the isw* functions map WEOF to 0. */
53 ASSERT (!iswalnum (e
));
54 ASSERT (!iswalpha (e
));
55 ASSERT (!iswcntrl (e
));
56 ASSERT (!iswdigit (e
));
57 ASSERT (!iswgraph (e
));
58 ASSERT (!iswlower (e
));
59 ASSERT (!iswprint (e
));
60 ASSERT (!iswpunct (e
));
61 ASSERT (!iswspace (e
));
62 ASSERT (!iswupper (e
));
63 ASSERT (!iswxdigit (e
));
65 /* Sanity check for the iswprint function. */
66 ASSERT (iswprint (L
' '));
67 ASSERT (!iswprint (L
'\t'));
68 ASSERT (!iswprint (L
'\n'));
70 /* Sanity check for the iswpunct function.
71 These characters are usually expected to be punctuation or symbol
73 ASSERT (iswpunct (L
'!'));
74 ASSERT (iswpunct (L
'"'));
75 ASSERT (iswpunct (L
'#'));
76 ASSERT (iswpunct (L
'%'));
77 ASSERT (iswpunct (L
'&'));
78 ASSERT (iswpunct (L
'\''));
79 ASSERT (iswpunct (L
'('));
80 ASSERT (iswpunct (L
')'));
81 ASSERT (iswpunct (L
'*'));
82 ASSERT (iswpunct (L
','));
83 ASSERT (iswpunct (L
'-'));
84 ASSERT (iswpunct (L
'.'));
85 ASSERT (iswpunct (L
'/'));
86 ASSERT (iswpunct (L
':'));
87 ASSERT (iswpunct (L
';'));
88 ASSERT (iswpunct (L
'?'));
89 ASSERT (iswpunct (L
'@'));
90 ASSERT (iswpunct (L
'['));
91 ASSERT (iswpunct (L
'\\'));
92 ASSERT (iswpunct (L
']'));
93 ASSERT (iswpunct (L
'_'));
94 ASSERT (iswpunct (L
'{'));
95 ASSERT (iswpunct (L
'}'));
96 ASSERT (!iswpunct (L
'5'));
97 ASSERT (!iswpunct (L
'F'));
98 ASSERT (!iswpunct (L
' '));
99 ASSERT (!iswpunct (L
'\t'));
100 ASSERT (!iswpunct (L
'\n'));
102 /* Check that the tow* functions exist as functions or as macros. */
106 /* Check that the tow* functions map WEOF to WEOF. */
107 ASSERT (towlower (e
) == e
);
108 ASSERT (towupper (e
) == e
);
110 return test_exit_status
;