1add_libc_testsuite(libc_string_unittests) 2 3add_subdirectory(memory_utils) 4 5add_libc_unittest( 6 strcat_test 7 SUITE 8 libc_string_unittests 9 SRCS 10 strcat_test.cpp 11 DEPENDS 12 libc.src.string.strcat 13) 14 15add_libc_unittest( 16 strcpy_test 17 SUITE 18 libc_string_unittests 19 SRCS 20 strcpy_test.cpp 21 DEPENDS 22 libc.src.string.strcpy 23) 24 25add_libc_unittest( 26 strlen_test 27 SUITE 28 libc_string_unittests 29 SRCS 30 strlen_test.cpp 31 DEPENDS 32 libc.src.string.strlen 33) 34 35add_libc_unittest( 36 strcmp_test 37 SUITE 38 libc_string_unittests 39 SRCS 40 strcmp_test.cpp 41 DEPENDS 42 libc.src.string.strcmp 43) 44 45add_libc_unittest( 46 memchr_test 47 SUITE 48 libc_string_unittests 49 SRCS 50 memchr_test.cpp 51 DEPENDS 52 libc.src.string.memchr 53) 54 55add_libc_unittest( 56 strchr_test 57 SUITE 58 libc_string_unittests 59 SRCS 60 strchr_test.cpp 61 DEPENDS 62 libc.src.string.strchr 63) 64 65# Tests all implementations that can run on the host. 66function(add_libc_multi_impl_test name) 67 get_property(fq_implementations GLOBAL PROPERTY ${name}_implementations) 68 foreach(fq_config_name IN LISTS fq_implementations) 69 get_target_property(required_cpu_features ${fq_config_name} REQUIRE_CPU_FEATURES) 70 host_supports(can_run "${required_cpu_features}") 71 if(can_run) 72 add_libc_unittest( 73 ${fq_config_name}_test 74 SUITE 75 libc_string_unittests 76 DEPENDS 77 ${fq_config_name} 78 ${ARGN} 79 ) 80 else() 81 message(STATUS "Skipping test for '${fq_config_name}' insufficient host cpu features '${required_cpu_features}'") 82 endif() 83 endforeach() 84endfunction() 85 86add_libc_multi_impl_test(memcpy SRCS memcpy_test.cpp) 87add_libc_multi_impl_test(memset SRCS memset_test.cpp) 88add_libc_multi_impl_test(bzero SRCS bzero_test.cpp) 89