xref: /llvm-project/libcxx/test/std/strings/c.strings/cctype.pass.cpp (revision a40bada91aeda276a772acfbcae6e8de26755a11)
1 //===----------------------------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 // <cctype>
10 
11 #include <cctype>
12 #include <type_traits>
13 #include <cassert>
14 
15 #include "test_macros.h"
16 
17 #ifdef isalnum
18 #  error isalnum defined
19 #endif
20 
21 #ifdef isalpha
22 #  error isalpha defined
23 #endif
24 
25 #ifdef isblank
26 #  error isblank defined
27 #endif
28 
29 #ifdef iscntrl
30 #  error iscntrl defined
31 #endif
32 
33 #ifdef isdigit
34 #  error isdigit defined
35 #endif
36 
37 #ifdef isgraph
38 #  error isgraph defined
39 #endif
40 
41 #ifdef islower
42 #  error islower defined
43 #endif
44 
45 #ifdef isprint
46 #  error isprint defined
47 #endif
48 
49 #ifdef ispunct
50 #  error ispunct defined
51 #endif
52 
53 #ifdef isspace
54 #  error isspace defined
55 #endif
56 
57 #ifdef isupper
58 #  error isupper defined
59 #endif
60 
61 #ifdef isxdigit
62 #  error isxdigit defined
63 #endif
64 
65 #ifdef tolower
66 #  error tolower defined
67 #endif
68 
69 #ifdef toupper
70 #  error toupper defined
71 #endif
72 
main(int,char **)73 int main(int, char**) {
74   ASSERT_SAME_TYPE(int, decltype(std::isalnum(0)));
75   ASSERT_SAME_TYPE(int, decltype(std::isalpha(0)));
76   ASSERT_SAME_TYPE(int, decltype(std::isblank(0)));
77   ASSERT_SAME_TYPE(int, decltype(std::iscntrl(0)));
78   ASSERT_SAME_TYPE(int, decltype(std::isdigit(0)));
79   ASSERT_SAME_TYPE(int, decltype(std::isgraph(0)));
80   ASSERT_SAME_TYPE(int, decltype(std::islower(0)));
81   ASSERT_SAME_TYPE(int, decltype(std::isprint(0)));
82   ASSERT_SAME_TYPE(int, decltype(std::ispunct(0)));
83   ASSERT_SAME_TYPE(int, decltype(std::isspace(0)));
84   ASSERT_SAME_TYPE(int, decltype(std::isupper(0)));
85   ASSERT_SAME_TYPE(int, decltype(std::isxdigit(0)));
86   ASSERT_SAME_TYPE(int, decltype(std::tolower(0)));
87   ASSERT_SAME_TYPE(int, decltype(std::toupper(0)));
88 
89   assert(std::isalnum('a'));
90   assert(std::isalpha('a'));
91   assert(std::isblank(' '));
92   assert(!std::iscntrl(' '));
93   assert(!std::isdigit('a'));
94   assert(std::isgraph('a'));
95   assert(std::islower('a'));
96   assert(std::isprint('a'));
97   assert(!std::ispunct('a'));
98   assert(!std::isspace('a'));
99   assert(!std::isupper('a'));
100   assert(std::isxdigit('a'));
101   assert(std::tolower('A') == 'a');
102   assert(std::toupper('a') == 'A');
103 
104   return 0;
105 }
106