add_custom_target(libc_stdio_unittests)

add_libc_test(
  fileop_test
  SUITE
    libc_stdio_unittests
  SRCS
    fileop_test.cpp
  DEPENDS
    libc.include.stdio
    libc.src.errno.errno
    libc.src.stdio.clearerr
    libc.src.stdio.fclose
    libc.src.stdio.feof
    libc.src.stdio.ferror
    libc.src.stdio.fflush
    libc.src.stdio.fileno
    libc.src.stdio.fopen
    libc.src.stdio.fputs
    libc.src.stdio.fread
    libc.src.stdio.fseek
    libc.src.stdio.fwrite
)

add_libc_test(
  ungetc_test
  SUITE
    libc_stdio_unittests
  SRCS
    ungetc_test.cpp
  DEPENDS
    libc.include.stdio
    libc.src.stdio.fclose
    libc.src.stdio.fopen
    libc.src.stdio.fread
    libc.src.stdio.fseek
    libc.src.stdio.fwrite
    libc.src.stdio.ungetc
)

add_libc_test(
  setbuf_test
  SUITE
    libc_stdio_unittests
  SRCS
    setbuf_test.cpp
  DEPENDS
    libc.include.stdio
    libc.src.stdio.fclose
    libc.src.stdio.fopen
    libc.src.stdio.fread
    libc.src.stdio.fwrite
    libc.src.stdio.setbuf
    libc.src.stdio.ungetc
)

add_libc_test(
  setvbuf_test
  SUITE
    libc_stdio_unittests
  SRCS
    setvbuf_test.cpp
  DEPENDS
    libc.include.stdio
    libc.src.errno.errno
    libc.src.stdio.fclose
    libc.src.stdio.fopen
    libc.src.stdio.fread
    libc.src.stdio.fwrite
    libc.src.stdio.setvbuf
)

add_libc_test(
  unlocked_fileop_test
  SUITE
    libc_stdio_unittests
  SRCS
    unlocked_fileop_test.cpp
  DEPENDS
    libc.include.stdio
    libc.src.errno.errno
    libc.src.stdio.clearerr_unlocked
    libc.src.stdio.fclose
    libc.src.stdio.feof_unlocked
    libc.src.stdio.ferror_unlocked
    libc.src.stdio.flockfile
    libc.src.stdio.fopen
    libc.src.stdio.fread_unlocked
    libc.src.stdio.funlockfile
    libc.src.stdio.fwrite_unlocked
)

add_libc_test(
  fopencookie_test
  SUITE
    libc_stdio_unittests
  SRCS
    fopencookie_test.cpp
  DEPENDS
    libc.include.stdio
    libc.include.stdlib
    libc.src.errno.errno
    libc.src.stdio.clearerr
    libc.src.stdio.fclose
    libc.src.stdio.feof
    libc.src.stdio.ferror
    libc.src.stdio.fflush
    libc.src.stdio.fopencookie
    libc.src.stdio.fread
    libc.src.stdio.fseek
    libc.src.stdio.fwrite
  LINK_LIBRARIES
    LibcMemoryHelpers
)

if(LIBC_CONF_PRINTF_DISABLE_FLOAT)
  list(APPEND sprintf_test_copts "-DLIBC_COPT_PRINTF_DISABLE_FLOAT")
endif()
if(LIBC_CONF_PRINTF_DISABLE_INDEX_MODE)
  list(APPEND sprintf_test_copts "-DLIBC_COPT_PRINTF_DISABLE_INDEX_MODE")
endif()
if(LIBC_CONF_PRINTF_DISABLE_WRITE_INT)
  list(APPEND sprintf_test_copts "-DLIBC_COPT_PRINTF_DISABLE_WRITE_INT")
endif()
if(LIBC_CONF_PRINTF_DISABLE_FIXED_POINT)
  list(APPEND sprintf_test_copts "-DLIBC_COPT_PRINTF_DISABLE_FIXED_POINT")
endif()

