1 /* Copyright (C) 1999-2022 Free Software Foundation, Inc. 2 This file is part of the GNU C Library. 3 4 The GNU C Library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) any later version. 8 9 The GNU C Library 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 GNU 12 Lesser General Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with the GNU C Library; if not, see 16 <https://www.gnu.org/licenses/>. */ 17 18 #include <stdio.h> 19 #include <stdlib.h> 20 #include <wctype.h> 21 22 int main(int argc,char * argv[])23main (int argc, char *argv[]) 24 { 25 int result = 0; 26 wint_t ch; 27 28 29 for (ch = 0; ch < 128; ++ch) 30 { 31 if (iswlower (ch)) 32 { 33 /* Get corresponding upper case character. */ 34 wint_t up = towupper (ch); 35 /* This should have no effect. */ 36 wint_t low = towlower (ch); 37 38 if ((ch != low) || (up == ch) || (up == low)) 39 { 40 printf ("iswlower/towupper/towlower for character \\%x failed\n", ch); 41 result++; 42 } 43 } 44 if (iswupper (ch)) 45 { 46 /* Get corresponding lower case character. */ 47 wint_t low = towlower (ch); 48 /* This should have no effect. */ 49 wint_t up = towupper (ch); 50 51 if ((ch != up) || (low == ch) || (up == low)) 52 { 53 printf ("iswupper/towlower/towupper for character \\%x failed\n", ch); 54 result++; 55 } 56 } 57 } 58 59 /* Finally some specific tests. */ 60 ch = L'A'; 61 if (!iswupper (ch) || iswlower (ch)) 62 { 63 printf ("!iswupper/iswlower (L'A') failed\n"); 64 result++; 65 66 } 67 ch = L'a'; 68 if (iswupper (ch) || !iswlower (ch)) 69 { 70 printf ("iswupper/!iswlower (L'a') failed\n"); 71 result++; 72 } 73 if (towlower (L'A') != L'a') 74 { 75 printf ("towlower(L'A') failed\n"); 76 result++; 77 } 78 if (towupper (L'a') != L'A') 79 { 80 printf ("towupper(L'a') failed\n"); 81 result++; 82 } 83 84 if (result == 0) 85 puts ("All test successful!"); 86 return result != 0; 87 } 88