# This file was generated by the YaTool build system (https://github.com/yandex/yatool),
# from a source YaTool build configuration provided in ya.make files.
#
# If the repository supports both CMake and ya build configurations, please modify both of them.
#
# If only CMake build configuration is supported then modify only CMake files and note that only
# simple modifications are allowed like adding source-files to targets or adding simple properties
# like target_include_directories. These modifications will be ported to original ya.make files
# by maintainers. Any complex modifications which can't be easily ported back to the ya build
# system may be rejected.
#
# Please refer to the build instructions in the repository for more information about manual
# changes in this file.

add_executable(util-system-ut)


target_link_libraries(util-system-ut PUBLIC
  contrib-libs-cxxsupp
  yutil
  build-cow-on
  library-cpp-cpuid_check
  cpp-testing-unittest_main
  cpp-testing-benchmark
)

target_allocator(util-system-ut
  cpp-malloc-jemalloc
)

target_link_options(util-system-ut PRIVATE
  -ldl
  -Wl,--no-as-needed
  -fPIC
  -fPIC
)

target_sources(util-system-ut PRIVATE
  ${PROJECT_SOURCE_DIR}/util/system/align_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/atexit_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/backtrace_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/byteorder_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/compat_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/compiler_ut.c
  ${PROJECT_SOURCE_DIR}/util/system/compiler_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/context_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/condvar_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/cpu_id_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/datetime_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/daemon_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/defaults_ut.c
  ${PROJECT_SOURCE_DIR}/util/system/direct_io_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/env_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/error_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/event_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/execpath_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/file_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/filemap_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/flock_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/fs_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/fstat_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/getpid_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/guard_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/hi_lo_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/hostname_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/info_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/interrupt_signals_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/mem_info_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/mincore_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/mutex_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/nice_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/pipe_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/platform_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/progname_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/rusage_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/rwlock_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/sanitizers_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/shellcommand_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/spinlock_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/src_root_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/src_location_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/shmat_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/tempfile_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/thread_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/tls_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/types_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/user_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/unaligned_mem_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/yassert_ut.cpp
  ${PROJECT_SOURCE_DIR}/util/system/type_name_ut.cpp
)


set_property(
  SOURCE
  ${PROJECT_SOURCE_DIR}/util/system/compiler_ut.c
  APPEND
  PROPERTY
  COMPILE_OPTIONS
)

set_property(
  SOURCE
  ${PROJECT_SOURCE_DIR}/util/system/defaults_ut.c
  APPEND
  PROPERTY
  COMPILE_OPTIONS
)

set_property(
  TARGET
  util-system-ut
  PROPERTY
  SPLIT_FACTOR
  40
)

add_yunittest(
  NAME
  util-system-ut
  TEST_TARGET
  util-system-ut
  TEST_ARG
  --print-before-suite
  --print-before-test
  --fork-tests
  --print-times
  --show-fails
)

set_yunittest_property(
  TEST
  util-system-ut
  PROPERTY
  LABELS
  MEDIUM
)

set_yunittest_property(
  TEST
  util-system-ut
  PROPERTY
  ENVIRONMENT
)

set_yunittest_property(
  TEST
  util-system-ut
  PROPERTY
  TIMEOUT
  300
)

vcs_info(util-system-ut)

set_yunittest_property(
  TEST
  util-system-ut
  PROPERTY
  PROCESSORS
  1
)