add_fp_unittest(
  sprintf_test
  UNIT_TEST_ONLY
  SUITE
    libc_stdio_unittests
  SRCS
    sprintf_test.cpp
  DEPENDS
    libc.src.stdio.sprintf
    libc.src.__support.FPUtil.fp_bits
    libc.include.inttypes
  COMPILE_OPTIONS
    ${sprintf_test_copts}
)

add_libc_test(
  snprintf_test
  SUITE
    libc_stdio_unittests
  SRCS
    snprintf_test.cpp
  DEPENDS
    libc.src.stdio.snprintf
)

if(LLVM_LIBC_FULL_BUILD)
  # In fullbuild mode, fprintf's tests use the internal FILE for other functions.
  list(APPEND fprintf_test_deps
       libc.src.stdio.fclose
       libc.src.stdio.ferror
       libc.src.stdio.fopen
       libc.src.stdio.fread
  )
  # This is to be used for tests which write to libc's platform streams
  # under full build but write to system-lib's streams otherwise.
  set(hermetic_test_only HERMETIC_TEST_ONLY)
else()
# Else in overlay mode they use the system's FILE.
 set(use_system_file "-DLIBC_COPT_STDIO_USE_SYSTEM_FILE")
endif()

add_libc_test(
  fprintf_test
  SUITE
    libc_stdio_unittests
  SRCS
    fprintf_test.cpp
  DEPENDS
    libc.src.stdio.fprintf
    ${fprintf_test_deps}
  COMPILE_OPTIONS
    ${use_system_file}
)

add_libc_test(
  printf_test
  ${hermetic_test_only}
  SUITE
    libc_stdio_unittests
  SRCS
    printf_test.cpp
  DEPENDS
    libc.src.stdio.printf
)

add_fp_unittest(
  vsprintf_test
  UNIT_TEST_ONLY
  SUITE
    libc_stdio_unittests
  SRCS
    vsprintf_test.cpp
  DEPENDS
    libc.src.stdio.vsprintf
)

add_libc_test(
  vsnprintf_test
  SUITE
    libc_stdio_unittests
  SRCS
    vsnprintf_test.cpp
  DEPENDS
    libc.src.stdio.vsnprintf
)

add_libc_test(
  vfprintf_test
  SUITE
    libc_stdio_unittests
  SRCS
    vfprintf_test.cpp
  DEPENDS
    libc.src.stdio.vfprintf
    ${fprintf_test_deps}
  COMPILE_OPTIONS
    ${use_system_file}
)

add_libc_test(
  vprintf_test
  ${hermetic_test_only}
  SUITE
    libc_stdio_unittests
  SRCS
    vprintf_test.cpp
  DEPENDS
    libc.src.stdio.vprintf
)


if(LLVM_LIBC_FULL_BUILD)
  # In fullbuild mode, fscanf's tests use the internal FILE for other functions.
  list(APPEND fscanf_test_deps
       libc.src.stdio.fclose
       libc.src.stdio.ferror
       libc.src.stdio.fopen
       libc.src.stdio.fwrite
  )
endif()

add_libc_test(
  fscanf_test
  SUITE
    libc_stdio_unittests
  SRCS
    fscanf_test.cpp
  DEPENDS
    libc.src.stdio.fscanf
    ${fscanf_test_deps}
    libc.src.__support.CPP.string_view
  COMPILE_OPTIONS
    ${use_system_file}
)

add_libc_test(
  sscanf_test
  SUITE
    libc_stdio_unittests
  SRCS
    sscanf_test.cpp
  DEPENDS
    libc.src.stdio.sscanf
  LINK_LIBRARIES
    LibcFPTestHelpers
)

add_libc_test(
  puts_test
  HERMETIC_TEST_ONLY # writes to libc's stdout
  SUITE
    libc_stdio_unittests
  SRCS
    puts_test.cpp
  DEPENDS
    libc.src.stdio.puts
)

add_libc_test(
  fputs_test
  HERMETIC_TEST_ONLY # writes to libc's stdout and stderr
  SUITE
    libc_stdio_unittests
  SRCS
    fputs_test.cpp
  DEPENDS
    libc.src.stdio.fputs
    libc.src.stdio.stdout
    libc.src.stdio.stderr
)

