brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.3 KiB · 3ac5615 Raw
578 lines · plain
1add_custom_target(libc_include_tests)2add_dependencies(check-libc libc_include_tests)3 4add_libc_test(5  assert_test6  SUITE7    libc_include_tests8  SRCS9    assert_test.cpp10  DEPENDS11    libc.include.llvm-libc-macros.assert_macros12)13 14add_libc_test(15  complex_test16  SUITE17    libc_include_tests18  SRCS19    complex_test.cpp20  DEPENDS21    libc.include.llvm-libc-macros.complex_macros22)23 24add_libc_test(25  sys_queue_test26  SUITE27    libc_include_tests28  SRCS29    sys/queue_test.cpp30  DEPENDS31    libc.include.llvm-libc-macros.sys_queue_macros32    libc.src.__support.char_vector33    libc.src.__support.CPP.string34  COMPILE_OPTIONS35    # This is needed because the __containerof macro uses statement expression.36    -Wno-gnu-statement-expression-from-macro-expansion37)38 39add_libc_test(40  stdbit_test41  SUITE42    libc_include_tests43  HDRS44    stdbit_stub.h45  SRCS46    stdbit_test.cpp47  DEPENDS48    libc.include.llvm-libc-macros.stdbit_macros49    libc.include.llvm_libc_common_h50    libc.include.stdbit51    # Intentionally do not depend on libc.src.stdbit.*. The include test is52    # simply testing the macros provided by stdbit.h, not the implementation53    # of the underlying functions which the type generic macros may dispatch54    # to.55)56add_libc_test(57  stdbit_c_test58  C_TEST59  UNIT_TEST_ONLY60  SUITE61    libc_include_tests62  HDRS63    stdbit_stub.h64  SRCS65    stdbit_test.c66  COMPILE_OPTIONS67    -Wall68    -Werror69  DEPENDS70    libc.include.llvm-libc-macros.stdbit_macros71    libc.include.llvm_libc_common_h72    libc.include.stdbit73    libc.src.assert.__assert_fail74    # Intentionally do not depend on libc.src.stdbit.*. The include test is75    # simply testing the macros provided by stdbit.h, not the implementation76    # of the underlying functions which the type generic macros may dispatch77    # to.78)79 80add_libc_test(81  stdckdint_test82  SUITE83    libc_include_tests84  SRCS85    stdckdint_test.cpp86  DEPENDS87    libc.include.llvm-libc-macros.stdckdint_macros88)89 90add_libc_test(91  issubnormal_test92  SUITE93    libc_include_tests94  SRCS95    issubnormal_test.cpp96  DEPENDS97    libc.include.llvm-libc-macros.math_function_macros98)99 100add_libc_test(101  issubnormalf_test102  SUITE103    libc_include_tests104  SRCS105    issubnormalf_test.cpp106  DEPENDS107    libc.include.llvm-libc-macros.math_function_macros108)109 110add_libc_test(111  issubnormall_test112  SUITE113    libc_include_tests114  SRCS115    issubnormall_test.cpp116  DEPENDS117    libc.include.llvm-libc-macros.math_function_macros118)119 120add_libc_test(121  isnormal_test122  SUITE123    libc_include_tests124  SRCS125    isnormal_test.cpp126  DEPENDS127    libc.include.llvm-libc-macros.math_function_macros128)129 130add_libc_test(131  isnormalf_test132  SUITE133    libc_include_tests134  SRCS135    isnormalf_test.cpp136  DEPENDS137    libc.include.llvm-libc-macros.math_function_macros138)139 140add_libc_test(141  isnormall_test142  SUITE143    libc_include_tests144  SRCS145    isnormall_test.cpp146  DEPENDS147    libc.include.llvm-libc-macros.math_function_macros148)149 150add_libc_test(151  fpclassify_test152  SUITE153    libc_include_tests154  SRCS155    fpclassify_test.cpp156  DEPENDS157    libc.include.llvm-libc-macros.math_function_macros158)159 160add_libc_test(161  fpclassifyf_test162  SUITE163    libc_include_tests164  SRCS165    fpclassifyf_test.cpp166  DEPENDS167    libc.include.llvm-libc-macros.math_function_macros168)169 170add_libc_test(171  fpclassifyl_test172  SUITE173    libc_include_tests174  SRCS175    fpclassifyl_test.cpp176  DEPENDS177    libc.include.llvm-libc-macros.math_function_macros178)179 180add_libc_test(181  iszero_test182  SUITE183    libc_include_tests184  SRCS185    iszero_test.cpp186  DEPENDS187    libc.include.llvm-libc-macros.math_function_macros188)189 190add_libc_test(191  iszerof_test192  SUITE193    libc_include_tests194  SRCS195    iszerof_test.cpp196  DEPENDS197    libc.include.llvm-libc-macros.math_function_macros198)199 200add_libc_test(201  iszerol_test202  SUITE203    libc_include_tests204  SRCS205    iszerol_test.cpp206  DEPENDS207    libc.include.llvm-libc-macros.math_function_macros208)209 210add_libc_test(211  netinet_in_test212  SUITE213    libc_include_tests214  SRCS215    netinet_in_test.cpp216  DEPENDS217    libc.include.llvm-libc-macros.netinet_in_macros218)219 220add_libc_test(221  signbit_test222  SUITE223    libc_include_tests224  SRCS225    signbit_test.cpp226  DEPENDS227    libc.include.llvm-libc-macros.math_function_macros228)229 230add_libc_test(231  signbitf_test232  SUITE233    libc_include_tests234  SRCS235    signbitf_test.cpp236  DEPENDS237    libc.include.llvm-libc-macros.math_function_macros238)239 240add_libc_test(241  signbitl_test242  SUITE243    libc_include_tests244  SRCS245    signbitl_test.cpp246  DEPENDS247    libc.include.llvm-libc-macros.math_function_macros248)249 250add_libc_test(251  isnan_test252  SUITE253    libc_include_tests254  SRCS255    isnan_test.cpp256  DEPENDS257    libc.include.llvm-libc-macros.math_function_macros258)259 260add_libc_test(261  isnanf_test262  SUITE263    libc_include_tests264  SRCS265    isnanf_test.cpp266  DEPENDS267    libc.include.llvm-libc-macros.math_function_macros268)269 270add_libc_test(271  isnanl_test272  SUITE273    libc_include_tests274  SRCS275    isnanl_test.cpp276  DEPENDS277    libc.include.llvm-libc-macros.math_function_macros278)279 280add_libc_test(281  isinf_test282  SUITE283    libc_include_tests284  SRCS285    isinf_test.cpp286  DEPENDS287    libc.include.llvm-libc-macros.math_function_macros288)289 290add_libc_test(291  isinff_test292  SUITE293    libc_include_tests294  SRCS295    isinff_test.cpp296  DEPENDS297    libc.include.llvm-libc-macros.math_function_macros298)299 300add_libc_test(301  isinfl_test302  SUITE303    libc_include_tests304  SRCS305    isinfl_test.cpp306  DEPENDS307    libc.include.llvm-libc-macros.math_function_macros308)309 310add_libc_test(311  isfinite_test312  SUITE313    libc_include_tests314  SRCS315    isfinite_test.cpp316  DEPENDS317    libc.include.llvm-libc-macros.math_function_macros318)319 320add_libc_test(321  isfinitef_test322  SUITE323    libc_include_tests324  SRCS325    isfinitef_test.cpp326  DEPENDS327    libc.include.llvm-libc-macros.math_function_macros328)329 330add_libc_test(331  isfinitel_test332  SUITE333    libc_include_tests334  SRCS335    isfinitel_test.cpp336  DEPENDS337    libc.include.llvm-libc-macros.math_function_macros338)339 340add_libc_test(341  signbit_c_test342  C_TEST343  UNIT_TEST_ONLY344  SUITE345    libc_include_tests346  SRCS347    signbit_test.c348  COMPILE_OPTIONS349    -Wall350    -Werror351  DEPENDS352    libc.include.llvm-libc-macros.math_function_macros353)354 355add_libc_test(356  isnan_c_test357  C_TEST358  UNIT_TEST_ONLY359  SUITE360    libc_include_tests361  SRCS362    isnan_test.c363  COMPILE_OPTIONS364    -Wall365    -Werror366  DEPENDS367    libc.include.llvm-libc-macros.math_function_macros368)369 370add_libc_test(371  isnormal_c_test372  C_TEST373  UNIT_TEST_ONLY374  SUITE375    libc_include_tests376  SRCS377    isnormal_test.c378  COMPILE_OPTIONS379    -Wall380    -Werror381  DEPENDS382    libc.include.llvm-libc-macros.math_function_macros383)384 385# TODO(https://github.com/llvm/llvm-project/issues/114618): fix linkage failures386# add_libc_test(387#   issignaling_c_test388#   C_TEST389#   UNIT_TEST_ONLY390#   SUITE391#     libc_include_tests392#   SRCS393#     issignaling_test.c394#   COMPILE_OPTIONS395#     -Wall396#     -Werror397#   DEPENDS398#     libc.include.llvm-libc-macros.math_function_macros399#     libc.src.math.issignaling400#     libc.src.math.issignalingf401#     libc.src.math.issignalingl402# )403 404# add_libc_test(405#   iscanonical_c_test406#   C_TEST407#   UNIT_TEST_ONLY408#   SUITE409#     libc_include_tests410#   SRCS411#     iscanonical_test.c412#   COMPILE_OPTIONS413#     -Wall414#     -Werror415#   DEPENDS416#     libc.include.llvm-libc-macros.math_function_macros417#     libc.src.math.iscanonical418#     libc.src.math.iscanonicalf419#     libc.src.math.iscanonicall420# )421 422add_libc_test(423  isinf_c_test424  C_TEST425  UNIT_TEST_ONLY426  SUITE427    libc_include_tests428  SRCS429    isinf_test.c430  COMPILE_OPTIONS431    -Wall432    -Werror433  DEPENDS434    libc.include.llvm-libc-macros.math_function_macros435)436 437add_libc_test(438  isfinite_c_test439  C_TEST440  UNIT_TEST_ONLY441  SUITE442    libc_include_tests443  SRCS444    isfinite_test.c445  COMPILE_OPTIONS446    -Wall447    -Werror448  DEPENDS449    libc.include.llvm-libc-macros.math_function_macros450)451 452add_libc_test(453  issubnormal_c_test454  C_TEST455  UNIT_TEST_ONLY456  SUITE457    libc_include_tests458  SRCS459    issubnormal_test.c460  COMPILE_OPTIONS461    -Wall462    -Werror463  DEPENDS464    libc.include.llvm-libc-macros.math_function_macros465)466 467add_libc_test(468  fpclassify_c_test469  C_TEST470  UNIT_TEST_ONLY471  SUITE472    libc_include_tests473  SRCS474    fpclassify_test.c475  COMPILE_OPTIONS476    -Wall477    -Werror478  DEPENDS479    libc.include.llvm-libc-macros.math_function_macros480)481 482add_libc_test(483  iszero_c_test484  C_TEST485  UNIT_TEST_ONLY486  SUITE487    libc_include_tests488  SRCS489    iszero_test.c490  COMPILE_OPTIONS491    -Wall492    -Werror493  DEPENDS494    libc.include.llvm-libc-macros.math_function_macros495)496 497add_libc_test(498  math_constants_c_test499  C_TEST500  UNIT_TEST_ONLY501  SUITE502    libc_include_tests503  SRCS504    math_constants_test.c505  COMPILE_OPTIONS506    -Wall507    -Werror508  DEPENDS509    libc.include.llvm-libc-macros.math_macros510)511 512# Test `#include <...>` of each header in each available language mode.513# This is gated on -DLLVM_LIBC_BUILD_HEADER_TESTS=ON until all the bugs514# in headers are fixed so the tests all compile.515set(TEST_STDC_VERSIONS 89;99;11;17;23)516set(TEST_STDCXX_VERSIONS 03;11;14;17;20;23;26)517 518function(add_header_test target_name source_file deps std_mode)519  if(LLVM_LIBC_BUILD_HEADER_TESTS)520    add_libc_test(521      ${target_name}522      C_TEST523      HERMETIC_TEST_ONLY524      SUITE525	libc_include_tests526      SRCS527	${source_file}528      COMPILE_OPTIONS529	-Werror530	-Wsystem-headers531	-Wall532	-Wextra533	-std=${std_mode}534      DEPENDS535	${deps}536    )537  endif()538endfunction()539 540foreach(target ${TARGET_PUBLIC_HEADERS})541  string(REPLACE "libc.include." "" header ${target})542  get_target_property(HEADER_NAME ${target} HEADER_NAME)543 544  set(test_stdc_file "${CMAKE_CURRENT_BINARY_DIR}/${header}_test.c")545  configure_file(header-test-template.c ${test_stdc_file} @ONLY)546  foreach(stdc_version ${TEST_STDC_VERSIONS})547    add_header_test(548      "${header}_c${stdc_version}_test"549      ${test_stdc_file}550      ${target}551      "c${stdc_version}"552    )553    add_header_test(554      "${header}_gnu${stdc_version}_test"555      ${test_stdc_file}556      ${target}557      "gnu${stdc_version}"558    )559  endforeach()560 561  set(test_stdcxx_file "${CMAKE_CURRENT_BINARY_DIR}/${header}_test.cpp")562  configure_file(header-test-template.c ${test_stdcxx_file} @ONLY)563  foreach(stdcxx_version ${TEST_STDCXX_VERSIONS})564    add_header_test(565      "${header}_cpp${stdcxx_version}_test"566      ${test_stdcxx_file}567      ${target}568      "c++${stdcxx_version}"569    )570    add_header_test(571      "${header}_gnucpp${stdcxx_version}_test"572      ${test_stdcxx_file}573      ${target}574      "gnu++${stdcxx_version}"575    )576  endforeach()577endforeach()578