[OptTable] Fix typo VALUE => VALUES (NFCI) (#121523)
[llvm-project.git] / libc / test / src / __support / CMakeLists.txt
blobaeb8edf305d059ab230a0ddb8eae2d75d3277477
1 add_custom_target(libc-support-tests)
3 if(NOT LIBC_TARGET_OS_IS_GPU)
4   add_libc_test(
5     block_test
6     SUITE
7       libc-support-tests
8     SRCS
9       block_test.cpp
10     DEPENDS
11       libc.src.__support.CPP.array
12       libc.src.__support.CPP.bit
13       libc.src.__support.CPP.span
14       libc.src.__support.block
15       libc.src.string.memcpy
16   )
18   add_libc_test(
19     freelist_test
20     SUITE
21       libc-support-tests
22     SRCS
23       freelist_test.cpp
24     DEPENDS
25       libc.src.__support.CPP.array
26       libc.src.__support.CPP.span
27       libc.src.__support.block
28       libc.src.__support.freelist
29   )
31   add_libc_test(
32     freetrie_test
33     SUITE
34       libc-support-tests
35     SRCS
36       freetrie_test.cpp
37     DEPENDS
38       libc.src.__support.CPP.optional
39       libc.src.__support.block
40       libc.src.__support.freetrie
41   )
43   add_libc_test(
44     freestore_test
45     SUITE
46       libc-support-tests
47     SRCS
48       freestore_test.cpp
49     DEPENDS
50       libc.src.__support.CPP.optional
51       libc.src.__support.block
52       libc.src.__support.freelist
53       libc.src.__support.freestore
54       libc.src.__support.freetrie
55   )
56 endif()
58 # TODO: FreeListHeap uses the _end symbol which conflicts with the _end symbol
59 # defined by GPU start.cpp files so for now we exclude this test on GPU.
60 if(LLVM_LIBC_FULL_BUILD AND NOT LIBC_TARGET_OS_IS_GPU)
61   add_libc_test(
62     freelist_heap_test
63     SUITE
64       libc-support-tests
65     SRCS
66       fake_heap.s
67       freelist_heap_test.cpp
68     DEPENDS
69       libc.src.__support.CPP.span
70       libc.src.__support.freelist_heap
71       libc.src.string.memcmp
72       libc.src.string.memcpy
73   )
74 endif()
76 add_libc_test(
77   blockstore_test
78   SUITE
79     libc-support-tests
80   SRCS
81     blockstore_test.cpp
82   DEPENDS
83     libc.src.__support.blockstore
86 add_libc_test(
87   endian_internal_test
88   SUITE
89     libc-support-tests
90   SRCS
91     endian_internal_test.cpp
92   DEPENDS
93     libc.src.__support.common
96 add_libc_test(
97   math_extras_test
98   SUITE
99     libc-support-tests
100   SRCS
101     math_extras_test.cpp
102   DEPENDS
103     libc.src.__support.integer_literals
104     libc.src.__support.math_extras
105     libc.src.__support.uint128
108 add_libc_test(
109   high_precision_decimal_test
110   SUITE
111     libc-support-tests
112   SRCS
113   high_precision_decimal_test.cpp
114   DEPENDS
115     libc.src.__support.high_precision_decimal
116     libc.src.__support.uint128
119 add_libc_test(
120   str_to_float_test
121   SUITE
122     libc-support-tests
123   SRCS
124     str_to_float_test.cpp
125     str_to_double_test.cpp
126     str_to_long_double_test.cpp
127   DEPENDS
128     libc.src.__support.integer_literals
129     libc.src.__support.str_to_float
130     libc.src.__support.uint128
131     libc.src.errno.errno
135 add_libc_test(
136   str_to_integer_test
137   SUITE
138     libc-support-tests
139   SRCS
140     str_to_integer_test.cpp
141   DEPENDS
142     libc.src.__support.integer_literals
143     libc.src.__support.str_to_integer
144     libc.src.errno.errno
147 add_libc_test(
148   integer_to_string_test
149   SUITE
150     libc-support-tests
151   SRCS
152     integer_to_string_test.cpp
153   DEPENDS
154     libc.src.__support.big_int
155     libc.src.__support.CPP.limits
156     libc.src.__support.CPP.string_view
157     libc.src.__support.integer_literals
158     libc.src.__support.integer_to_string
159     libc.src.__support.uint128
162 add_libc_test(
163   arg_list_test
164   SUITE
165     libc-support-tests
166   SRCS
167     arg_list_test.cpp
168   DEPENDS
169     libc.src.__support.arg_list
170     libc.src.__support.macros.properties.os
173 # TODO: clang-cl generates calls into runtime library functions to
174 # handle 128-bit integer arithmetics and conversions which are not yet
175 # available on Windows. Re-enable 128-bit integer support on Windows once
176 # these functions are ready.
177 if(NOT LIBC_TARGET_ARCHITECTURE_IS_NVPTX AND NOT LIBC_TARGET_OS_IS_WINDOWS)
178   add_libc_test(
179     big_int_test
180     SUITE
181       libc-support-tests
182     SRCS
183       big_int_test.cpp
184     DEPENDS
185       libc.src.__support.big_int
186       libc.src.__support.CPP.optional
187       libc.src.__support.macros.properties.types
188   )
189 endif()
191 add_libc_test(
192   integer_literals_test
193   SUITE
194     libc-support-tests
195   SRCS
196     integer_literals_test.cpp
197   DEPENDS
198     libc.src.__support.CPP.optional
199     libc.src.__support.integer_literals
200     libc.src.__support.macros.properties.types
203 add_libc_test(
204   fixedvector_test
205   SUITE
206     libc-support-tests
207   SRCS
208     fixedvector_test.cpp
209   DEPENDS
210     libc.src.__support.CPP.array
211     libc.src.__support.fixedvector
214 add_libc_test(
215   char_vector_test
216   SUITE
217     libc-support-tests
218   SRCS
219     char_vector_test.cpp
220   DEPENDS
221     libc.src.__support.char_vector
224 add_libc_test(
225   hash_test
226   SUITE
227     libc-support-tests
228   SRCS
229     hash_test.cpp
230   DEPENDS
231     libc.src.__support.hash
232     libc.src.__support.CPP.new
233     libc.src.stdlib.rand
234     libc.src.stdlib.srand
235     libc.src.string.memset
236   COMPILE_OPTIONS
237     -O3
238   UNIT_TEST_ONLY
239     # Aligned Allocation is not supported in hermetic builds.
242 add_libc_test(
243   memory_size_test
244   SUITE
245     libc-support-tests
246   SRCS
247     memory_size_test.cpp
248   DEPENDS
249     libc.src.__support.memory_size
252 # FIXME: We shouldn't have regular executables created because we could be
253 #        cross-compiling the tests and running through an emulator.
254 if(NOT LIBC_TARGET_OS_IS_GPU)
255   add_executable(
256     libc_str_to_float_comparison_test
257     str_to_float_comparison_test.cpp
258   )
260   target_link_libraries(libc_str_to_float_comparison_test
261     PRIVATE
262       "${LIBC_TARGET}"
263   )
265   add_executable(
266     libc_system_str_to_float_comparison_test
267     str_to_float_comparison_test.cpp
268   )
270   set(float_test_file ${CMAKE_CURRENT_SOURCE_DIR}/str_to_float_comparison_data.txt)
272   add_custom_command(TARGET libc_str_to_float_comparison_test
273                      POST_BUILD
274                      COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:libc_str_to_float_comparison_test> ${float_test_file}
275                      DEPENDS ${float_test_file}
276                      COMMENT "Test the strtof and strtod implementations against precomputed results."
277                      VERBATIM)
278 endif()
280 add_subdirectory(CPP)
281 add_subdirectory(File)
282 add_subdirectory(RPC)
283 add_subdirectory(OSUtil)
284 add_subdirectory(FPUtil)
285 add_subdirectory(fixed_point)
286 add_subdirectory(HashTable)
287 add_subdirectory(time)
288 add_subdirectory(threads)