add_custom_target(libc-string-tests)

add_subdirectory(memory_utils)

add_libc_test(
  bcopy_test
  SUITE
    libc-string-tests
  SRCS
    bcopy_test.cpp
  DEPENDS
    libc.src.string.bcopy
  LINK_LIBRARIES
    LibcMemoryHelpers
)

add_header_library(
  strchr_test_support
  HDRS
    StrchrTest.h
)

add_libc_test(
  index_test
  SUITE
    libc-string-tests
  SRCS
    index_test.cpp
  DEPENDS
    libc.src.string.index
    .strchr_test_support
)

add_libc_test(
  memccpy_test
  SUITE
    libc-string-tests
  SRCS
    memccpy_test.cpp
  DEPENDS
    libc.src.string.memccpy
)

add_libc_test(
  mempcpy_test
  SUITE
    libc-string-tests
  SRCS
    mempcpy_test.cpp
  DEPENDS
    libc.src.string.mempcpy
)

add_libc_test(
  memmem_test
  SUITE
    libc-string-tests
  SRCS
    memmem_test.cpp
  DEPENDS
    libc.src.string.memmem
)

add_libc_test(
  memchr_test
  SUITE
    libc-string-tests
  SRCS
    memchr_test.cpp
  DEPENDS
    libc.src.string.memchr
)

add_libc_test(
  memrchr_test
  SUITE
    libc-string-tests
  SRCS
    memrchr_test.cpp
  DEPENDS
    libc.src.string.memrchr
)

add_libc_test(
  rindex_test
  SUITE
    libc-string-tests
  SRCS
    rindex_test.cpp
  DEPENDS
    libc.src.string.rindex
    .strchr_test_support
)

add_libc_test(
  stpcpy_test
  SUITE
    libc-string-tests
  SRCS
    stpcpy_test.cpp
  DEPENDS
    libc.src.string.stpcpy
)

add_libc_test(
  stpncpy_test
  SUITE
    libc-string-tests
  SRCS
    stpncpy_test.cpp
  DEPENDS
    libc.src.string.stpncpy
)

add_libc_test(
  strcat_test
  SUITE
    libc-string-tests
  SRCS
    strcat_test.cpp
  DEPENDS
    libc.src.string.strcat
)

add_libc_test(
  strchr_test
  SUITE
    libc-string-tests
  SRCS
    strchr_test.cpp
  DEPENDS
    libc.src.string.strchr
    .strchr_test_support
)

add_libc_test(
  strchrnul_test
  SUITE
    libc-string-tests
  SRCS
    strchrnul_test.cpp
  DEPENDS
    libc.src.string.strchrnul
)

add_libc_test(
  strcmp_test
  SUITE
    libc-string-tests
  SRCS
    strcmp_test.cpp
  DEPENDS
    libc.src.string.strcmp
)

add_libc_test(
  strcasecmp_test
  SUITE
    libc-string-tests
  SRCS
    strcasecmp_test.cpp
  DEPENDS
    libc.src.string.strcasecmp
)

add_libc_test(
  strcasestr_test
  SUITE
    libc-string-tests
  SRCS
    strcasestr_test.cpp
  DEPENDS
    libc.src.string.strcasestr
)

add_libc_test(
  strcoll_test
  SUITE
    libc-string-tests
  SRCS
    strcoll_test.cpp
  DEPENDS
    libc.src.string.strcoll
)

add_libc_test(
  strcpy_test
  SUITE
    libc-string-tests
  SRCS
    strcpy_test.cpp
  DEPENDS
    libc.src.string.strcpy
)

add_libc_test(
  strcspn_test
  SUITE
    libc-string-tests
  SRCS
    strcspn_test.cpp
  DEPENDS
    libc.src.string.strcspn
)

add_libc_test(
  strdup_test
  SUITE
    libc-string-tests
  SRCS
    strdup_test.cpp
  DEPENDS
    libc.include.stdlib
    libc.src.string.strdup
    libc.src.errno.errno
)

add_libc_test(
  strerror_test
  SUITE
    libc-string-tests
  SRCS
    strerror_test.cpp
  DEPENDS
    libc.src.string.strerror
)


add_libc_test(
  strerror_r_test
  SUITE
    libc-string-tests
  SRCS
    strerror_r_test.cpp
  DEPENDS
    libc.src.string.strerror_r
)

add_libc_test(
  strlcat_test
  SUITE
    libc-string-tests
  SRCS
    strlcat_test.cpp
  DEPENDS
    libc.src.string.strlcat
)

add_libc_test(
  strlcpy_test
  SUITE
    libc-string-tests
  SRCS
    strlcpy_test.cpp
  DEPENDS
    libc.src.string.strlcpy
)

add_libc_test(
  strlen_test
  SUITE
    libc-string-tests
  SRCS
    strlen_test.cpp
  DEPENDS
    libc.src.string.strlen
)

