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 memcmp_test 57 SUITE 58 libc_string_unittests 59 SRCS 60 memcmp_test.cpp 61 DEPENDS 62 libc.src.string.memcmp 63) 64 65add_libc_unittest( 66 memmove_test 67 SUITE 68 libc_string_unittests 69 SRCS 70 memmove_test.cpp 71 DEPENDS 72 libc.src.string.memcmp 73 libc.src.string.memmove 74) 75 76add_libc_unittest( 77 strchr_test 78 SUITE 79 libc_string_unittests 80 SRCS 81 strchr_test.cpp 82 DEPENDS 83 libc.src.string.strchr 84) 85 86add_libc_unittest( 87 strstr_test 88 SUITE 89 libc_string_unittests 90 SRCS 91 strstr_test.cpp 92 DEPENDS 93 libc.src.string.strstr 94) 95 96add_libc_unittest( 97 strncpy_test 98 SUITE 99 libc_string_unittests 100 SRCS 101 strncpy_test.cpp 102 DEPENDS 103 libc.src.string.strncpy 104) 105 106add_libc_unittest( 107 strnlen_test 108 SUITE 109 libc_string_unittests 110 SRCS 111 strnlen_test.cpp 112 DEPENDS 113 libc.src.string.strnlen 114) 115 116add_libc_unittest( 117 memrchr_test 118 SUITE 119 libc_string_unittests 120 SRCS 121 memrchr_test.cpp 122 DEPENDS 123 libc.src.string.memrchr 124) 125 126add_libc_unittest( 127 strrchr_test 128 SUITE 129 libc_string_unittests 130 SRCS 131 strrchr_test.cpp 132 DEPENDS 133 libc.src.string.strrchr 134) 135 136add_libc_unittest( 137 strcspn_test 138 SUITE 139 libc_string_unittests 140 SRCS 141 strcspn_test.cpp 142 DEPENDS 143 libc.src.string.strcspn 144) 145 146add_libc_unittest( 147 strspn_test 148 SUITE 149 libc_string_unittests 150 SRCS 151 strspn_test.cpp 152 DEPENDS 153 libc.src.string.strspn 154) 155 156add_libc_unittest( 157 strpbrk_test 158 SUITE 159 libc_string_unittests 160 SRCS 161 strpbrk_test.cpp 162 DEPENDS 163 libc.src.string.strpbrk 164) 165 166add_libc_unittest( 167 strtok_test 168 SUITE 169 libc_string_unittests 170 SRCS 171 strtok_test.cpp 172 DEPENDS 173 libc.src.string.strtok 174) 175 176add_libc_unittest( 177 strtok_r_test 178 SUITE 179 libc_string_unittests 180 SRCS 181 strtok_r_test.cpp 182 DEPENDS 183 libc.src.string.strtok_r 184) 185 186# Tests all implementations that can run on the target CPU. 187function(add_libc_multi_impl_test name) 188 get_property(fq_implementations GLOBAL PROPERTY ${name}_implementations) 189 foreach(fq_config_name IN LISTS fq_implementations) 190 get_target_property(required_cpu_features ${fq_config_name} REQUIRE_CPU_FEATURES) 191 cpu_supports(can_run "${required_cpu_features}") 192 if(can_run) 193 add_libc_unittest( 194 ${fq_config_name}_test 195 SUITE 196 libc_string_unittests 197 DEPENDS 198 ${fq_config_name} 199 COMPILE_OPTIONS 200 ${LIBC_COMPILE_OPTIONS_NATIVE} 201 ${ARGN} 202 ) 203 else() 204 message(STATUS "Skipping test for '${fq_config_name}' insufficient host cpu features '${required_cpu_features}'") 205 endif() 206 endforeach() 207endfunction() 208 209add_libc_multi_impl_test(memcpy SRCS memcpy_test.cpp) 210add_libc_multi_impl_test(memset SRCS memset_test.cpp) 211add_libc_multi_impl_test(bzero SRCS bzero_test.cpp) 212