add_libc_test(
  fputc_test
  HERMETIC_TEST_ONLY # writes to libc's stdout and stderr
  SUITE
    libc_stdio_unittests
  SRCS
    fputc_test.cpp
  DEPENDS
    libc.src.stdio.fputc
    libc.src.stdio.putchar
    libc.src.stdio.stdout
    libc.src.stdio.stderr
)

add_libc_test(
  fopen_test
  SUITE
    libc_stdio_unittests
  SRCS
    fopen_test.cpp
  DEPENDS
    libc.src.stdio.fread
    libc.src.stdio.fwrite
    libc.src.stdio.fclose
    libc.src.stdio.fopen
)

add_libc_test(
  putc_test
  SUITE
    libc_stdio_unittests
  SRCS
    putc_test.cpp
  DEPENDS
    libc.src.stdio.putc
    libc.src.stdio.fclose
    libc.src.stdio.ferror
    libc.src.stdio.fopen
    libc.src.stdio.fread
)

if(${LIBC_TARGET_OS} STREQUAL "linux")
  add_libc_test(
    remove_test
    SUITE
      libc_stdio_unittests
    SRCS
      remove_test.cpp
    DEPENDS
      libc.include.unistd
      libc.src.errno.errno
      libc.src.fcntl.open
      libc.src.stdio.remove
      libc.src.sys.stat.mkdirat
      libc.src.unistd.access
      libc.src.unistd.close
  )

  add_libc_test(
    rename_test
    SUITE
      libc_stdio_unittests
    SRCS
      rename_test.cpp
    DEPENDS
      libc.src.errno.errno
      libc.src.fcntl.open
      libc.src.stdio.rename
      libc.src.unistd.access
      libc.src.unistd.close
      libc.test.UnitTest.ErrnoSetterMatcher
  )
endif()

add_libc_test(
  fgetc_test
  SUITE
    libc_stdio_unittests
  SRCS
    fgetc_test.cpp
  DEPENDS
    libc.include.stdio
    libc.src.errno.errno
    libc.src.stdio.fclose
    libc.src.stdio.feof
    libc.src.stdio.ferror
    libc.src.stdio.fgetc
    libc.src.stdio.fopen
    libc.src.stdio.fwrite
    libc.src.stdio.getc
)

add_libc_test(
  fgetc_unlocked_test
  SUITE
    libc_stdio_unittests
  SRCS
    fgetc_unlocked_test.cpp
  DEPENDS
    libc.include.stdio
    libc.src.errno.errno
    libc.src.stdio.fclose
    libc.src.stdio.ferror
    libc.src.stdio.ferror_unlocked
    libc.src.stdio.feof
    libc.src.stdio.feof_unlocked
    libc.src.stdio.fgetc_unlocked
    libc.src.stdio.flockfile
    libc.src.stdio.fopen
    libc.src.stdio.funlockfile
    libc.src.stdio.fwrite
    libc.src.stdio.getc_unlocked
)

add_libc_test(
  fgets_test
  SUITE
    libc_stdio_unittests
  SRCS
    fgets_test.cpp
  DEPENDS
    libc.include.stdio
    libc.src.errno.errno
    libc.src.stdio.fclose
    libc.src.stdio.feof
    libc.src.stdio.ferror
    libc.src.stdio.fgets
    libc.src.stdio.fopen
    libc.src.stdio.fwrite
)

add_libc_test(
  ftell_test
  SUITE
    libc_stdio_unittests
  SRCS
    ftell_test.cpp
  DEPENDS
    libc.include.stdio
    libc.src.stdio.fclose
    libc.src.stdio.fflush
    libc.src.stdio.fopen
    libc.src.stdio.fread
    libc.src.stdio.fseek
    libc.src.stdio.ftell
    libc.src.stdio.fseeko
    libc.src.stdio.ftello
    libc.src.stdio.fwrite
    libc.src.stdio.setvbuf
)

# Create an output directory for any temporary test files.
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testdata)

if(LIBC_TARGET_OS_IS_GPU)
  return()
endif()

add_subdirectory(printf_core)
add_subdirectory(scanf_core)
add_subdirectory(testdata)