add_libc_test(
  strncat_test
  SUITE
    libc-string-tests
  SRCS
    strncat_test.cpp
  DEPENDS
    libc.src.string.strncat
)

add_libc_test(
  strncmp_test
  SUITE
    libc-string-tests
  SRCS
    strncmp_test.cpp
  DEPENDS
    libc.src.string.strncmp
)

add_libc_test(
  strncasecmp_test
  SUITE
    libc-string-tests
  SRCS
    strncasecmp_test.cpp
  DEPENDS
    libc.src.string.strncasecmp
)

add_libc_test(
  strncpy_test
  SUITE
    libc-string-tests
  SRCS
    strncpy_test.cpp
  DEPENDS
    libc.src.string.strncpy
)

add_libc_test(
  strndup_test
  SUITE
    libc-string-tests
  SRCS
    strndup_test.cpp
  DEPENDS
    libc.include.stdlib
    libc.src.string.strndup
)

add_libc_test(
  strnlen_test
  SUITE
    libc-string-tests
  SRCS
    strnlen_test.cpp
  DEPENDS
    libc.src.string.strnlen
)

add_libc_test(
  strpbrk_test
  SUITE
    libc-string-tests
  SRCS
    strpbrk_test.cpp
  DEPENDS
    libc.src.string.strpbrk
)

add_libc_test(
  strrchr_test
  SUITE
    libc-string-tests
  SRCS
    strrchr_test.cpp
  DEPENDS
    libc.src.string.strrchr
    .strchr_test_support
)

add_libc_test(
  strsep_test
  SUITE
    libc-string-tests
  SRCS
    strsep_test.cpp
  DEPENDS
    libc.src.string.strsep
)

add_libc_test(
  strsignal_test
  SUITE
    libc-string-tests
  SRCS
    strsignal_test.cpp
  DEPENDS
    libc.src.string.strsignal
)

add_libc_test(
  strspn_test
  SUITE
    libc-string-tests
  SRCS
    strspn_test.cpp
  DEPENDS
    libc.src.string.strspn
)

add_libc_test(
  strstr_test
  SUITE
    libc-string-tests
  SRCS
    strstr_test.cpp
  DEPENDS
    libc.src.string.strstr
)

add_libc_test(
  strtok_test
  SUITE
    libc-string-tests
  SRCS
    strtok_test.cpp
  DEPENDS
    libc.src.string.strtok
)

add_libc_test(
  strtok_r_test
  SUITE
    libc-string-tests
  SRCS
    strtok_r_test.cpp
  DEPENDS
    libc.src.string.strtok_r
)

add_libc_test(
  strxfrm_test
  SUITE
    libc-string-tests
  SRCS
    strxfrm_test.cpp
  DEPENDS
    libc.src.string.strxfrm
)

add_libc_test(
  memset_explicit_test
  SUITE
    libc-string-tests
  SRCS
    memset_explicit_test.cpp
  DEPENDS
    libc.src.string.memset_explicit
)

# Tests all implementations that can run on the target CPU.
function(add_libc_multi_impl_test name)
  get_property(fq_implementations GLOBAL PROPERTY ${name}_implementations)
  foreach(fq_config_name IN LISTS fq_implementations)
    get_target_property(required_cpu_features ${fq_config_name} REQUIRE_CPU_FEATURES)
    cpu_supports(can_run "${required_cpu_features}")
    if(can_run)
      string(FIND ${fq_config_name} "." last_dot_loc REVERSE)
      math(EXPR name_loc "${last_dot_loc} + 1")
      string(SUBSTRING ${fq_config_name} ${name_loc} -1 target_name)
      add_libc_test(
        ${target_name}_test
        SUITE
          libc-string-tests
        COMPILE_OPTIONS
          ${LIBC_COMPILE_OPTIONS_NATIVE}
        LINK_LIBRARIES
          LibcMemoryHelpers
        ${ARGN}
        DEPENDS
          ${fq_config_name}
          libc.src.__support.macros.sanitizer
      )
      get_fq_target_name(${fq_config_name}_test fq_target_name)
    else()
      message(STATUS "Skipping test for '${fq_config_name}' insufficient host cpu features '${required_cpu_features}'")
    endif()
  endforeach()
endfunction()

add_libc_multi_impl_test(bcmp SRCS bcmp_test.cpp)
add_libc_multi_impl_test(bzero SRCS bzero_test.cpp)
add_libc_multi_impl_test(memcmp SRCS memcmp_test.cpp)
add_libc_multi_impl_test(memcpy SRCS memcpy_test.cpp)
add_libc_multi_impl_test(memmove SRCS memmove_test.cpp)
add_libc_multi_impl_test(memset SRCS memset_test.cpp)
