aboutsummaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authoralexv-smirnov <alex@ydb.tech>2023-03-15 19:59:12 +0300
committeralexv-smirnov <alex@ydb.tech>2023-03-15 19:59:12 +0300
commit056bb284ccf8dd6793ec3a54ffa36c4fb2b9ad11 (patch)
tree4740980126f32e3af7937ba0ca5f83e59baa4ab0 /library
parent269126dcced1cc8b53eb4398b4a33e5142f10290 (diff)
downloadydb-056bb284ccf8dd6793ec3a54ffa36c4fb2b9ad11.tar.gz
add library/cpp/actors, ymake build to ydb oss export
Diffstat (limited to 'library')
-rw-r--r--library/cpp/accurate_accumulate/benchmark/metrics/ya.make15
-rw-r--r--library/cpp/accurate_accumulate/benchmark/ya.make15
-rw-r--r--library/cpp/accurate_accumulate/ya.make12
-rw-r--r--library/cpp/actors/CMakeLists.txt1
-rw-r--r--library/cpp/actors/core/CMakeLists.darwin-x86_64.txt1
-rw-r--r--library/cpp/actors/core/CMakeLists.linux-aarch64.txt1
-rw-r--r--library/cpp/actors/core/CMakeLists.linux-x86_64.txt1
-rw-r--r--library/cpp/actors/core/CMakeLists.windows-x86_64.txt1
-rw-r--r--library/cpp/actors/core/ut/CMakeLists.darwin-x86_64.txt87
-rw-r--r--library/cpp/actors/core/ut/CMakeLists.linux-aarch64.txt89
-rw-r--r--library/cpp/actors/core/ut/CMakeLists.linux-x86_64.txt91
-rw-r--r--library/cpp/actors/core/ut/CMakeLists.txt17
-rw-r--r--library/cpp/actors/core/ut/CMakeLists.windows-x86_64.txt79
-rw-r--r--library/cpp/actors/core/ut/ya.make42
-rw-r--r--library/cpp/actors/core/ya.make130
-rw-r--r--library/cpp/actors/dnscachelib/ya.make23
-rw-r--r--library/cpp/actors/dnsresolver/CMakeLists.darwin-x86_64.txt1
-rw-r--r--library/cpp/actors/dnsresolver/CMakeLists.linux-aarch64.txt1
-rw-r--r--library/cpp/actors/dnsresolver/CMakeLists.linux-x86_64.txt1
-rw-r--r--library/cpp/actors/dnsresolver/CMakeLists.windows-x86_64.txt1
-rw-r--r--library/cpp/actors/dnsresolver/ut/CMakeLists.darwin-x86_64.txt70
-rw-r--r--library/cpp/actors/dnsresolver/ut/CMakeLists.linux-aarch64.txt72
-rw-r--r--library/cpp/actors/dnsresolver/ut/CMakeLists.linux-x86_64.txt74
-rw-r--r--library/cpp/actors/dnsresolver/ut/CMakeLists.txt17
-rw-r--r--library/cpp/actors/dnsresolver/ut/CMakeLists.windows-x86_64.txt62
-rw-r--r--library/cpp/actors/dnsresolver/ut/ya.make18
-rw-r--r--library/cpp/actors/dnsresolver/ya.make20
-rw-r--r--library/cpp/actors/examples/01_ping_pong/CMakeLists.darwin-x86_64.txt29
-rw-r--r--library/cpp/actors/examples/01_ping_pong/CMakeLists.linux-aarch64.txt31
-rw-r--r--library/cpp/actors/examples/01_ping_pong/CMakeLists.linux-x86_64.txt32
-rw-r--r--library/cpp/actors/examples/01_ping_pong/CMakeLists.txt17
-rw-r--r--library/cpp/actors/examples/01_ping_pong/CMakeLists.windows-x86_64.txt21
-rw-r--r--library/cpp/actors/examples/01_ping_pong/main.cpp131
-rw-r--r--library/cpp/actors/examples/01_ping_pong/ya.make13
-rw-r--r--library/cpp/actors/examples/02_discovery/CMakeLists.darwin-x86_64.txt65
-rw-r--r--library/cpp/actors/examples/02_discovery/CMakeLists.linux-aarch64.txt67
-rw-r--r--library/cpp/actors/examples/02_discovery/CMakeLists.linux-x86_64.txt68
-rw-r--r--library/cpp/actors/examples/02_discovery/CMakeLists.txt17
-rw-r--r--library/cpp/actors/examples/02_discovery/CMakeLists.windows-x86_64.txt57
-rw-r--r--library/cpp/actors/examples/02_discovery/endpoint.cpp118
-rw-r--r--library/cpp/actors/examples/02_discovery/lookup.cpp134
-rw-r--r--library/cpp/actors/examples/02_discovery/main.cpp136
-rw-r--r--library/cpp/actors/examples/02_discovery/protocol.proto19
-rw-r--r--library/cpp/actors/examples/02_discovery/publish.cpp113
-rw-r--r--library/cpp/actors/examples/02_discovery/replica.cpp182
-rw-r--r--library/cpp/actors/examples/02_discovery/services.h85
-rw-r--r--library/cpp/actors/examples/02_discovery/ya.make25
-rw-r--r--library/cpp/actors/examples/CMakeLists.txt10
-rw-r--r--library/cpp/actors/examples/ya.make4
-rw-r--r--library/cpp/actors/helpers/CMakeLists.darwin-x86_64.txt1
-rw-r--r--library/cpp/actors/helpers/CMakeLists.linux-aarch64.txt1
-rw-r--r--library/cpp/actors/helpers/CMakeLists.linux-x86_64.txt1
-rw-r--r--library/cpp/actors/helpers/CMakeLists.windows-x86_64.txt1
-rw-r--r--library/cpp/actors/helpers/ut/CMakeLists.darwin-x86_64.txt76
-rw-r--r--library/cpp/actors/helpers/ut/CMakeLists.linux-aarch64.txt78
-rw-r--r--library/cpp/actors/helpers/ut/CMakeLists.linux-x86_64.txt80
-rw-r--r--library/cpp/actors/helpers/ut/CMakeLists.txt17
-rw-r--r--library/cpp/actors/helpers/ut/CMakeLists.windows-x86_64.txt68
-rw-r--r--library/cpp/actors/helpers/ut/ya.make31
-rw-r--r--library/cpp/actors/helpers/ya.make23
-rw-r--r--library/cpp/actors/http/CMakeLists.darwin-x86_64.txt1
-rw-r--r--library/cpp/actors/http/CMakeLists.linux-aarch64.txt1
-rw-r--r--library/cpp/actors/http/CMakeLists.linux-x86_64.txt1
-rw-r--r--library/cpp/actors/http/CMakeLists.windows-x86_64.txt1
-rw-r--r--library/cpp/actors/http/ut/CMakeLists.darwin-x86_64.txt67
-rw-r--r--library/cpp/actors/http/ut/CMakeLists.linux-aarch64.txt69
-rw-r--r--library/cpp/actors/http/ut/CMakeLists.linux-x86_64.txt71
-rw-r--r--library/cpp/actors/http/ut/CMakeLists.txt17
-rw-r--r--library/cpp/actors/http/ut/CMakeLists.windows-x86_64.txt56
-rw-r--r--library/cpp/actors/http/ut/ya.make16
-rw-r--r--library/cpp/actors/http/ya.make36
-rw-r--r--library/cpp/actors/interconnect/CMakeLists.darwin-x86_64.txt3
-rw-r--r--library/cpp/actors/interconnect/CMakeLists.linux-aarch64.txt3
-rw-r--r--library/cpp/actors/interconnect/CMakeLists.linux-x86_64.txt3
-rw-r--r--library/cpp/actors/interconnect/CMakeLists.windows-x86_64.txt3
-rw-r--r--library/cpp/actors/interconnect/mock/ya.make14
-rw-r--r--library/cpp/actors/interconnect/ut/CMakeLists.darwin-x86_64.txt83
-rw-r--r--library/cpp/actors/interconnect/ut/CMakeLists.linux-aarch64.txt85
-rw-r--r--library/cpp/actors/interconnect/ut/CMakeLists.linux-x86_64.txt87
-rw-r--r--library/cpp/actors/interconnect/ut/CMakeLists.txt17
-rw-r--r--library/cpp/actors/interconnect/ut/CMakeLists.windows-x86_64.txt75
-rw-r--r--library/cpp/actors/interconnect/ut/lib/CMakeLists.darwin-x86_64.txt14
-rw-r--r--library/cpp/actors/interconnect/ut/lib/CMakeLists.linux-aarch64.txt15
-rw-r--r--library/cpp/actors/interconnect/ut/lib/CMakeLists.linux-x86_64.txt15
-rw-r--r--library/cpp/actors/interconnect/ut/lib/CMakeLists.txt17
-rw-r--r--library/cpp/actors/interconnect/ut/lib/CMakeLists.windows-x86_64.txt14
-rw-r--r--library/cpp/actors/interconnect/ut/lib/ya.make10
-rw-r--r--library/cpp/actors/interconnect/ut/protos/CMakeLists.darwin-x86_64.txt43
-rw-r--r--library/cpp/actors/interconnect/ut/protos/CMakeLists.linux-aarch64.txt44
-rw-r--r--library/cpp/actors/interconnect/ut/protos/CMakeLists.linux-x86_64.txt44
-rw-r--r--library/cpp/actors/interconnect/ut/protos/CMakeLists.txt17
-rw-r--r--library/cpp/actors/interconnect/ut/protos/CMakeLists.windows-x86_64.txt43
-rw-r--r--library/cpp/actors/interconnect/ut/protos/ya.make9
-rw-r--r--library/cpp/actors/interconnect/ut/ya.make31
-rw-r--r--library/cpp/actors/interconnect/ut_fat/CMakeLists.darwin-x86_64.txt69
-rw-r--r--library/cpp/actors/interconnect/ut_fat/CMakeLists.linux-aarch64.txt71
-rw-r--r--library/cpp/actors/interconnect/ut_fat/CMakeLists.linux-x86_64.txt73
-rw-r--r--library/cpp/actors/interconnect/ut_fat/CMakeLists.txt17
-rw-r--r--library/cpp/actors/interconnect/ut_fat/CMakeLists.windows-x86_64.txt61
-rw-r--r--library/cpp/actors/interconnect/ut_fat/ya.make21
-rw-r--r--library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-x86_64.txt75
-rw-r--r--library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.linux-aarch64.txt77
-rw-r--r--library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.linux-x86_64.txt79
-rw-r--r--library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.txt17
-rw-r--r--library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.windows-x86_64.txt67
-rw-r--r--library/cpp/actors/interconnect/ut_huge_cluster/ya.make34
-rw-r--r--library/cpp/actors/interconnect/ya.make95
-rw-r--r--library/cpp/actors/log_backend/ya.make12
-rw-r--r--library/cpp/actors/memory_log/ya.make15
-rw-r--r--library/cpp/actors/prof/CMakeLists.darwin-x86_64.txt1
-rw-r--r--library/cpp/actors/prof/CMakeLists.linux-aarch64.txt1
-rw-r--r--library/cpp/actors/prof/CMakeLists.linux-x86_64.txt1
-rw-r--r--library/cpp/actors/prof/CMakeLists.windows-x86_64.txt1
-rw-r--r--library/cpp/actors/prof/ut/CMakeLists.darwin-x86_64.txt66
-rw-r--r--library/cpp/actors/prof/ut/CMakeLists.linux-aarch64.txt68
-rw-r--r--library/cpp/actors/prof/ut/CMakeLists.linux-x86_64.txt70
-rw-r--r--library/cpp/actors/prof/ut/CMakeLists.txt17
-rw-r--r--library/cpp/actors/prof/ut/CMakeLists.windows-x86_64.txt58
-rw-r--r--library/cpp/actors/prof/ut/ya.make7
-rw-r--r--library/cpp/actors/prof/ya.make27
-rw-r--r--library/cpp/actors/protos/ya.make12
-rw-r--r--library/cpp/actors/testlib/CMakeLists.darwin-x86_64.txt1
-rw-r--r--library/cpp/actors/testlib/CMakeLists.linux-aarch64.txt1
-rw-r--r--library/cpp/actors/testlib/CMakeLists.linux-x86_64.txt1
-rw-r--r--library/cpp/actors/testlib/CMakeLists.windows-x86_64.txt1
-rw-r--r--library/cpp/actors/testlib/ut/CMakeLists.darwin-x86_64.txt67
-rw-r--r--library/cpp/actors/testlib/ut/CMakeLists.linux-aarch64.txt69
-rw-r--r--library/cpp/actors/testlib/ut/CMakeLists.linux-x86_64.txt71
-rw-r--r--library/cpp/actors/testlib/ut/CMakeLists.txt17
-rw-r--r--library/cpp/actors/testlib/ut/CMakeLists.windows-x86_64.txt59
-rw-r--r--library/cpp/actors/testlib/ut/ya.make15
-rw-r--r--library/cpp/actors/testlib/ya.make23
-rw-r--r--library/cpp/actors/util/CMakeLists.darwin-x86_64.txt1
-rw-r--r--library/cpp/actors/util/CMakeLists.linux-aarch64.txt1
-rw-r--r--library/cpp/actors/util/CMakeLists.linux-x86_64.txt1
-rw-r--r--library/cpp/actors/util/CMakeLists.windows-x86_64.txt1
-rw-r--r--library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt72
-rw-r--r--library/cpp/actors/util/ut/CMakeLists.linux-aarch64.txt76
-rw-r--r--library/cpp/actors/util/ut/CMakeLists.linux-x86_64.txt78
-rw-r--r--library/cpp/actors/util/ut/CMakeLists.txt17
-rw-r--r--library/cpp/actors/util/ut/CMakeLists.windows-x86_64.txt66
-rw-r--r--library/cpp/actors/util/ut/ya.make20
-rw-r--r--library/cpp/actors/util/ya.make47
-rw-r--r--library/cpp/actors/wilson/protos/ya.make17
-rw-r--r--library/cpp/actors/wilson/ya.make21
-rw-r--r--library/cpp/actors/ya.make15
-rw-r--r--library/cpp/archive/ut/ya.make14
-rw-r--r--library/cpp/archive/ya.make14
-rw-r--r--library/cpp/balloc/lib/ya.make26
-rw-r--r--library/cpp/balloc/setup/ya.make16
-rw-r--r--library/cpp/balloc/ya.make23
-rw-r--r--library/cpp/binsaver/ut/ya.make9
-rw-r--r--library/cpp/binsaver/ut_util/ya.make12
-rw-r--r--library/cpp/binsaver/ya.make21
-rw-r--r--library/cpp/bit_io/ut/ya.make7
-rw-r--r--library/cpp/bit_io/ya.make17
-rw-r--r--library/cpp/blockcodecs/codecs/brotli/ya.make13
-rw-r--r--library/cpp/blockcodecs/codecs/bzip/ya.make12
-rw-r--r--library/cpp/blockcodecs/codecs/fastlz/ya.make12
-rw-r--r--library/cpp/blockcodecs/codecs/legacy_zstd06/ya.make12
-rw-r--r--library/cpp/blockcodecs/codecs/lz4/ya.make12
-rw-r--r--library/cpp/blockcodecs/codecs/lzma/ya.make12
-rw-r--r--library/cpp/blockcodecs/codecs/snappy/ya.make12
-rw-r--r--library/cpp/blockcodecs/codecs/zlib/ya.make12
-rw-r--r--library/cpp/blockcodecs/codecs/zstd/ya.make12
-rw-r--r--library/cpp/blockcodecs/core/ya.make8
-rw-r--r--library/cpp/blockcodecs/fuzz/proto/ya.make9
-rw-r--r--library/cpp/blockcodecs/fuzz/ya.make18
-rw-r--r--library/cpp/blockcodecs/ut/ya.make17
-rw-r--r--library/cpp/blockcodecs/ya.make26
-rw-r--r--library/cpp/bucket_quoter/ut/ya.make13
-rw-r--r--library/cpp/bucket_quoter/ya.make15
-rw-r--r--library/cpp/build_info/ya.make18
-rw-r--r--library/cpp/cache/ut/ya.make11
-rw-r--r--library/cpp/cache/ya.make12
-rw-r--r--library/cpp/case_insensitive_string/ut/ya.make7
-rw-r--r--library/cpp/case_insensitive_string/ya.make15
-rw-r--r--library/cpp/cgiparam/fuzz/ya.make11
-rw-r--r--library/cpp/cgiparam/ut/ya.make7
-rw-r--r--library/cpp/cgiparam/ya.make19
-rw-r--r--library/cpp/charset/ut/ya.make10
-rw-r--r--library/cpp/charset/ya.make24
-rw-r--r--library/cpp/codecs/float_huffman_bench/ya.make11
-rw-r--r--library/cpp/codecs/greedy_dict/ut/ya.make7
-rw-r--r--library/cpp/codecs/greedy_dict/ya.make17
-rw-r--r--library/cpp/codecs/ut/ya.make15
-rw-r--r--library/cpp/codecs/ya.make34
-rw-r--r--library/cpp/colorizer/ut/ya.make7
-rw-r--r--library/cpp/colorizer/ya.make12
-rw-r--r--library/cpp/compproto/ut/ya.make13
-rw-r--r--library/cpp/compproto/ya.make15
-rw-r--r--library/cpp/comptable/usage/ya.make11
-rw-r--r--library/cpp/comptable/ut/ya.make7
-rw-r--r--library/cpp/comptable/ya.make16
-rw-r--r--library/cpp/config/ya.make25
-rw-r--r--library/cpp/containers/2d_array/ya.make7
-rw-r--r--library/cpp/containers/absl_flat_hash/ya.make17
-rw-r--r--library/cpp/containers/atomizer/ya.make11
-rw-r--r--library/cpp/containers/bitseq/ut/ya.make8
-rw-r--r--library/cpp/containers/bitseq/ya.make17
-rw-r--r--library/cpp/containers/compact_vector/ut/ya.make9
-rw-r--r--library/cpp/containers/compact_vector/ya.make11
-rw-r--r--library/cpp/containers/comptrie/benchmark/ya.make12
-rw-r--r--library/cpp/containers/comptrie/ut/ya.make7
-rw-r--r--library/cpp/containers/comptrie/ya.make38
-rw-r--r--library/cpp/containers/disjoint_interval_tree/ut/ya.make7
-rw-r--r--library/cpp/containers/disjoint_interval_tree/ya.make9
-rw-r--r--library/cpp/containers/flat_hash/benchmark/ya.make11
-rw-r--r--library/cpp/containers/flat_hash/fuzz/dense_map_fuzz/ya.make15
-rw-r--r--library/cpp/containers/flat_hash/fuzz/flat_map_fuzz/ya.make15
-rw-r--r--library/cpp/containers/flat_hash/fuzz/fuzz_common/ya.make9
-rw-r--r--library/cpp/containers/flat_hash/fuzz/ya.make5
-rw-r--r--library/cpp/containers/flat_hash/ut/ya.make16
-rw-r--r--library/cpp/containers/flat_hash/ya.make26
-rw-r--r--library/cpp/containers/intrusive_avl_tree/ut/ya.make7
-rw-r--r--library/cpp/containers/intrusive_avl_tree/ya.make11
-rw-r--r--library/cpp/containers/intrusive_rb_tree/fuzz/ya.make15
-rw-r--r--library/cpp/containers/intrusive_rb_tree/ut/ya.make7
-rw-r--r--library/cpp/containers/intrusive_rb_tree/ya.make12
-rw-r--r--library/cpp/containers/paged_vector/ut/ya.make11
-rw-r--r--library/cpp/containers/paged_vector/ya.make11
-rw-r--r--library/cpp/containers/ring_buffer/ya.make7
-rw-r--r--library/cpp/containers/sorted_vector/ut/ya.make8
-rw-r--r--library/cpp/containers/sorted_vector/ya.make9
-rw-r--r--library/cpp/containers/stack_array/ut/ya.make7
-rw-r--r--library/cpp/containers/stack_array/ya.make12
-rw-r--r--library/cpp/containers/stack_vector/ut/ya.make9
-rw-r--r--library/cpp/containers/stack_vector/ya.make9
-rw-r--r--library/cpp/containers/str_map/ya.make7
-rw-r--r--library/cpp/containers/top_keeper/ut/ya.make7
-rw-r--r--library/cpp/containers/top_keeper/ya.make11
-rw-r--r--library/cpp/coroutine/engine/stack/benchmark/ya.make11
-rw-r--r--library/cpp/coroutine/engine/stack/ut/ya.make15
-rw-r--r--library/cpp/coroutine/engine/ut/ya.make7
-rw-r--r--library/cpp/coroutine/engine/ya.make35
-rw-r--r--library/cpp/coroutine/listener/ya.make11
-rw-r--r--library/cpp/cppparser/ya.make7
-rw-r--r--library/cpp/cpuid_check/ya.make5
-rw-r--r--library/cpp/dbg_output/ut/ya.make7
-rw-r--r--library/cpp/dbg_output/ya.make17
-rw-r--r--library/cpp/deprecated/accessors/ut/ya.make7
-rw-r--r--library/cpp/deprecated/accessors/ya.make13
-rw-r--r--library/cpp/deprecated/atomic/ut/ya.make5
-rw-r--r--library/cpp/deprecated/atomic/ya.make5
-rw-r--r--library/cpp/deprecated/enum_codegen/ut/ya.make13
-rw-r--r--library/cpp/deprecated/enum_codegen/ya.make11
-rw-r--r--library/cpp/deprecated/kmp/ut/ya.make7
-rw-r--r--library/cpp/deprecated/kmp/ya.make12
-rw-r--r--library/cpp/deprecated/split/ut/ya.make8
-rw-r--r--library/cpp/deprecated/split/ya.make16
-rw-r--r--library/cpp/deprecated/threadable/ya.make7
-rw-r--r--library/cpp/diff/ut/ya.make13
-rw-r--r--library/cpp/diff/ya.make16
-rw-r--r--library/cpp/digest/argonish/benchmark/ya.make11
-rw-r--r--library/cpp/digest/argonish/internal/argon2/ya.make9
-rw-r--r--library/cpp/digest/argonish/internal/blake2b/ya.make7
-rw-r--r--library/cpp/digest/argonish/internal/blamka/ya.make7
-rw-r--r--library/cpp/digest/argonish/internal/proxies/avx2/ya.make16
-rw-r--r--library/cpp/digest/argonish/internal/proxies/macro/ya.make3
-rw-r--r--library/cpp/digest/argonish/internal/proxies/ref/ya.make15
-rw-r--r--library/cpp/digest/argonish/internal/proxies/sse2/ya.make16
-rw-r--r--library/cpp/digest/argonish/internal/proxies/sse41/ya.make16
-rw-r--r--library/cpp/digest/argonish/internal/proxies/ssse3/ya.make17
-rw-r--r--library/cpp/digest/argonish/internal/rotations/ya.make3
-rw-r--r--library/cpp/digest/argonish/ut/ya.make11
-rw-r--r--library/cpp/digest/argonish/ut_fat/ya.make19
-rw-r--r--library/cpp/digest/argonish/ya.make29
-rw-r--r--library/cpp/digest/crc32c/ut/ya.make7
-rw-r--r--library/cpp/digest/crc32c/ya.make16
-rw-r--r--library/cpp/digest/lower_case/ut/ya.make8
-rw-r--r--library/cpp/digest/lower_case/ya.make13
-rw-r--r--library/cpp/digest/md5/bench/ya.make11
-rw-r--r--library/cpp/digest/md5/medium_ut/ya.make13
-rw-r--r--library/cpp/digest/md5/ut/ya.make7
-rw-r--r--library/cpp/digest/md5/ya.make18
-rw-r--r--library/cpp/digest/murmur/ut/ya.make13
-rw-r--r--library/cpp/digest/murmur/ya.make11
-rw-r--r--library/cpp/digest/old_crc/gencrc/ya.make7
-rw-r--r--library/cpp/digest/old_crc/ut/ya.make7
-rw-r--r--library/cpp/digest/old_crc/ya.make17
-rw-r--r--library/cpp/digest/sfh/ut/ya.make7
-rw-r--r--library/cpp/digest/sfh/ya.make11
-rw-r--r--library/cpp/dns/ut/ya.make11
-rw-r--r--library/cpp/dns/ya.make13
-rw-r--r--library/cpp/enumbitset/ut/ya.make7
-rw-r--r--library/cpp/enumbitset/ya.make11
-rw-r--r--library/cpp/execprofile/ya.make11
-rw-r--r--library/cpp/getopt/last_getopt_demo/ya.make11
-rw-r--r--library/cpp/getopt/small/ya.make26
-rw-r--r--library/cpp/getopt/ut/ya.make13
-rw-r--r--library/cpp/getopt/ya.make19
-rw-r--r--library/cpp/grpc/client/ut/ya.make7
-rw-r--r--library/cpp/grpc/client/ya.make16
-rw-r--r--library/cpp/grpc/server/actors/ya.make11
-rw-r--r--library/cpp/grpc/server/ut/ya.make16
-rw-r--r--library/cpp/grpc/server/ya.make20
-rw-r--r--library/cpp/histogram/adaptive/protos/ya.make11
-rw-r--r--library/cpp/histogram/adaptive/ya.make15
-rw-r--r--library/cpp/histogram/hdr/ut/ya.make8
-rw-r--r--library/cpp/histogram/hdr/ya.make16
-rw-r--r--library/cpp/histogram/simple/ya.make12
-rw-r--r--library/cpp/html/entity/ya.make19
-rw-r--r--library/cpp/html/escape/ut/ya.make11
-rw-r--r--library/cpp/html/escape/ya.make11
-rw-r--r--library/cpp/html/pcdata/ut/ya.make7
-rw-r--r--library/cpp/html/pcdata/ya.make12
-rw-r--r--library/cpp/http/fetch/ut/ya.make8
-rw-r--r--library/cpp/http/fetch/ya.make34
-rw-r--r--library/cpp/http/io/fuzz/ya.make13
-rw-r--r--library/cpp/http/io/list_codings/ya.make11
-rw-r--r--library/cpp/http/io/ut/ya.make15
-rw-r--r--library/cpp/http/io/ya.make23
-rw-r--r--library/cpp/http/misc/ut/ya.make9
-rw-r--r--library/cpp/http/misc/ya.make20
-rw-r--r--library/cpp/http/push_parser/ya.make14
-rw-r--r--library/cpp/http/server/ut/ya.make10
-rw-r--r--library/cpp/http/server/ya.make22
-rw-r--r--library/cpp/http/simple/ut/https_server/ya.make5
-rw-r--r--library/cpp/http/simple/ut/ya.make21
-rw-r--r--library/cpp/http/simple/ya.make20
-rw-r--r--library/cpp/hyperloglog/ut/ya.make7
-rw-r--r--library/cpp/hyperloglog/ya.make12
-rw-r--r--library/cpp/int128/bench/ya.make11
-rw-r--r--library/cpp/int128/ut/ya.make18
-rw-r--r--library/cpp/int128/ya.make13
-rw-r--r--library/cpp/ipmath/ut/ya.make11
-rw-r--r--library/cpp/ipmath/ya.make12
-rw-r--r--library/cpp/ipv6_address/ut/ya.make7
-rw-r--r--library/cpp/ipv6_address/ya.make17
-rw-r--r--library/cpp/iterator/ut/ya.make16
-rw-r--r--library/cpp/iterator/ya.make17
-rw-r--r--library/cpp/json/common/ya.make7
-rw-r--r--library/cpp/json/converter/ut/ya.make14
-rw-r--r--library/cpp/json/converter/ya.make15
-rw-r--r--library/cpp/json/easy_parse/ya.make11
-rw-r--r--library/cpp/json/fast_sax/ya.make12
-rw-r--r--library/cpp/json/fuzzy_test/ya.make11
-rw-r--r--library/cpp/json/ut/ya.make15
-rw-r--r--library/cpp/json/writer/ut/ya.make14
-rw-r--r--library/cpp/json/writer/ya.make18
-rw-r--r--library/cpp/json/ya.make26
-rw-r--r--library/cpp/json/yson/ut/ya.make23
-rw-r--r--library/cpp/json/yson/ya.make17
-rw-r--r--library/cpp/lcs/ut/ya.make13
-rw-r--r--library/cpp/lcs/ya.make15
-rw-r--r--library/cpp/lfalloc/alloc_profiler/ut/ya.make20
-rw-r--r--library/cpp/lfalloc/alloc_profiler/ya.make18
-rw-r--r--library/cpp/lfalloc/dbg/ya.make30
-rw-r--r--library/cpp/lfalloc/dbg_info/ya.make13
-rw-r--r--library/cpp/lfalloc/ya.make19
-rw-r--r--library/cpp/lfalloc/yt/ya.make27
-rw-r--r--library/cpp/linear_regression/benchmark/ya.make13
-rw-r--r--library/cpp/linear_regression/ut/ya.make13
-rw-r--r--library/cpp/linear_regression/ya.make18
-rw-r--r--library/cpp/logger/global/ut/ya.make13
-rw-r--r--library/cpp/logger/global/ya.make17
-rw-r--r--library/cpp/logger/init_context/ya.make13
-rw-r--r--library/cpp/logger/ut/ya.make19
-rw-r--r--library/cpp/logger/ya.make45
-rw-r--r--library/cpp/lua/ya.make15
-rw-r--r--library/cpp/lwtrace/example1/ya.make11
-rw-r--r--library/cpp/lwtrace/example2/ya.make12
-rw-r--r--library/cpp/lwtrace/example3/ya.make11
-rw-r--r--library/cpp/lwtrace/example4/ya.make11
-rw-r--r--library/cpp/lwtrace/example5/ya.make11
-rw-r--r--library/cpp/lwtrace/mon/analytics/ya.make13
-rw-r--r--library/cpp/lwtrace/mon/ya.make53
-rw-r--r--library/cpp/lwtrace/protos/ya.make9
-rw-r--r--library/cpp/lwtrace/tests/ya.make13
-rw-r--r--library/cpp/lwtrace/ut/ya.make10
-rw-r--r--library/cpp/lwtrace/ya.make35
-rw-r--r--library/cpp/malloc/api/helpers/ya.make11
-rw-r--r--library/cpp/malloc/api/ut/ya.make11
-rw-r--r--library/cpp/malloc/api/ya.make14
-rw-r--r--library/cpp/malloc/jemalloc/ya.make19
-rw-r--r--library/cpp/malloc/mimalloc/link_test/ya.make9
-rw-r--r--library/cpp/malloc/mimalloc/ya.make18
-rw-r--r--library/cpp/malloc/system/ya.make13
-rw-r--r--library/cpp/malloc/tcmalloc/ya.make13
-rw-r--r--library/cpp/messagebus/actor/ut/ya.make14
-rw-r--r--library/cpp/messagebus/actor/ya.make17
-rw-r--r--library/cpp/messagebus/config/ya.make13
-rw-r--r--library/cpp/messagebus/debug_receiver/ya.make15
-rw-r--r--library/cpp/messagebus/monitoring/ya.make13
-rw-r--r--library/cpp/messagebus/oldmodule/ya.make13
-rw-r--r--library/cpp/messagebus/protobuf/ya.make13
-rw-r--r--library/cpp/messagebus/rain_check/core/ya.make23
-rw-r--r--library/cpp/messagebus/rain_check/http/ya.make15
-rw-r--r--library/cpp/messagebus/rain_check/messagebus/ya.make13
-rw-r--r--library/cpp/messagebus/rain_check/test/helper/ya.make11
-rw-r--r--library/cpp/messagebus/rain_check/test/perftest/ya.make12
-rw-r--r--library/cpp/messagebus/rain_check/test/ut/ya.make22
-rw-r--r--library/cpp/messagebus/rain_check/test/ya.make4
-rw-r--r--library/cpp/messagebus/rain_check/ya.make6
-rw-r--r--library/cpp/messagebus/scheduler/ut/ya.make11
-rw-r--r--library/cpp/messagebus/scheduler/ya.make16
-rw-r--r--library/cpp/messagebus/test/example/client/ya.make11
-rw-r--r--library/cpp/messagebus/test/example/common/ya.make13
-rw-r--r--library/cpp/messagebus/test/example/server/ya.make11
-rw-r--r--library/cpp/messagebus/test/example/ya.make5
-rw-r--r--library/cpp/messagebus/test/helper/ya.make16
-rw-r--r--library/cpp/messagebus/test/perftest/ya.make22
-rw-r--r--library/cpp/messagebus/test/ut/ya.make51
-rw-r--r--library/cpp/messagebus/test/ya.make5
-rw-r--r--library/cpp/messagebus/www/ya.make26
-rw-r--r--library/cpp/messagebus/ya.make79
-rw-r--r--library/cpp/mime/types/ya.make9
-rw-r--r--library/cpp/monlib/consumers/ya.make11
-rw-r--r--library/cpp/monlib/deprecated/json/ut/ya.make7
-rw-r--r--library/cpp/monlib/deprecated/json/ya.make21
-rw-r--r--library/cpp/monlib/dynamic_counters/percentile/ut/ya.make7
-rw-r--r--library/cpp/monlib/dynamic_counters/percentile/ya.make17
-rw-r--r--library/cpp/monlib/dynamic_counters/ut/ya.make14
-rw-r--r--library/cpp/monlib/dynamic_counters/ya.make27
-rw-r--r--library/cpp/monlib/encode/buffered/ut/ya.make7
-rw-r--r--library/cpp/monlib/encode/buffered/ya.make17
-rw-r--r--library/cpp/monlib/encode/fake/ya.make7
-rw-r--r--library/cpp/monlib/encode/fuzz/ya.make5
-rw-r--r--library/cpp/monlib/encode/json/fuzz/ya.make14
-rw-r--r--library/cpp/monlib/encode/json/ut/ya.make41
-rw-r--r--library/cpp/monlib/encode/json/ya.make20
-rw-r--r--library/cpp/monlib/encode/legacy_protobuf/protos/ya.make11
-rw-r--r--library/cpp/monlib/encode/prometheus/fuzz/ya.make14
-rw-r--r--library/cpp/monlib/encode/prometheus/ut/ya.make12
-rw-r--r--library/cpp/monlib/encode/prometheus/ya.make18
-rw-r--r--library/cpp/monlib/encode/protobuf/protos/ya.make9
-rw-r--r--library/cpp/monlib/encode/protobuf/ya.make12
-rw-r--r--library/cpp/monlib/encode/spack/fuzz/ya.make16
-rw-r--r--library/cpp/monlib/encode/spack/ut/ya.make11
-rw-r--r--library/cpp/monlib/encode/spack/ya.make25
-rw-r--r--library/cpp/monlib/encode/text/ut/ya.make7
-rw-r--r--library/cpp/monlib/encode/text/ya.make15
-rw-r--r--library/cpp/monlib/encode/ut/ya.make7
-rw-r--r--library/cpp/monlib/encode/ya.make20
-rw-r--r--library/cpp/monlib/exception/ya.make10
-rw-r--r--library/cpp/monlib/messagebus/ya.make14
-rw-r--r--library/cpp/monlib/metrics/ut/ya.make27
-rw-r--r--library/cpp/monlib/metrics/ya.make26
-rw-r--r--library/cpp/monlib/service/pages/tablesorter/ya.make12
-rw-r--r--library/cpp/monlib/service/pages/ya.make29
-rw-r--r--library/cpp/monlib/service/ya.make26
-rw-r--r--library/cpp/neh/asio/ya.make20
-rw-r--r--library/cpp/neh/ya.make53
-rw-r--r--library/cpp/netliba/socket/ya.make20
-rw-r--r--library/cpp/netliba/v6/ya.make44
-rw-r--r--library/cpp/on_disk/chunks/ut/ya.make7
-rw-r--r--library/cpp/on_disk/chunks/ya.make13
-rw-r--r--library/cpp/openssl/holders/ut/ya.make8
-rw-r--r--library/cpp/openssl/holders/ya.make16
-rw-r--r--library/cpp/openssl/init/ya.make11
-rw-r--r--library/cpp/openssl/io/ut/ya.make7
-rw-r--r--library/cpp/openssl/io/ya.make18
-rw-r--r--library/cpp/openssl/method/ut/ya.make7
-rw-r--r--library/cpp/openssl/method/ya.make16
-rw-r--r--library/cpp/packedtypes/ut/ya.make14
-rw-r--r--library/cpp/packedtypes/ya.make20
-rw-r--r--library/cpp/packers/ut/ya.make10
-rw-r--r--library/cpp/packers/ya.make13
-rw-r--r--library/cpp/pop_count/benchmark/ya.make12
-rw-r--r--library/cpp/pop_count/ut/ya.make7
-rw-r--r--library/cpp/pop_count/ya.make12
-rw-r--r--library/cpp/presort/ya.make7
-rw-r--r--library/cpp/protobuf/interop/ut/ya.make11
-rw-r--r--library/cpp/protobuf/interop/ya.make15
-rw-r--r--library/cpp/protobuf/json/ut/ya.make22
-rw-r--r--library/cpp/protobuf/json/ya.make27
-rw-r--r--library/cpp/protobuf/util/proto/ya.make9
-rw-r--r--library/cpp/protobuf/util/ut/ya.make17
-rw-r--r--library/cpp/protobuf/util/ya.make24
-rw-r--r--library/cpp/pybind/ya.make14
-rw-r--r--library/cpp/random_provider/ya.make8
-rw-r--r--library/cpp/regex/hyperscan/ut/ya.make11
-rw-r--r--library/cpp/regex/hyperscan/ya.make17
-rw-r--r--library/cpp/regex/pcre/benchmark/ya.make12
-rw-r--r--library/cpp/regex/pcre/ut/ya.make8
-rw-r--r--library/cpp/regex/pcre/ya.make21
-rw-r--r--library/cpp/regex/pire/inline/ya.make17
-rw-r--r--library/cpp/regex/pire/ut/ya.make39
-rw-r--r--library/cpp/regex/pire/ya.make33
-rw-r--r--library/cpp/resource/ut/lib/ya.make7
-rw-r--r--library/cpp/resource/ut/ya.make7
-rw-r--r--library/cpp/resource/ya.make17
-rw-r--r--library/cpp/retry/protos/ya.make12
-rw-r--r--library/cpp/retry/ut/ya.make8
-rw-r--r--library/cpp/retry/ya.make17
-rw-r--r--library/cpp/scheme/tests/fuzz_json/lib/ya.make11
-rw-r--r--library/cpp/scheme/tests/fuzz_json/ya.make13
-rw-r--r--library/cpp/scheme/tests/fuzz_ops/lib/ya.make16
-rw-r--r--library/cpp/scheme/tests/fuzz_ops/ut/ya.make13
-rw-r--r--library/cpp/scheme/tests/fuzz_ops/ya.make11
-rw-r--r--library/cpp/scheme/tests/ut/ya.make22
-rw-r--r--library/cpp/scheme/tests/ya.make6
-rw-r--r--library/cpp/scheme/ut_utils/ya.make14
-rw-r--r--library/cpp/scheme/util/ya.make12
-rw-r--r--library/cpp/scheme/ya.make29
-rw-r--r--library/cpp/sighandler/ya.make12
-rw-r--r--library/cpp/sliding_window/ut/ya.make7
-rw-r--r--library/cpp/sliding_window/ya.make12
-rw-r--r--library/cpp/sse/ut/ya.make11
-rw-r--r--library/cpp/sse/ya.make11
-rw-r--r--library/cpp/streams/brotli/ut/ya.make7
-rw-r--r--library/cpp/streams/brotli/ya.make16
-rw-r--r--library/cpp/streams/bzip2/ut/ya.make7
-rw-r--r--library/cpp/streams/bzip2/ya.make15
-rw-r--r--library/cpp/streams/lzma/ut/ya.make7
-rw-r--r--library/cpp/streams/lzma/ya.make15
-rw-r--r--library/cpp/streams/zc_memory_input/ya.make7
-rw-r--r--library/cpp/streams/zstd/ut/ya.make7
-rw-r--r--library/cpp/streams/zstd/ya.make15
-rw-r--r--library/cpp/string_utils/base64/bench/metrics/ya.make15
-rw-r--r--library/cpp/string_utils/base64/bench/ya.make15
-rw-r--r--library/cpp/string_utils/base64/fuzz/generic/ya.make7
-rw-r--r--library/cpp/string_utils/base64/fuzz/lib/ya.make11
-rw-r--r--library/cpp/string_utils/base64/fuzz/uneven/ya.make11
-rw-r--r--library/cpp/string_utils/base64/fuzz/ya.make5
-rw-r--r--library/cpp/string_utils/base64/ut/ya.make17
-rw-r--r--library/cpp/string_utils/base64/ya.make22
-rw-r--r--library/cpp/string_utils/csv/ya.make7
-rw-r--r--library/cpp/string_utils/indent_text/ya.make7
-rw-r--r--library/cpp/string_utils/levenshtein_diff/ut/ya.make7
-rw-r--r--library/cpp/string_utils/levenshtein_diff/ya.make15
-rw-r--r--library/cpp/string_utils/parse_size/ut/ya.make7
-rw-r--r--library/cpp/string_utils/parse_size/ya.make12
-rw-r--r--library/cpp/string_utils/quote/ut/ya.make7
-rw-r--r--library/cpp/string_utils/quote/ya.make12
-rw-r--r--library/cpp/string_utils/relaxed_escaper/ut/ya.make7
-rw-r--r--library/cpp/string_utils/relaxed_escaper/ya.make11
-rw-r--r--library/cpp/string_utils/scan/ya.make7
-rw-r--r--library/cpp/string_utils/url/ut/ya.make7
-rw-r--r--library/cpp/string_utils/url/ya.make12
-rw-r--r--library/cpp/string_utils/ztstrbuf/ya.make7
-rw-r--r--library/cpp/svnversion/test/ya.make4
-rw-r--r--library/cpp/svnversion/ya.make10
-rw-r--r--library/cpp/tdigest/ya.make12
-rw-r--r--library/cpp/terminate_handler/sample/exception/ya.make11
-rw-r--r--library/cpp/terminate_handler/sample/pure-virtual/ya.make11
-rw-r--r--library/cpp/terminate_handler/sample/rethrow/ya.make11
-rw-r--r--library/cpp/terminate_handler/sample/segv/ya.make11
-rw-r--r--library/cpp/terminate_handler/sample/ya.make6
-rw-r--r--library/cpp/terminate_handler/ya.make12
-rw-r--r--library/cpp/testing/benchmark/examples/metrics/ya.make15
-rw-r--r--library/cpp/testing/benchmark/examples/ya.make11
-rw-r--r--library/cpp/testing/benchmark/main/ya.make11
-rw-r--r--library/cpp/testing/benchmark/ya.make22
-rw-r--r--library/cpp/testing/common/ut/ya.make12
-rw-r--r--library/cpp/testing/common/ya.make16
-rw-r--r--library/cpp/testing/gbenchmark_main/ya.make12
-rw-r--r--library/cpp/testing/gmock_in_unittest/example_ut/ya.make11
-rw-r--r--library/cpp/testing/gmock_in_unittest/ya.make19
-rw-r--r--library/cpp/testing/gtest/ut/ya.make15
-rw-r--r--library/cpp/testing/gtest/ya.make22
-rw-r--r--library/cpp/testing/gtest_extensions/ut/ya.make11
-rw-r--r--library/cpp/testing/gtest_extensions/ya.make17
-rw-r--r--library/cpp/testing/gtest_main/ya.make11
-rw-r--r--library/cpp/testing/hook/ya.make6
-rw-r--r--library/cpp/testing/mock_server/ya.make14
-rw-r--r--library/cpp/testing/unittest/fat/ya.make17
-rw-r--r--library/cpp/testing/unittest/pytests/test_subject/ya.make13
-rw-r--r--library/cpp/testing/unittest/pytests/ya.make21
-rw-r--r--library/cpp/testing/unittest/ut/ya.make8
-rw-r--r--library/cpp/testing/unittest/ya.make29
-rw-r--r--library/cpp/testing/unittest_main/ya.make12
-rw-r--r--library/cpp/threading/atomic/ut/ya.make7
-rw-r--r--library/cpp/threading/atomic/ya.make15
-rw-r--r--library/cpp/threading/chunk_queue/ut/ya.make7
-rw-r--r--library/cpp/threading/chunk_queue/ya.make15
-rw-r--r--library/cpp/threading/equeue/ut/ya.make13
-rw-r--r--library/cpp/threading/equeue/ya.make16
-rw-r--r--library/cpp/threading/future/mt_ut/ya.make12
-rw-r--r--library/cpp/threading/future/perf/ya.make11
-rw-r--r--library/cpp/threading/future/ut/ya.make10
-rw-r--r--library/cpp/threading/future/ya.make25
-rw-r--r--library/cpp/threading/hot_swap/ya.make11
-rw-r--r--library/cpp/threading/light_rw_lock/bench/ya.make11
-rw-r--r--library/cpp/threading/light_rw_lock/ut/ya.make11
-rw-r--r--library/cpp/threading/light_rw_lock/ya.make13
-rw-r--r--library/cpp/threading/local_executor/ut/ya.make7
-rw-r--r--library/cpp/threading/local_executor/ya.make18
-rw-r--r--library/cpp/threading/mux_event/ya.make11
-rw-r--r--library/cpp/threading/poor_man_openmp/ut/ya.make7
-rw-r--r--library/cpp/threading/poor_man_openmp/ya.make15
-rw-r--r--library/cpp/threading/queue/ut/ya.make14
-rw-r--r--library/cpp/threading/queue/ya.make24
-rw-r--r--library/cpp/threading/skip_list/perf/ya.make13
-rw-r--r--library/cpp/threading/skip_list/ut/ya.make7
-rw-r--r--library/cpp/threading/skip_list/ya.make16
-rw-r--r--library/cpp/threading/task_scheduler/ut/ya.make7
-rw-r--r--library/cpp/threading/task_scheduler/ya.make15
-rw-r--r--library/cpp/threading/thread_local/ya.make12
-rw-r--r--library/cpp/time_provider/ya.make9
-rw-r--r--library/cpp/timezone_conversion/ut/ya.make13
-rw-r--r--library/cpp/timezone_conversion/ya.make17
-rw-r--r--library/cpp/tld/ut/ya.make13
-rw-r--r--library/cpp/tld/ya.make21
-rw-r--r--library/cpp/unicode/normalization/ut/ya.make11
-rw-r--r--library/cpp/unicode/normalization/ya.make26
-rw-r--r--library/cpp/unicode/punycode/ut/ya.make7
-rw-r--r--library/cpp/unicode/punycode/ya.make15
-rw-r--r--library/cpp/unicode/set/ya.make15
-rw-r--r--library/cpp/unified_agent_client/examples/ua_grpc_client/ya.make12
-rw-r--r--library/cpp/unified_agent_client/examples/ya.make3
-rw-r--r--library/cpp/unified_agent_client/proto/ya.make13
-rw-r--r--library/cpp/unified_agent_client/ya.make38
-rw-r--r--library/cpp/uri/benchmark/ya.make12
-rw-r--r--library/cpp/uri/ut/ya.make17
-rw-r--r--library/cpp/uri/ya.make27
-rw-r--r--library/cpp/xml/document/ut/ya.make9
-rw-r--r--library/cpp/xml/document/ya.make19
-rw-r--r--library/cpp/xml/init/ya.make13
-rw-r--r--library/cpp/yaml/as/ut/ya.make12
-rw-r--r--library/cpp/yaml/as/ya.make11
-rw-r--r--library/cpp/yaml/fyamlcpp/ut/ya.make9
-rw-r--r--library/cpp/yaml/fyamlcpp/ya.make16
-rw-r--r--library/cpp/yconf/patcher/ya.make13
-rw-r--r--library/cpp/yconf/ya.make12
-rw-r--r--library/cpp/yson/json/ya.make12
-rw-r--r--library/cpp/yson/node/benchmark/ya.make13
-rw-r--r--library/cpp/yson/node/ut/ya.make7
-rw-r--r--library/cpp/yson/node/ya.make23
-rw-r--r--library/cpp/yson/ut/ya.make11
-rw-r--r--library/cpp/yson/ya.make22
-rw-r--r--library/cpp/yson_pull/ut/ya.make10
-rw-r--r--library/cpp/yson_pull/ya.make23
-rw-r--r--library/cpp/yt/assert/ya.make9
-rw-r--r--library/cpp/yt/coding/unittests/ya.make15
-rw-r--r--library/cpp/yt/coding/ya.make22
-rw-r--r--library/cpp/yt/containers/ya.make16
-rw-r--r--library/cpp/yt/cpu_clock/ya.make21
-rw-r--r--library/cpp/yt/exception/ya.make9
-rw-r--r--library/cpp/yt/malloc/ya.make9
-rw-r--r--library/cpp/yt/memory/unittests/ya.make22
-rw-r--r--library/cpp/yt/memory/ya.make38
-rw-r--r--library/cpp/yt/misc/unittests/ya.make15
-rw-r--r--library/cpp/yt/misc/ya.make28
-rw-r--r--library/cpp/yt/small_containers/unittests/ya.make17
-rw-r--r--library/cpp/yt/small_containers/ya.make22
-rw-r--r--library/cpp/yt/string/unittests/ya.make17
-rw-r--r--library/cpp/yt/string/ya.make34
-rw-r--r--library/cpp/yt/system/ya.make9
-rw-r--r--library/cpp/yt/threading/ya.make29
-rw-r--r--library/cpp/yt/yson/ya.make13
-rw-r--r--library/cpp/yt/yson_string/unittests/ya.make15
-rw-r--r--library/cpp/yt/yson_string/ya.make23
-rw-r--r--library/cpp/ytalloc/api/ya.make11
-rw-r--r--library/cpp/ytalloc/impl/ya.make13
-rw-r--r--library/go/core/buildinfo/ya.make7
-rw-r--r--library/python/archive/ya.make14
-rw-r--r--library/python/certifi/ya.make16
-rw-r--r--library/python/cityhash/ya.make12
-rw-r--r--library/python/codecs/ya.make16
-rw-r--r--library/python/compress/ya.make12
-rw-r--r--library/python/cores/ya.make10
-rw-r--r--library/python/filelock/ya.make9
-rw-r--r--library/python/find_root/ya.make5
-rw-r--r--library/python/fs/test/ya.make12
-rw-r--r--library/python/fs/ya.make21
-rw-r--r--library/python/func/ut/ya.make9
-rw-r--r--library/python/func/ya.make9
-rw-r--r--library/python/import_test/ya.make9
-rw-r--r--library/python/json/ya.make17
-rw-r--r--library/python/par_apply/ya.make11
-rw-r--r--library/python/pytest/plugins/ya.make32
-rw-r--r--library/python/pytest/ut/ya.make14
-rw-r--r--library/python/pytest/ya.make36
-rw-r--r--library/python/reservoir_sampling/ya.make5
-rw-r--r--library/python/resource/ut/lib/ya.make15
-rw-r--r--library/python/resource/ut/py2/ya.make7
-rw-r--r--library/python/resource/ut/py3/ya.make7
-rw-r--r--library/python/resource/ut/ya.make4
-rw-r--r--library/python/resource/ya.make11
-rw-r--r--library/python/retry/ya.make5
-rw-r--r--library/python/strings/ut/ya.make11
-rw-r--r--library/python/strings/ya.make20
-rw-r--r--library/python/svn_version/ya.make13
-rw-r--r--library/python/symbols/libc/ya.make17
-rw-r--r--library/python/symbols/module/ya.make21
-rw-r--r--library/python/symbols/python/ut/py2/ya.make7
-rw-r--r--library/python/symbols/python/ut/py3/ya.make7
-rw-r--r--library/python/symbols/python/ut/ya.make14
-rw-r--r--library/python/symbols/python/ya.make13
-rw-r--r--library/python/symbols/registry/ya.make7
-rw-r--r--library/python/symbols/win_unicode_console/ya.make11
-rw-r--r--library/python/testing/custom_linter_util/ya.make12
-rw-r--r--library/python/testing/filter/ya.make4
-rw-r--r--library/python/testing/import_test/ya.make5
-rw-r--r--library/python/testing/recipe/ya.make14
-rw-r--r--library/python/testing/yatest_common/ya.make38
-rw-r--r--library/python/testing/yatest_common_standalone/ya.make15
-rw-r--r--library/python/testing/yatest_lib/tests/ya.make12
-rw-r--r--library/python/testing/yatest_lib/ya.make24
-rw-r--r--library/python/tmp/ya.make12
-rw-r--r--library/python/unique_id/ya.make5
-rw-r--r--library/python/windows/ya.make11
-rw-r--r--library/recipes/common/ya.make11
694 files changed, 13313 insertions, 0 deletions
diff --git a/library/cpp/accurate_accumulate/benchmark/metrics/ya.make b/library/cpp/accurate_accumulate/benchmark/metrics/ya.make
new file mode 100644
index 0000000000..5c7ccf9197
--- /dev/null
+++ b/library/cpp/accurate_accumulate/benchmark/metrics/ya.make
@@ -0,0 +1,15 @@
+PY2TEST()
+
+SIZE(LARGE)
+
+TAG(
+ ya:force_sandbox
+ sb:intel_e5_2660v1
+ ya:fat
+)
+
+TEST_SRCS(main.py)
+
+DEPENDS(library/cpp/accurate_accumulate/benchmark)
+
+END()
diff --git a/library/cpp/accurate_accumulate/benchmark/ya.make b/library/cpp/accurate_accumulate/benchmark/ya.make
new file mode 100644
index 0000000000..5eb3aac446
--- /dev/null
+++ b/library/cpp/accurate_accumulate/benchmark/ya.make
@@ -0,0 +1,15 @@
+Y_BENCHMARK()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/accurate_accumulate
+)
+
+END()
+
+RECURSE(
+ metrics
+)
diff --git a/library/cpp/accurate_accumulate/ya.make b/library/cpp/accurate_accumulate/ya.make
new file mode 100644
index 0000000000..b4bca26958
--- /dev/null
+++ b/library/cpp/accurate_accumulate/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ accurate_accumulate.h
+ accurate_accumulate.cpp
+)
+
+END()
+
+RECURSE(
+ benchmark
+)
diff --git a/library/cpp/actors/CMakeLists.txt b/library/cpp/actors/CMakeLists.txt
index 9d76935e02..583970ecf5 100644
--- a/library/cpp/actors/CMakeLists.txt
+++ b/library/cpp/actors/CMakeLists.txt
@@ -9,6 +9,7 @@
add_subdirectory(core)
add_subdirectory(dnscachelib)
add_subdirectory(dnsresolver)
+add_subdirectory(examples)
add_subdirectory(helpers)
add_subdirectory(http)
add_subdirectory(interconnect)
diff --git a/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt
index 7fe4e2c2ff..fa5d64256e 100644
--- a/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
get_built_tool_path(
TOOL_enum_parser_bin
TOOL_enum_parser_dependency
diff --git a/library/cpp/actors/core/CMakeLists.linux-aarch64.txt b/library/cpp/actors/core/CMakeLists.linux-aarch64.txt
index e2a6cc1f08..5d93da10cd 100644
--- a/library/cpp/actors/core/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/core/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
get_built_tool_path(
TOOL_enum_parser_bin
TOOL_enum_parser_dependency
diff --git a/library/cpp/actors/core/CMakeLists.linux-x86_64.txt b/library/cpp/actors/core/CMakeLists.linux-x86_64.txt
index e2a6cc1f08..5d93da10cd 100644
--- a/library/cpp/actors/core/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/core/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
get_built_tool_path(
TOOL_enum_parser_bin
TOOL_enum_parser_dependency
diff --git a/library/cpp/actors/core/CMakeLists.windows-x86_64.txt b/library/cpp/actors/core/CMakeLists.windows-x86_64.txt
index 7fe4e2c2ff..fa5d64256e 100644
--- a/library/cpp/actors/core/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/core/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
get_built_tool_path(
TOOL_enum_parser_bin
TOOL_enum_parser_dependency
diff --git a/library/cpp/actors/core/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/core/ut/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..8293612e5f
--- /dev/null
+++ b/library/cpp/actors/core/ut/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,87 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-core-ut)
+target_include_directories(library-cpp-actors-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core
+)
+target_link_libraries(library-cpp-actors-core-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-core-ut PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_coroutine_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actorsystem_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/performance_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/ask_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/balancer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb_payload_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_basic_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_united_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/mon_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/scheduler_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-core-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-core-ut
+ TEST_TARGET
+ library-cpp-actors-core-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-core-ut)
diff --git a/library/cpp/actors/core/ut/CMakeLists.linux-aarch64.txt b/library/cpp/actors/core/ut/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..dace67d9aa
--- /dev/null
+++ b/library/cpp/actors/core/ut/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,89 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-core-ut)
+target_include_directories(library-cpp-actors-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core
+)
+target_link_libraries(library-cpp-actors-core-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-jemalloc
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-core-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_coroutine_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actorsystem_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/performance_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/ask_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/balancer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb_payload_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_basic_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_united_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/mon_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/scheduler_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-core-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-core-ut
+ TEST_TARGET
+ library-cpp-actors-core-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-core-ut)
diff --git a/library/cpp/actors/core/ut/CMakeLists.linux-x86_64.txt b/library/cpp/actors/core/ut/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..9ebb40c8c7
--- /dev/null
+++ b/library/cpp/actors/core/ut/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,91 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-core-ut)
+target_include_directories(library-cpp-actors-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core
+)
+target_link_libraries(library-cpp-actors-core-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-core-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_coroutine_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actorsystem_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/performance_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/ask_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/balancer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb_payload_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_basic_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_united_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/mon_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/scheduler_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-core-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-core-ut
+ TEST_TARGET
+ library-cpp-actors-core-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-core-ut)
diff --git a/library/cpp/actors/core/ut/CMakeLists.txt b/library/cpp/actors/core/ut/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/core/ut/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/core/ut/CMakeLists.windows-x86_64.txt b/library/cpp/actors/core/ut/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..d5288ca703
--- /dev/null
+++ b/library/cpp/actors/core/ut/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-core-ut)
+target_include_directories(library-cpp-actors-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core
+)
+target_link_libraries(library-cpp-actors-core-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ cpp-actors-testlib
+)
+target_sources(library-cpp-actors-core-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_coroutine_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/actorsystem_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/performance_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/ask_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/balancer_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb_payload_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_basic_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_united_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/mon_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/scheduler_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-core-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-core-ut
+ TEST_TARGET
+ library-cpp-actors-core-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-core-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-core-ut)
diff --git a/library/cpp/actors/core/ut/ya.make b/library/cpp/actors/core/ut/ya.make
new file mode 100644
index 0000000000..c146de6fc0
--- /dev/null
+++ b/library/cpp/actors/core/ut/ya.make
@@ -0,0 +1,42 @@
+UNITTEST_FOR(library/cpp/actors/core)
+
+FORK_SUBTESTS()
+IF (SANITIZER_TYPE)
+ SIZE(LARGE)
+ TIMEOUT(1200)
+ TAG(ya:fat)
+ SPLIT_FACTOR(20)
+ REQUIREMENTS(
+ ram:32
+ )
+ELSE()
+ SIZE(MEDIUM)
+ TIMEOUT(600)
+ REQUIREMENTS(
+ ram:16
+ )
+ENDIF()
+
+
+PEERDIR(
+ library/cpp/actors/interconnect
+ library/cpp/actors/testlib
+)
+
+SRCS(
+ actor_coroutine_ut.cpp
+ actor_ut.cpp
+ actorsystem_ut.cpp
+ performance_ut.cpp
+ ask_ut.cpp
+ balancer_ut.cpp
+ event_pb_payload_ut.cpp
+ event_pb_ut.cpp
+ executor_pool_basic_ut.cpp
+ executor_pool_united_ut.cpp
+ log_ut.cpp
+ mon_ut.cpp
+ scheduler_actor_ut.cpp
+)
+
+END()
diff --git a/library/cpp/actors/core/ya.make b/library/cpp/actors/core/ya.make
new file mode 100644
index 0000000000..8a486ca7b3
--- /dev/null
+++ b/library/cpp/actors/core/ya.make
@@ -0,0 +1,130 @@
+LIBRARY()
+
+NO_WSHADOW()
+
+IF (PROFILE_MEMORY_ALLOCATIONS)
+ CFLAGS(-DPROFILE_MEMORY_ALLOCATIONS)
+ENDIF()
+
+IF (ALLOCATOR == "B" OR ALLOCATOR == "BS" OR ALLOCATOR == "C")
+ CXXFLAGS(-DBALLOC)
+ PEERDIR(
+ library/cpp/balloc/optional
+ )
+ENDIF()
+
+SRCS(
+ actor_bootstrapped.cpp
+ actor_coroutine.cpp
+ actor_coroutine.h
+ actor.cpp
+ actor.h
+ actor_virtual.cpp
+ actorid.cpp
+ actorid.h
+ actorsystem.cpp
+ actorsystem.h
+ ask.cpp
+ ask.h
+ av_bootstrapped.cpp
+ balancer.h
+ balancer.cpp
+ buffer.cpp
+ buffer.h
+ callstack.cpp
+ callstack.h
+ config.h
+ cpu_manager.cpp
+ cpu_manager.h
+ cpu_state.h
+ defs.h
+ event.cpp
+ event.h
+ event_load.h
+ event_local.h
+ event_pb.cpp
+ event_pb.h
+ events.h
+ events_undelivered.cpp
+ executelater.h
+ executor_pool_base.cpp
+ executor_pool_base.h
+ executor_pool_basic.cpp
+ executor_pool_basic.h
+ executor_pool_io.cpp
+ executor_pool_io.h
+ executor_pool_united.cpp
+ executor_pool_united.h
+ executor_thread.cpp
+ executor_thread.h
+ harmonizer.cpp
+ harmonizer.h
+ hfunc.h
+ interconnect.cpp
+ interconnect.h
+ invoke.h
+ io_dispatcher.cpp
+ io_dispatcher.h
+ lease.h
+ log.cpp
+ log.h
+ log_settings.cpp
+ log_settings.h
+ log_buffer.cpp
+ log_buffer.h
+ log_metrics.h
+ mailbox.cpp
+ mailbox.h
+ mailbox_queue_revolving.h
+ mailbox_queue_simple.h
+ mon.h
+ mon_stats.h
+ monotonic.cpp
+ monotonic.h
+ monotonic_provider.cpp
+ monotonic_provider.h
+ worker_context.cpp
+ worker_context.h
+ probes.cpp
+ probes.h
+ process_stats.cpp
+ process_stats.h
+ scheduler_actor.cpp
+ scheduler_actor.h
+ scheduler_basic.cpp
+ scheduler_basic.h
+ scheduler_cookie.cpp
+ scheduler_cookie.h
+ scheduler_queue.h
+ servicemap.h
+)
+
+GENERATE_ENUM_SERIALIZATION(defs.h)
+GENERATE_ENUM_SERIALIZATION(actor.h)
+
+PEERDIR(
+ library/cpp/actors/memory_log
+ library/cpp/actors/prof
+ library/cpp/actors/protos
+ library/cpp/actors/util
+ library/cpp/execprofile
+ library/cpp/json/writer
+ library/cpp/logger
+ library/cpp/lwtrace
+ library/cpp/monlib/dynamic_counters
+ library/cpp/svnversion
+ library/cpp/time_provider
+ library/cpp/threading/future
+)
+
+IF (SANITIZER_TYPE == "thread")
+ SUPPRESSIONS(
+ tsan.supp
+ )
+ENDIF()
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/actors/dnscachelib/ya.make b/library/cpp/actors/dnscachelib/ya.make
new file mode 100644
index 0000000000..62eaafc8f5
--- /dev/null
+++ b/library/cpp/actors/dnscachelib/ya.make
@@ -0,0 +1,23 @@
+LIBRARY()
+
+SRCS(
+ dnscache.cpp
+ dnscache.h
+ probes.cpp
+ probes.h
+ timekeeper.h
+)
+
+PEERDIR(
+ contrib/libs/c-ares
+ library/cpp/lwtrace
+ library/cpp/deprecated/atomic
+)
+
+IF (NOT EXPORT_CMAKE)
+ ADDINCL(
+ contrib/libs/c-ares/include
+ )
+ENDIF()
+
+END()
diff --git a/library/cpp/actors/dnsresolver/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/dnsresolver/CMakeLists.darwin-x86_64.txt
index 341f9e7593..d2cf8ae0e1 100644
--- a/library/cpp/actors/dnsresolver/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/dnsresolver/CMakeLists.darwin-x86_64.txt
@@ -7,6 +7,7 @@
find_package(c-ares REQUIRED)
+add_subdirectory(ut)
add_library(cpp-actors-dnsresolver)
target_include_directories(cpp-actors-dnsresolver PRIVATE
diff --git a/library/cpp/actors/dnsresolver/CMakeLists.linux-aarch64.txt b/library/cpp/actors/dnsresolver/CMakeLists.linux-aarch64.txt
index 202d9028bc..9f4ffdebad 100644
--- a/library/cpp/actors/dnsresolver/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/dnsresolver/CMakeLists.linux-aarch64.txt
@@ -7,6 +7,7 @@
find_package(c-ares REQUIRED)
+add_subdirectory(ut)
add_library(cpp-actors-dnsresolver)
target_include_directories(cpp-actors-dnsresolver PRIVATE
diff --git a/library/cpp/actors/dnsresolver/CMakeLists.linux-x86_64.txt b/library/cpp/actors/dnsresolver/CMakeLists.linux-x86_64.txt
index 202d9028bc..9f4ffdebad 100644
--- a/library/cpp/actors/dnsresolver/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/dnsresolver/CMakeLists.linux-x86_64.txt
@@ -7,6 +7,7 @@
find_package(c-ares REQUIRED)
+add_subdirectory(ut)
add_library(cpp-actors-dnsresolver)
target_include_directories(cpp-actors-dnsresolver PRIVATE
diff --git a/library/cpp/actors/dnsresolver/CMakeLists.windows-x86_64.txt b/library/cpp/actors/dnsresolver/CMakeLists.windows-x86_64.txt
index 341f9e7593..d2cf8ae0e1 100644
--- a/library/cpp/actors/dnsresolver/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/dnsresolver/CMakeLists.windows-x86_64.txt
@@ -7,6 +7,7 @@
find_package(c-ares REQUIRED)
+add_subdirectory(ut)
add_library(cpp-actors-dnsresolver)
target_include_directories(cpp-actors-dnsresolver PRIVATE
diff --git a/library/cpp/actors/dnsresolver/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/dnsresolver/ut/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..b7391d7721
--- /dev/null
+++ b/library/cpp/actors/dnsresolver/ut/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-dnsresolver-ut)
+target_include_directories(library-cpp-actors-dnsresolver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/include
+)
+target_link_libraries(library-cpp-actors-dnsresolver-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-dnsresolver
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-dnsresolver-ut PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-dnsresolver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_caching_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ondemand_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-dnsresolver-ut
+ TEST_TARGET
+ library-cpp-actors-dnsresolver-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-dnsresolver-ut)
diff --git a/library/cpp/actors/dnsresolver/ut/CMakeLists.linux-aarch64.txt b/library/cpp/actors/dnsresolver/ut/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..2d65fdbaf0
--- /dev/null
+++ b/library/cpp/actors/dnsresolver/ut/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-dnsresolver-ut)
+target_include_directories(library-cpp-actors-dnsresolver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/include
+)
+target_link_libraries(library-cpp-actors-dnsresolver-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-jemalloc
+ cpp-testing-unittest_main
+ cpp-actors-dnsresolver
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-dnsresolver-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-dnsresolver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_caching_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ondemand_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-dnsresolver-ut
+ TEST_TARGET
+ library-cpp-actors-dnsresolver-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-dnsresolver-ut)
diff --git a/library/cpp/actors/dnsresolver/ut/CMakeLists.linux-x86_64.txt b/library/cpp/actors/dnsresolver/ut/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..79ad14cc21
--- /dev/null
+++ b/library/cpp/actors/dnsresolver/ut/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,74 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-dnsresolver-ut)
+target_include_directories(library-cpp-actors-dnsresolver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/include
+)
+target_link_libraries(library-cpp-actors-dnsresolver-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-dnsresolver
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-dnsresolver-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-dnsresolver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_caching_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ondemand_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-dnsresolver-ut
+ TEST_TARGET
+ library-cpp-actors-dnsresolver-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-dnsresolver-ut)
diff --git a/library/cpp/actors/dnsresolver/ut/CMakeLists.txt b/library/cpp/actors/dnsresolver/ut/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/dnsresolver/ut/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/dnsresolver/ut/CMakeLists.windows-x86_64.txt b/library/cpp/actors/dnsresolver/ut/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..05a043ead4
--- /dev/null
+++ b/library/cpp/actors/dnsresolver/ut/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,62 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-dnsresolver-ut)
+target_include_directories(library-cpp-actors-dnsresolver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver
+ ${CMAKE_SOURCE_DIR}/contrib/libs/c-ares/include
+)
+target_link_libraries(library-cpp-actors-dnsresolver-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-dnsresolver
+ cpp-actors-testlib
+)
+target_sources(library-cpp-actors-dnsresolver-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_caching_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ondemand_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/dnsresolver/dnsresolver_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-dnsresolver-ut
+ TEST_TARGET
+ library-cpp-actors-dnsresolver-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-dnsresolver-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-dnsresolver-ut)
diff --git a/library/cpp/actors/dnsresolver/ut/ya.make b/library/cpp/actors/dnsresolver/ut/ya.make
new file mode 100644
index 0000000000..ec4b117bf7
--- /dev/null
+++ b/library/cpp/actors/dnsresolver/ut/ya.make
@@ -0,0 +1,18 @@
+UNITTEST_FOR(library/cpp/actors/dnsresolver)
+
+PEERDIR(
+ library/cpp/actors/testlib
+)
+
+SRCS(
+ dnsresolver_caching_ut.cpp
+ dnsresolver_ondemand_ut.cpp
+ dnsresolver_ut.cpp
+)
+
+ADDINCL(contrib/libs/c-ares/include)
+
+TAG(ya:external)
+REQUIREMENTS(network:full)
+
+END()
diff --git a/library/cpp/actors/dnsresolver/ya.make b/library/cpp/actors/dnsresolver/ya.make
new file mode 100644
index 0000000000..a66125d65c
--- /dev/null
+++ b/library/cpp/actors/dnsresolver/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+SRCS(
+ dnsresolver.cpp
+ dnsresolver_caching.cpp
+ dnsresolver_ondemand.cpp
+)
+
+PEERDIR(
+ library/cpp/actors/core
+ contrib/libs/c-ares
+)
+
+ADDINCL(contrib/libs/c-ares/include)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/actors/examples/01_ping_pong/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/examples/01_ping_pong/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..1d1c02036d
--- /dev/null
+++ b/library/cpp/actors/examples/01_ping_pong/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,29 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(example_01_ping_pong)
+target_link_libraries(example_01_ping_pong PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lfalloc
+ library-cpp-cpuid_check
+ cpp-actors-core
+)
+target_link_options(example_01_ping_pong PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(example_01_ping_pong PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/01_ping_pong/main.cpp
+)
+vcs_info(example_01_ping_pong)
diff --git a/library/cpp/actors/examples/01_ping_pong/CMakeLists.linux-aarch64.txt b/library/cpp/actors/examples/01_ping_pong/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..d37268db3b
--- /dev/null
+++ b/library/cpp/actors/examples/01_ping_pong/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,31 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(example_01_ping_pong)
+target_link_libraries(example_01_ping_pong PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lfalloc
+ cpp-actors-core
+)
+target_link_options(example_01_ping_pong PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(example_01_ping_pong PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/01_ping_pong/main.cpp
+)
+vcs_info(example_01_ping_pong)
diff --git a/library/cpp/actors/examples/01_ping_pong/CMakeLists.linux-x86_64.txt b/library/cpp/actors/examples/01_ping_pong/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..79067f5ead
--- /dev/null
+++ b/library/cpp/actors/examples/01_ping_pong/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,32 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(example_01_ping_pong)
+target_link_libraries(example_01_ping_pong PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lfalloc
+ library-cpp-cpuid_check
+ cpp-actors-core
+)
+target_link_options(example_01_ping_pong PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(example_01_ping_pong PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/01_ping_pong/main.cpp
+)
+vcs_info(example_01_ping_pong)
diff --git a/library/cpp/actors/examples/01_ping_pong/CMakeLists.txt b/library/cpp/actors/examples/01_ping_pong/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/examples/01_ping_pong/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/examples/01_ping_pong/CMakeLists.windows-x86_64.txt b/library/cpp/actors/examples/01_ping_pong/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..af8b315ee3
--- /dev/null
+++ b/library/cpp/actors/examples/01_ping_pong/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,21 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(example_01_ping_pong)
+target_link_libraries(example_01_ping_pong PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lfalloc
+ library-cpp-cpuid_check
+ cpp-actors-core
+)
+target_sources(example_01_ping_pong PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/01_ping_pong/main.cpp
+)
+vcs_info(example_01_ping_pong)
diff --git a/library/cpp/actors/examples/01_ping_pong/main.cpp b/library/cpp/actors/examples/01_ping_pong/main.cpp
new file mode 100644
index 0000000000..ccb73f7d45
--- /dev/null
+++ b/library/cpp/actors/examples/01_ping_pong/main.cpp
@@ -0,0 +1,131 @@
+#include <library/cpp/actors/core/actorsystem.h>
+#include <library/cpp/actors/core/executor_pool_basic.h>
+#include <library/cpp/actors/core/scheduler_basic.h>
+#include <library/cpp/actors/core/log.h>
+#include <library/cpp/actors/core/actor_bootstrapped.h>
+#include <library/cpp/actors/util/should_continue.h>
+#include <util/system/sigset.h>
+#include <util/generic/xrange.h>
+
+using namespace NActors;
+
+static TProgramShouldContinue ShouldContinue;
+
+void OnTerminate(int) {
+ ShouldContinue.ShouldStop();
+}
+
+class TPingActor : public TActorBootstrapped<TPingActor> {
+ const TActorId Target;
+ ui64 HandledEvents;
+ TInstant PeriodStart;
+
+ void Handle(TEvents::TEvPing::TPtr &ev) {
+ Send(ev->Sender, new TEvents::TEvPong());
+ Send(ev->Sender, new TEvents::TEvPing());
+ Become(&TThis::StatePing);
+ }
+
+ void Handle(TEvents::TEvPong::TPtr &ev) {
+ Y_UNUSED(ev);
+ Become(&TThis::StateWait);
+ }
+
+ void PrintStats() {
+ const i64 ms = (TInstant::Now() - PeriodStart).MilliSeconds();
+ Cout << "Handled " << 2 * HandledEvents << " over " << ms << "ms" << Endl;
+ ScheduleStats();
+ }
+
+ void ScheduleStats() {
+ HandledEvents = 0;
+ PeriodStart = TInstant::Now();
+ Schedule(TDuration::Seconds(1), new TEvents::TEvWakeup());
+ }
+
+public:
+ TPingActor(TActorId target)
+ : Target(target)
+ , HandledEvents(0)
+ , PeriodStart(TInstant::Now())
+ {}
+
+ STFUNC(StateWait) {
+ Y_UNUSED(ctx);
+ switch (ev->GetTypeRewrite()) {
+ hFunc(TEvents::TEvPing, Handle);
+ cFunc(TEvents::TEvWakeup::EventType, PrintStats);
+ }
+
+ ++HandledEvents;
+ }
+
+ STFUNC(StatePing) {
+ Y_UNUSED(ctx);
+ switch (ev->GetTypeRewrite()) {
+ hFunc(TEvents::TEvPong, Handle);
+ cFunc(TEvents::TEvWakeup::EventType, PrintStats);
+ }
+
+ ++HandledEvents;
+ }
+
+ void Bootstrap() {
+ if (Target) {
+ Become(&TThis::StatePing);
+ Send(Target, new TEvents::TEvPing());
+ ScheduleStats();
+ }
+ else {
+ Become(&TThis::StateWait);
+ };
+ }
+};
+
+THolder<TActorSystemSetup> BuildActorSystemSetup(ui32 threads, ui32 pools) {
+ Y_VERIFY(threads > 0 && threads < 100);
+ Y_VERIFY(pools > 0 && pools < 10);
+
+ auto setup = MakeHolder<TActorSystemSetup>();
+
+ setup->NodeId = 1;
+
+ setup->ExecutorsCount = pools;
+ setup->Executors.Reset(new TAutoPtr<IExecutorPool>[pools]);
+ for (ui32 idx : xrange(pools)) {
+ setup->Executors[idx] = new TBasicExecutorPool(idx, threads, 50);
+ }
+
+ setup->Scheduler = new TBasicSchedulerThread(TSchedulerConfig(512, 0));
+
+ return setup;
+}
+
+int main(int argc, char **argv) {
+ Y_UNUSED(argc);
+ Y_UNUSED(argv);
+
+#ifdef _unix_
+ signal(SIGPIPE, SIG_IGN);
+#endif
+ signal(SIGINT, &OnTerminate);
+ signal(SIGTERM, &OnTerminate);
+
+ THolder<TActorSystemSetup> actorSystemSetup = BuildActorSystemSetup(2, 1);
+ TActorSystem actorSystem(actorSystemSetup);
+
+ actorSystem.Start();
+
+ const TActorId a = actorSystem.Register(new TPingActor(TActorId()));
+ const TActorId b = actorSystem.Register(new TPingActor(a));
+ Y_UNUSED(b);
+
+ while (ShouldContinue.PollState() == TProgramShouldContinue::Continue) {
+ Sleep(TDuration::MilliSeconds(200));
+ }
+
+ actorSystem.Stop();
+ actorSystem.Cleanup();
+
+ return ShouldContinue.GetReturnCode();
+}
diff --git a/library/cpp/actors/examples/01_ping_pong/ya.make b/library/cpp/actors/examples/01_ping_pong/ya.make
new file mode 100644
index 0000000000..d33cfd3456
--- /dev/null
+++ b/library/cpp/actors/examples/01_ping_pong/ya.make
@@ -0,0 +1,13 @@
+PROGRAM(example_01_ping_pong)
+
+ALLOCATOR(LF)
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/actors/core
+)
+
+END()
diff --git a/library/cpp/actors/examples/02_discovery/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/examples/02_discovery/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..2239d2b549
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,65 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_executable(example_02_discovery)
+target_link_libraries(example_02_discovery PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lfalloc
+ library-cpp-cpuid_check
+ cpp-actors-core
+ cpp-actors-dnsresolver
+ cpp-actors-interconnect
+ cpp-actors-http
+ contrib-libs-protobuf
+)
+target_link_options(example_02_discovery PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_proto_messages(example_02_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/protocol.proto
+)
+target_sources(example_02_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/endpoint.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/lookup.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/main.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/publish.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/replica.cpp
+)
+target_proto_addincls(example_02_discovery
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(example_02_discovery
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+vcs_info(example_02_discovery)
diff --git a/library/cpp/actors/examples/02_discovery/CMakeLists.linux-aarch64.txt b/library/cpp/actors/examples/02_discovery/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..9f53b25576
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_executable(example_02_discovery)
+target_link_libraries(example_02_discovery PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lfalloc
+ cpp-actors-core
+ cpp-actors-dnsresolver
+ cpp-actors-interconnect
+ cpp-actors-http
+ contrib-libs-protobuf
+)
+target_link_options(example_02_discovery PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_proto_messages(example_02_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/protocol.proto
+)
+target_sources(example_02_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/endpoint.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/lookup.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/main.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/publish.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/replica.cpp
+)
+target_proto_addincls(example_02_discovery
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(example_02_discovery
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+vcs_info(example_02_discovery)
diff --git a/library/cpp/actors/examples/02_discovery/CMakeLists.linux-x86_64.txt b/library/cpp/actors/examples/02_discovery/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..934f3d6b08
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_executable(example_02_discovery)
+target_link_libraries(example_02_discovery PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lfalloc
+ library-cpp-cpuid_check
+ cpp-actors-core
+ cpp-actors-dnsresolver
+ cpp-actors-interconnect
+ cpp-actors-http
+ contrib-libs-protobuf
+)
+target_link_options(example_02_discovery PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_proto_messages(example_02_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/protocol.proto
+)
+target_sources(example_02_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/endpoint.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/lookup.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/main.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/publish.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/replica.cpp
+)
+target_proto_addincls(example_02_discovery
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(example_02_discovery
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+vcs_info(example_02_discovery)
diff --git a/library/cpp/actors/examples/02_discovery/CMakeLists.txt b/library/cpp/actors/examples/02_discovery/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/examples/02_discovery/CMakeLists.windows-x86_64.txt b/library/cpp/actors/examples/02_discovery/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..0e4c17401b
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,57 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_executable(example_02_discovery)
+target_link_libraries(example_02_discovery PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ library-cpp-lfalloc
+ library-cpp-cpuid_check
+ cpp-actors-core
+ cpp-actors-dnsresolver
+ cpp-actors-interconnect
+ cpp-actors-http
+ contrib-libs-protobuf
+)
+target_proto_messages(example_02_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/protocol.proto
+)
+target_sources(example_02_discovery PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/endpoint.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/lookup.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/main.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/publish.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/examples/02_discovery/replica.cpp
+)
+target_proto_addincls(example_02_discovery
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(example_02_discovery
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
+vcs_info(example_02_discovery)
diff --git a/library/cpp/actors/examples/02_discovery/endpoint.cpp b/library/cpp/actors/examples/02_discovery/endpoint.cpp
new file mode 100644
index 0000000000..97780e8b4c
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/endpoint.cpp
@@ -0,0 +1,118 @@
+#include "services.h"
+
+#include <library/cpp/actors/core/hfunc.h>
+#include <library/cpp/actors/core/actor_bootstrapped.h>
+#include <library/cpp/actors/protos/services_common.pb.h>
+
+#include <library/cpp/actors/http/http.h>
+#include <library/cpp/actors/http/http_proxy.h>
+
+#include <util/system/hostname.h>
+#include <util/string/builder.h>
+
+class TExampleHttpRequest : public TActor<TExampleHttpRequest> {
+ TIntrusivePtr<TExampleStorageConfig> Config;
+ const TString PublishKey;
+
+ TActorId HttpProxy;
+ NHttp::THttpIncomingRequestPtr Request;
+
+ void Handle(NHttp::TEvHttpProxy::TEvHttpIncomingRequest::TPtr &ev) {
+ Request = std::move(ev->Get()->Request);
+ HttpProxy = ev->Sender;
+
+ Register(CreateLookupActor(Config.Get(), PublishKey, SelfId()));
+ }
+
+ void Handle(TEvExample::TEvInfo::TPtr &ev) {
+ auto *msg = ev->Get();
+
+ TStringBuilder body;
+ for (const auto &x : msg->Payloads)
+ body << x << Endl;
+
+ auto response = Request->CreateResponseOK(body, "application/text; charset=utf-8");
+ Send(HttpProxy, new NHttp::TEvHttpProxy::TEvHttpOutgoingResponse(response));
+
+ PassAway();
+ }
+public:
+ static constexpr IActor::EActivityType ActorActivityType() {
+ // define app-specific activity tag to track elapsed cpu | handled events | actor count in Solomon
+ return EActorActivity::ACTORLIB_COMMON;
+ }
+
+ TExampleHttpRequest(TExampleStorageConfig *config, const TString &publishKey)
+ : TActor(&TThis::StateWork)
+ , Config(config)
+ , PublishKey(publishKey)
+ {}
+
+ STFUNC(StateWork) {
+ Y_UNUSED(ctx);
+ switch (ev->GetTypeRewrite()) {
+ hFunc(NHttp::TEvHttpProxy::TEvHttpIncomingRequest, Handle);
+ hFunc(TEvExample::TEvInfo, Handle);
+ }
+ }
+};
+
+class TExampleHttpEndpoint : public TActorBootstrapped<TExampleHttpEndpoint> {
+ TIntrusivePtr<TExampleStorageConfig> Config;
+ const TString PublishKey;
+ const ui16 HttpPort;
+
+ TActorId PublishActor;
+ TActorId HttpProxy;
+
+ std::shared_ptr<NMonitoring::TMetricRegistry> SensorsRegistry = std::make_shared<NMonitoring::TMetricRegistry>();
+
+ void PassAway() override {
+ Send(PublishActor, new TEvents::TEvPoison());
+ Send(HttpProxy, new TEvents::TEvPoison());
+
+ return TActor::PassAway();
+ }
+
+ void Handle(NHttp::TEvHttpProxy::TEvHttpIncomingRequest::TPtr &ev) {
+ const TActorId reqActor = Register(new TExampleHttpRequest(Config.Get(), PublishKey));
+ TlsActivationContext->Send(ev->Forward(reqActor));
+ }
+
+public:
+ static constexpr IActor::EActivityType ActorActivityType() {
+ // define app-specific activity tag to track elapsed cpu | handled events | actor count in Solomon
+ return EActorActivity::ACTORLIB_COMMON;
+ }
+
+ TExampleHttpEndpoint(TExampleStorageConfig *config, const TString &publishKey, ui16 port)
+ : Config(config)
+ , PublishKey(publishKey)
+ , HttpPort(port)
+ {
+ }
+
+ void Bootstrap() {
+ const TString publishPayload = ToString(HttpPort);
+ PublishActor = Register(CreatePublishActor(Config.Get(), PublishKey, publishPayload));
+ HttpProxy = Register(NHttp::CreateHttpProxy(SensorsRegistry));
+
+ Send(HttpProxy, new NHttp::TEvHttpProxy::TEvAddListeningPort(HttpPort, FQDNHostName()));
+ Send(HttpProxy, new NHttp::TEvHttpProxy::TEvRegisterHandler("/list", SelfId()));
+
+ Become(&TThis::StateWork);
+ }
+
+ STFUNC(StateWork) {
+ Y_UNUSED(ctx);
+ switch (ev->GetTypeRewrite()) {
+ hFunc(NHttp::TEvHttpProxy::TEvHttpIncomingRequest, Handle);
+ default:
+ break;
+ }
+ }
+};
+
+IActor* CreateEndpointActor(TExampleStorageConfig *config, const TString &publishKey, ui16 port) {
+ return new TExampleHttpEndpoint(config, publishKey, port);
+}
diff --git a/library/cpp/actors/examples/02_discovery/lookup.cpp b/library/cpp/actors/examples/02_discovery/lookup.cpp
new file mode 100644
index 0000000000..469fba74fa
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/lookup.cpp
@@ -0,0 +1,134 @@
+#include "services.h"
+
+#include <library/cpp/actors/core/actorsystem.h>
+#include <library/cpp/actors/core/hfunc.h>
+#include <library/cpp/actors/core/interconnect.h>
+#include <library/cpp/actors/core/actor_bootstrapped.h>
+#include <util/generic/set.h>
+#include <util/generic/vector.h>
+
+class TExampleLookupRequestActor : public TActor<TExampleLookupRequestActor> {
+ const TActorId Owner;
+ const TActorId Replica;
+ const TString Key;
+
+ void Registered(TActorSystem* sys, const TActorId&) override {
+ const auto flags = IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession;
+ sys->Send(new IEventHandleFat(Replica, SelfId(), new TEvExample::TEvReplicaLookup(Key), flags));
+ }
+
+ void PassAway() override {
+ const ui32 replicaNode = Replica.NodeId();
+ if (replicaNode != SelfId().NodeId()) {
+ const TActorId &interconnectProxy = TlsActivationContext->ExecutorThread.ActorSystem->InterconnectProxy(Replica.NodeId());
+ Send(interconnectProxy, new TEvents::TEvUnsubscribe());
+ }
+ return IActor::PassAway();
+ }
+
+ void Handle(TEvExample::TEvReplicaInfo::TPtr &ev) {
+ Send(Owner, ev->Release().Release());
+ return PassAway();
+ }
+
+ void HandleUndelivered() {
+ Send(Owner, new TEvExample::TEvReplicaInfo(Key));
+ return PassAway();
+ }
+public:
+ static constexpr IActor::EActivityType ActorActivityType() {
+ // define app-specific activity tag to track elapsed cpu | handled events | actor count in Solomon
+ return EActorActivity::ACTORLIB_COMMON;
+ }
+
+ TExampleLookupRequestActor(TActorId owner, TActorId replica, const TString &key)
+ : TActor(&TThis::StateWork)
+ , Owner(owner)
+ , Replica(replica)
+ , Key(key)
+ {}
+
+ STFUNC(StateWork) {
+ Y_UNUSED(ctx);
+ switch (ev->GetTypeRewrite()) {
+ hFunc(TEvExample::TEvReplicaInfo, Handle);
+ cFunc(TEvents::TEvUndelivered::EventType, HandleUndelivered);
+ cFunc(TEvInterconnect::TEvNodeDisconnected::EventType, HandleUndelivered);
+ default:
+ break;
+ }
+ }
+};
+
+class TExampleLookupActor : public TActorBootstrapped<TExampleLookupActor> {
+ TIntrusiveConstPtr<TExampleStorageConfig> Config;
+ const TString Key;
+ const TActorId ReplyTo;
+ TVector<TActorId> RequestActors;
+
+ ui32 TotalReplicas = 0;
+ ui32 RepliedSuccess = 0;
+ ui32 RepliedError = 0;
+
+ TSet<TString> Payloads;
+
+ void Handle(TEvExample::TEvReplicaInfo::TPtr &ev) {
+ NActorsExample::TEvReplicaInfo &record = ev->Get()->Record;
+ if (record.PayloadSize()) {
+ ++RepliedSuccess;
+ for (const TString &payload : record.GetPayload()) {
+ Payloads.insert(payload);
+ }
+ }
+ else {
+ ++RepliedError;
+ }
+
+ const ui32 majority = (TotalReplicas / 2 + 1);
+ if (RepliedSuccess == majority || (RepliedSuccess + RepliedError == TotalReplicas))
+ return ReplyAndDie();
+ }
+
+ void ReplyAndDie() {
+ TVector<TString> replyPayloads(Payloads.begin(), Payloads.end());
+ Send(ReplyTo, new TEvExample::TEvInfo(Key, std::move(replyPayloads)));
+ return PassAway();
+ }
+public:
+ static constexpr IActor::EActivityType ActorActivityType() {
+ // define app-specific activity tag to track elapsed cpu | handled events | actor count in Solomon
+ return EActorActivity::ACTORLIB_COMMON;
+ }
+
+ TExampleLookupActor(TExampleStorageConfig *config, const TString &key, TActorId replyTo)
+ : Config(config)
+ , Key(key)
+ , ReplyTo(replyTo)
+ {}
+
+ void Bootstrap() {
+ Y_VERIFY(Config->Replicas.size() > 0);
+
+ TotalReplicas = Config->Replicas.size();
+ RequestActors.reserve(TotalReplicas);
+ for (const auto &replica : Config->Replicas) {
+ const TActorId requestActor = Register(new TExampleLookupRequestActor(SelfId(), replica, Key));
+ RequestActors.emplace_back(requestActor);
+ }
+
+ Become(&TThis::StateWork);
+ }
+
+ STFUNC(StateWork) {
+ Y_UNUSED(ctx);
+ switch (ev->GetTypeRewrite()) {
+ hFunc(TEvExample::TEvReplicaInfo, Handle);
+ default:
+ break;
+ }
+ }
+};
+
+IActor* CreateLookupActor(TExampleStorageConfig *config, const TString &key, TActorId replyTo) {
+ return new TExampleLookupActor(config, key, replyTo);
+}
diff --git a/library/cpp/actors/examples/02_discovery/main.cpp b/library/cpp/actors/examples/02_discovery/main.cpp
new file mode 100644
index 0000000000..379fd6de84
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/main.cpp
@@ -0,0 +1,136 @@
+#include "services.h"
+
+#include <library/cpp/actors/core/actorsystem.h>
+#include <library/cpp/actors/core/executor_pool_basic.h>
+#include <library/cpp/actors/core/scheduler_basic.h>
+#include <library/cpp/actors/core/log.h>
+#include <library/cpp/actors/dnsresolver/dnsresolver.h>
+#include <library/cpp/actors/interconnect/interconnect.h>
+#include <library/cpp/actors/interconnect/interconnect_common.h>
+#include <library/cpp/actors/interconnect/interconnect_tcp_proxy.h>
+#include <library/cpp/actors/interconnect/interconnect_tcp_server.h>
+#include <library/cpp/actors/interconnect/poller_actor.h>
+#include <library/cpp/actors/interconnect/poller_tcp.h>
+#include <library/cpp/actors/util/should_continue.h>
+
+#include <util/system/sigset.h>
+#include <util/generic/xrange.h>
+
+using namespace NActors;
+using namespace NActors::NDnsResolver;
+
+static const ui32 CfgTotalReplicaNodes = 5;
+static const ui16 CfgBasePort = 13300;
+static const ui16 CfgHttpPort = 8881;
+static const TString PublishKey = "endpoint";
+
+static TProgramShouldContinue ShouldContinue;
+
+void OnTerminate(int) {
+ ShouldContinue.ShouldStop();
+}
+
+THolder<TActorSystemSetup> BuildActorSystemSetup(ui32 nodeId, ui32 threads, NMonitoring::TDynamicCounters &counters) {
+ Y_VERIFY(threads > 0 && threads < 100);
+
+ auto setup = MakeHolder<TActorSystemSetup>();
+
+ setup->NodeId = nodeId;
+
+ setup->ExecutorsCount = 1;
+ setup->Executors.Reset(new TAutoPtr<IExecutorPool>[1]);
+ setup->Executors[0] = new TBasicExecutorPool(0, threads, 50);
+ setup->Scheduler = new TBasicSchedulerThread(TSchedulerConfig(512, 0));
+
+ setup->LocalServices.emplace_back(MakePollerActorId(), TActorSetupCmd(CreatePollerActor(), TMailboxType::ReadAsFilled, 0));
+
+ TIntrusivePtr<TTableNameserverSetup> nameserverTable = new TTableNameserverSetup();
+ for (ui32 xnode : xrange<ui32>(1, CfgTotalReplicaNodes + 1)) {
+ nameserverTable->StaticNodeTable[xnode] = std::make_pair("127.0.0.1", CfgBasePort + xnode);
+ }
+
+ setup->LocalServices.emplace_back(
+ MakeDnsResolverActorId(),
+ TActorSetupCmd(CreateOnDemandDnsResolver(), TMailboxType::ReadAsFilled, 0)
+ );
+
+ setup->LocalServices.emplace_back(
+ GetNameserviceActorId(),
+ TActorSetupCmd(CreateNameserverTable(nameserverTable), TMailboxType::ReadAsFilled, 0)
+ );
+
+ TIntrusivePtr<TInterconnectProxyCommon> icCommon = new TInterconnectProxyCommon();
+ icCommon->NameserviceId = GetNameserviceActorId();
+ icCommon->MonCounters = counters.GetSubgroup("counters", "interconnect");
+ icCommon->TechnicalSelfHostName = "127.0.0.1";
+
+ setup->Interconnect.ProxyActors.resize(CfgTotalReplicaNodes + 1);
+ for (ui32 xnode : xrange<ui32>(1, CfgTotalReplicaNodes + 1)) {
+ if (xnode != nodeId) {
+ IActor *actor = new TInterconnectProxyTCP(xnode, icCommon);
+ setup->Interconnect.ProxyActors[xnode] = TActorSetupCmd(actor, TMailboxType::ReadAsFilled, 0);
+ }
+ else {
+ IActor *listener = new TInterconnectListenerTCP("127.0.0.1", CfgBasePort + xnode, icCommon);
+ setup->LocalServices.emplace_back(
+ MakeInterconnectListenerActorId(false),
+ TActorSetupCmd(listener, TMailboxType::ReadAsFilled, 0)
+ );
+ }
+ }
+
+ return setup;
+}
+
+int main(int argc, char **argv) {
+ Y_UNUSED(argc);
+ Y_UNUSED(argv);
+
+#ifdef _unix_
+ signal(SIGPIPE, SIG_IGN);
+#endif
+ signal(SIGINT, &OnTerminate);
+ signal(SIGTERM, &OnTerminate);
+
+ TIntrusivePtr<TExampleStorageConfig> config = new TExampleStorageConfig();
+ for (ui32 nodeid : xrange<ui32>(1, CfgTotalReplicaNodes + 1)) {
+ config->Replicas.push_back(MakeReplicaId(nodeid));
+ }
+
+ TVector<THolder<TActorSystem>> actorSystemHolder;
+ TVector<TIntrusivePtr<NMonitoring::TDynamicCounters>> countersHolder;
+ for (ui32 nodeid : xrange<ui32>(1, CfgTotalReplicaNodes + 1)) {
+ countersHolder.emplace_back(new NMonitoring::TDynamicCounters());
+ THolder<TActorSystemSetup> actorSystemSetup = BuildActorSystemSetup(nodeid, 2, *countersHolder.back());
+ actorSystemSetup->LocalServices.emplace_back(
+ TActorId(),
+ TActorSetupCmd(CreateEndpointActor(config.Get(), PublishKey, CfgHttpPort + nodeid), TMailboxType::HTSwap, 0)
+ );
+
+ actorSystemSetup->LocalServices.emplace_back(
+ MakeReplicaId(nodeid),
+ TActorSetupCmd(CreateReplica(), TMailboxType::ReadAsFilled, 0)
+ );
+
+ actorSystemHolder.emplace_back(new TActorSystem(actorSystemSetup));
+ }
+
+ for (auto &xh : actorSystemHolder)
+ xh->Start();
+
+ while (ShouldContinue.PollState() == TProgramShouldContinue::Continue) {
+ Sleep(TDuration::MilliSeconds(200));
+ }
+
+ // stop actorsystem to not generate new reqeusts for external services
+ // no events would be processed anymore
+ for (auto &xh : actorSystemHolder)
+ xh->Stop();
+
+ // and then cleanup actorsystem
+ // from this moment working with actorsystem prohibited
+ for (auto &xh : actorSystemHolder)
+ xh->Cleanup();
+
+ return ShouldContinue.GetReturnCode();
+}
diff --git a/library/cpp/actors/examples/02_discovery/protocol.proto b/library/cpp/actors/examples/02_discovery/protocol.proto
new file mode 100644
index 0000000000..41cc2cc9c8
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/protocol.proto
@@ -0,0 +1,19 @@
+package NActorsExample;
+
+message TEvReplicaInfo {
+ optional string Key = 1;
+ repeated string Payload = 2;
+};
+
+message TEvReplicaPublishAck {
+ optional string Key = 1;
+};
+
+message TEvReplicaPublish {
+ optional string Key = 1;
+ optional string Payload = 2;
+};
+
+message TEvReplicaLookup {
+ optional string Key = 1;
+};
diff --git a/library/cpp/actors/examples/02_discovery/publish.cpp b/library/cpp/actors/examples/02_discovery/publish.cpp
new file mode 100644
index 0000000000..8dc5fbcea4
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/publish.cpp
@@ -0,0 +1,113 @@
+#include "services.h"
+
+#include <library/cpp/actors/core/actorsystem.h>
+#include <library/cpp/actors/core/hfunc.h>
+#include <library/cpp/actors/core/interconnect.h>
+#include <library/cpp/actors/core/actor_bootstrapped.h>
+#include <util/generic/set.h>
+#include <util/generic/vector.h>
+
+class TExamplePublishReplicaActor : public TActorBootstrapped<TExamplePublishReplicaActor> {
+ const TActorId Owner;
+ const TActorId Replica;
+ const TString Key;
+ const TString Payload;
+
+ void PassAway() override {
+ const ui32 replicaNode = Replica.NodeId();
+ if (replicaNode != SelfId().NodeId()) {
+ const TActorId &interconnectProxy = TlsActivationContext->ExecutorThread.ActorSystem->InterconnectProxy(Replica.NodeId());
+ Send(interconnectProxy, new TEvents::TEvUnsubscribe());
+ }
+ return IActor::PassAway();
+ }
+
+ void SomeSleep() {
+ Become(&TThis::StateSleep, TDuration::MilliSeconds(250), new TEvents::TEvWakeup());
+ }
+public:
+ static constexpr IActor::EActivityType ActorActivityType() {
+ // define app-specific activity tag to track elapsed cpu | handled events | actor count in Solomon
+ return EActorActivity::ACTORLIB_COMMON;
+ }
+
+ TExamplePublishReplicaActor(TActorId owner, TActorId replica, const TString &key, const TString &payload)
+ : Owner(owner)
+ , Replica(replica)
+ , Key(key)
+ , Payload(payload)
+ {}
+
+ void Bootstrap() {
+ const ui32 flags = IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession;
+ Send(Replica, new TEvExample::TEvReplicaPublish(Key, Payload), flags);
+ Become(&TThis::StatePublish);
+ }
+
+ STFUNC(StatePublish) {
+ Y_UNUSED(ctx);
+ switch (ev->GetTypeRewrite()) {
+ cFunc(TEvents::TEvPoison::EventType, PassAway);
+ cFunc(TEvents::TEvUndelivered::EventType, SomeSleep);
+ cFunc(TEvInterconnect::TEvNodeDisconnected::EventType, SomeSleep);
+ default:
+ break;
+ }
+ }
+
+ STFUNC(StateSleep) {
+ Y_UNUSED(ctx);
+ switch (ev->GetTypeRewrite()) {
+ cFunc(TEvents::TEvPoison::EventType, PassAway);
+ cFunc(TEvents::TEvWakeup::EventType, Bootstrap);
+ default:
+ break;
+ }
+ }
+};
+
+class TExamplePublishActor : public TActorBootstrapped<TExamplePublishActor> {
+ TIntrusiveConstPtr<TExampleStorageConfig> Config;
+ const TString Key;
+ const TString Payload;
+ TVector<TActorId> PublishActors;
+
+ void PassAway() override {
+ for (const auto &x : PublishActors)
+ Send(x, new TEvents::TEvPoison());
+ return IActor::PassAway();
+ }
+public:
+ static constexpr IActor::EActivityType ActorActivityType() {
+ // define app-specific activity tag to track elapsed cpu | handled events | actor count in Solomon
+ return EActorActivity::ACTORLIB_COMMON;
+ }
+
+ TExamplePublishActor(TExampleStorageConfig *config, const TString &key, const TString &what)
+ : Config(config)
+ , Key(key)
+ , Payload(what)
+ {}
+
+ void Bootstrap() {
+ for (auto &replica : Config->Replicas) {
+ const TActorId x = Register(new TExamplePublishReplicaActor(SelfId(), replica, Key, Payload));
+ PublishActors.emplace_back(x);
+ }
+
+ Become(&TThis::StateWork);
+ }
+
+ STFUNC(StateWork) {
+ Y_UNUSED(ctx);
+ switch (ev->GetTypeRewrite()) {
+ cFunc(TEvents::TEvPoison::EventType, PassAway);
+ default:
+ break;
+ }
+ }
+};
+
+IActor* CreatePublishActor(TExampleStorageConfig *config, const TString &key, const TString &what) {
+ return new TExamplePublishActor(config, key, what);
+}
diff --git a/library/cpp/actors/examples/02_discovery/replica.cpp b/library/cpp/actors/examples/02_discovery/replica.cpp
new file mode 100644
index 0000000000..74fdfc1910
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/replica.cpp
@@ -0,0 +1,182 @@
+#include "services.h"
+#include <library/cpp/actors/core/actorsystem.h>
+#include <library/cpp/actors/core/hfunc.h>
+#include <library/cpp/actors/core/interconnect.h>
+#include <util/generic/set.h>
+#include <util/generic/hash_set.h>
+#include <util/generic/vector.h>
+
+class TExampleReplicaActor : public TActor<TExampleReplicaActor> {
+ using TOwnerIndex = TMap<TActorId, ui32, TActorId::TOrderedCmp>;
+ using TKeyIndex = THashMap<TString, TSet<ui32>>;
+
+ struct TEntry {
+ TString Payload;
+ TActorId Owner;
+ TOwnerIndex::iterator OwnerIt;
+ TKeyIndex::iterator KeyIt;
+ };
+
+ TVector<TEntry> Entries;
+ TVector<ui32> AvailableEntries;
+
+ TOwnerIndex IndexOwner;
+ TKeyIndex IndexKey;
+
+ ui32 AllocateEntry() {
+ ui32 ret;
+ if (AvailableEntries) {
+ ret = AvailableEntries.back();
+ AvailableEntries.pop_back();
+ }
+ else {
+ ret = Entries.size();
+ Entries.emplace_back();
+ }
+
+ return ret;
+ }
+
+ bool IsLastEntryOnNode(TOwnerIndex::iterator ownerIt) {
+ const ui32 ownerNodeId = ownerIt->first.NodeId();
+ if (ownerIt != IndexOwner.begin()) {
+ auto x = ownerIt;
+ --x;
+ if (x->first.NodeId() == ownerNodeId)
+ return false;
+ }
+
+ ++ownerIt;
+ if (ownerIt != IndexOwner.end()) {
+ if (ownerIt->first.NodeId() == ownerNodeId)
+ return false;
+ }
+
+ return true;
+ }
+
+ void CleanupEntry(ui32 entryIndex) {
+ TEntry &entry = Entries[entryIndex];
+ entry.KeyIt->second.erase(entryIndex);
+ if (entry.KeyIt->second.empty())
+ IndexKey.erase(entry.KeyIt);
+
+ if (IsLastEntryOnNode(entry.OwnerIt))
+ Send(TlsActivationContext->ExecutorThread.ActorSystem->InterconnectProxy(entry.OwnerIt->first.NodeId()), new TEvents::TEvUnsubscribe());
+
+ IndexOwner.erase(entry.OwnerIt);
+
+ TString().swap(entry.Payload);
+ entry.Owner = TActorId();
+ entry.KeyIt = IndexKey.end();
+ entry.OwnerIt = IndexOwner.end();
+
+ AvailableEntries.emplace_back(entryIndex);
+ }
+
+ void Handle(TEvExample::TEvReplicaLookup::TPtr &ev) {
+ auto &record = ev->Get()->Record;
+ const auto &key = record.GetKey();
+
+ auto keyIt = IndexKey.find(key);
+ if (keyIt == IndexKey.end()) {
+ Send(ev->Sender, new TEvExample::TEvReplicaInfo(key), 0, ev->Cookie);
+ return;
+ }
+
+ auto reply = MakeHolder<TEvExample::TEvReplicaInfo>(key);
+ reply->Record.MutablePayload()->Reserve(keyIt->second.size());
+ for (ui32 entryIndex : keyIt->second) {
+ const TEntry &entry = Entries[entryIndex];
+ reply->Record.AddPayload(entry.Payload);
+ }
+
+ Send(ev->Sender, std::move(reply), 0, ev->Cookie);
+ }
+
+ void Handle(TEvExample::TEvReplicaPublish::TPtr &ev) {
+ auto &record = ev->Get()->Record;
+ const TString &key = record.GetKey();
+ const TString &payload = record.GetPayload();
+ const TActorId &owner = ev->Sender;
+
+ auto ownerIt = IndexOwner.find(owner);
+ if (ownerIt != IndexOwner.end()) {
+ const ui32 entryIndex = ownerIt->second;
+ TEntry &entry = Entries[entryIndex];
+ if (entry.KeyIt->first != key) {
+ // reply nothing, request suspicious
+ return;
+ }
+
+ entry.Payload = payload;
+ }
+ else {
+ const ui32 entryIndex = AllocateEntry();
+ TEntry &entry = Entries[entryIndex];
+
+ entry.Payload = payload;
+ entry.Owner = owner;
+
+ entry.OwnerIt = IndexOwner.emplace(owner, entryIndex).first;
+ entry.KeyIt = IndexKey.emplace(std::make_pair(key, TSet<ui32>())).first;
+ entry.KeyIt->second.emplace(entryIndex);
+
+ Send(owner, new TEvExample::TEvReplicaPublishAck(), IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession, ev->Cookie);
+ }
+ }
+
+ void Handle(TEvents::TEvUndelivered::TPtr &ev) {
+ auto ownerIt = IndexOwner.find(ev->Sender);
+ if (ownerIt == IndexOwner.end())
+ return;
+
+ CleanupEntry(ownerIt->second);
+ }
+
+ void Handle(TEvInterconnect::TEvNodeDisconnected::TPtr &ev) {
+ auto *msg = ev->Get();
+ const ui32 nodeId = msg->NodeId;
+ auto ownerIt = IndexOwner.lower_bound(TActorId(nodeId, 0, 0, 0));
+ while (ownerIt != IndexOwner.end() && ownerIt->first.NodeId() == nodeId) {
+ const ui32 idx = ownerIt->second;
+ ++ownerIt;
+ CleanupEntry(idx);
+ }
+ }
+
+public:
+ static constexpr IActor::EActivityType ActorActivityType() {
+ // define app-specific activity tag to track elapsed cpu | handled events | actor count in Solomon
+ return EActorActivity::ACTORLIB_COMMON;
+ }
+
+ TExampleReplicaActor()
+ : TActor(&TThis::StateWork)
+ {}
+
+ STFUNC(StateWork) {
+ Y_UNUSED(ctx);
+ switch (ev->GetTypeRewrite()) {
+ hFunc(TEvExample::TEvReplicaLookup, Handle);
+ hFunc(TEvExample::TEvReplicaPublish, Handle);
+ hFunc(TEvents::TEvUndelivered, Handle);
+ hFunc(TEvInterconnect::TEvNodeDisconnected, Handle);
+
+ IgnoreFunc(TEvInterconnect::TEvNodeConnected);
+ default:
+ // here is place to spam some log message on unknown events
+ break;
+ }
+ }
+};
+
+IActor* CreateReplica() {
+ return new TExampleReplicaActor();
+}
+
+TActorId MakeReplicaId(ui32 nodeid) {
+ char x[12] = { 'r', 'p', 'l' };
+ memcpy(x + 5, &nodeid, sizeof(ui32));
+ return TActorId(nodeid, TStringBuf(x, 12));
+}
diff --git a/library/cpp/actors/examples/02_discovery/services.h b/library/cpp/actors/examples/02_discovery/services.h
new file mode 100644
index 0000000000..266517c577
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/services.h
@@ -0,0 +1,85 @@
+#pragma once
+#include <library/cpp/actors/examples/02_discovery/protocol.pb.h>
+
+#include <library/cpp/actors/core/actor.h>
+#include <library/cpp/actors/core/events.h>
+#include <library/cpp/actors/core/event_pb.h>
+#include <library/cpp/actors/core/event_local.h>
+
+#include <util/generic/vector.h>
+
+using namespace NActors;
+
+struct TExampleStorageConfig : public TThrRefBase {
+ TVector<TActorId> Replicas;
+};
+
+struct TEvExample {
+ enum EEv {
+ EvReplicaLookup = EventSpaceBegin(TEvents::ES_USERSPACE + 1),
+ EvReplicaPublish,
+
+ EvReplicaInfo = EventSpaceBegin(TEvents::ES_USERSPACE + 2),
+ EvReplicaPublishAck,
+
+ EvInfo = EventSpaceBegin(TEvents::ES_USERSPACE + 3),
+ };
+
+ struct TEvReplicaLookup : public TEventPB<TEvReplicaLookup, NActorsExample::TEvReplicaLookup, EvReplicaLookup> {
+ TEvReplicaLookup()
+ {}
+
+ TEvReplicaLookup(const TString &key)
+ {
+ Record.SetKey(key);
+ }
+ };
+
+ struct TEvReplicaPublish : public TEventPB<TEvReplicaPublish, NActorsExample::TEvReplicaPublish, EvReplicaPublish> {
+ TEvReplicaPublish()
+ {}
+
+ TEvReplicaPublish(const TString &key, const TString &payload)
+ {
+ Record.SetKey(key);
+ Record.SetPayload(payload);
+ }
+ };
+
+ struct TEvReplicaInfo : public TEventPB<TEvReplicaInfo, NActorsExample::TEvReplicaInfo, EvReplicaInfo> {
+ TEvReplicaInfo()
+ {}
+
+ TEvReplicaInfo(const TString &key)
+ {
+ Record.SetKey(key);
+ }
+ };
+
+ struct TEvReplicaPublishAck : public TEventPB<TEvReplicaPublishAck, NActorsExample::TEvReplicaPublishAck, EvReplicaPublishAck> {
+ TEvReplicaPublishAck()
+ {}
+
+ TEvReplicaPublishAck(const TString &key)
+ {
+ Record.SetKey(key);
+ }
+ };
+
+ struct TEvInfo : public TEventLocal<TEvInfo, EvInfo> {
+ const TString Key;
+ const TVector<TString> Payloads;
+
+ TEvInfo(const TString &key, TVector<TString> &&payloads)
+ : Key(key)
+ , Payloads(payloads)
+ {}
+ };
+};
+
+IActor* CreateReplica();
+IActor* CreatePublishActor(TExampleStorageConfig *config, const TString &key, const TString &what);
+IActor* CreateLookupActor(TExampleStorageConfig *config, const TString &key, TActorId replyTo);
+IActor* CreateEndpointActor(TExampleStorageConfig *config, const TString &publishKey, ui16 httpPort);
+
+TActorId MakeReplicaId(ui32 nodeid);
diff --git a/library/cpp/actors/examples/02_discovery/ya.make b/library/cpp/actors/examples/02_discovery/ya.make
new file mode 100644
index 0000000000..953c13259c
--- /dev/null
+++ b/library/cpp/actors/examples/02_discovery/ya.make
@@ -0,0 +1,25 @@
+PROGRAM(example_02_discovery)
+
+ALLOCATOR(LF)
+
+SRCS(
+ endpoint.cpp
+ lookup.cpp
+ main.cpp
+ publish.cpp
+ replica.cpp
+ services.h
+)
+
+SRCS(
+ protocol.proto
+)
+
+PEERDIR(
+ library/cpp/actors/core
+ library/cpp/actors/dnsresolver
+ library/cpp/actors/interconnect
+ library/cpp/actors/http
+)
+
+END()
diff --git a/library/cpp/actors/examples/CMakeLists.txt b/library/cpp/actors/examples/CMakeLists.txt
new file mode 100644
index 0000000000..bcda1cfeef
--- /dev/null
+++ b/library/cpp/actors/examples/CMakeLists.txt
@@ -0,0 +1,10 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(01_ping_pong)
+add_subdirectory(02_discovery)
diff --git a/library/cpp/actors/examples/ya.make b/library/cpp/actors/examples/ya.make
new file mode 100644
index 0000000000..0a98074b47
--- /dev/null
+++ b/library/cpp/actors/examples/ya.make
@@ -0,0 +1,4 @@
+RECURSE(
+ 01_ping_pong
+ 02_discovery
+)
diff --git a/library/cpp/actors/helpers/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/helpers/CMakeLists.darwin-x86_64.txt
index 16ecfc7b98..7367c0b925 100644
--- a/library/cpp/actors/helpers/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/helpers/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-helpers)
target_link_libraries(cpp-actors-helpers PUBLIC
diff --git a/library/cpp/actors/helpers/CMakeLists.linux-aarch64.txt b/library/cpp/actors/helpers/CMakeLists.linux-aarch64.txt
index b00db82fde..da8ce6e8e6 100644
--- a/library/cpp/actors/helpers/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/helpers/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-helpers)
target_link_libraries(cpp-actors-helpers PUBLIC
diff --git a/library/cpp/actors/helpers/CMakeLists.linux-x86_64.txt b/library/cpp/actors/helpers/CMakeLists.linux-x86_64.txt
index b00db82fde..da8ce6e8e6 100644
--- a/library/cpp/actors/helpers/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/helpers/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-helpers)
target_link_libraries(cpp-actors-helpers PUBLIC
diff --git a/library/cpp/actors/helpers/CMakeLists.windows-x86_64.txt b/library/cpp/actors/helpers/CMakeLists.windows-x86_64.txt
index 16ecfc7b98..7367c0b925 100644
--- a/library/cpp/actors/helpers/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/helpers/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-helpers)
target_link_libraries(cpp-actors-helpers PUBLIC
diff --git a/library/cpp/actors/helpers/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/helpers/ut/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..d00adbcb1e
--- /dev/null
+++ b/library/cpp/actors/helpers/ut/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-helpers-ut)
+target_include_directories(library-cpp-actors-helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers
+)
+target_link_libraries(library-cpp-actors-helpers-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-helpers
+ cpp-actors-interconnect
+ cpp-actors-testlib
+ cpp-actors-core
+)
+target_link_options(library-cpp-actors-helpers-ut PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers/selfping_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-helpers-ut
+ TEST_TARGET
+ library-cpp-actors-helpers-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-helpers-ut)
diff --git a/library/cpp/actors/helpers/ut/CMakeLists.linux-aarch64.txt b/library/cpp/actors/helpers/ut/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..7222f8dc5c
--- /dev/null
+++ b/library/cpp/actors/helpers/ut/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-helpers-ut)
+target_include_directories(library-cpp-actors-helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers
+)
+target_link_libraries(library-cpp-actors-helpers-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-jemalloc
+ cpp-testing-unittest_main
+ cpp-actors-helpers
+ cpp-actors-interconnect
+ cpp-actors-testlib
+ cpp-actors-core
+)
+target_link_options(library-cpp-actors-helpers-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers/selfping_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-helpers-ut
+ TEST_TARGET
+ library-cpp-actors-helpers-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-helpers-ut)
diff --git a/library/cpp/actors/helpers/ut/CMakeLists.linux-x86_64.txt b/library/cpp/actors/helpers/ut/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..e2894e9b9d
--- /dev/null
+++ b/library/cpp/actors/helpers/ut/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,80 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-helpers-ut)
+target_include_directories(library-cpp-actors-helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers
+)
+target_link_libraries(library-cpp-actors-helpers-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-helpers
+ cpp-actors-interconnect
+ cpp-actors-testlib
+ cpp-actors-core
+)
+target_link_options(library-cpp-actors-helpers-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers/selfping_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-helpers-ut
+ TEST_TARGET
+ library-cpp-actors-helpers-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-helpers-ut)
diff --git a/library/cpp/actors/helpers/ut/CMakeLists.txt b/library/cpp/actors/helpers/ut/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/helpers/ut/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/helpers/ut/CMakeLists.windows-x86_64.txt b/library/cpp/actors/helpers/ut/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..aa3e413f04
--- /dev/null
+++ b/library/cpp/actors/helpers/ut/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-helpers-ut)
+target_include_directories(library-cpp-actors-helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers
+)
+target_link_libraries(library-cpp-actors-helpers-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-helpers
+ cpp-actors-interconnect
+ cpp-actors-testlib
+ cpp-actors-core
+)
+target_sources(library-cpp-actors-helpers-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/helpers/selfping_actor_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-helpers-ut
+ TEST_TARGET
+ library-cpp-actors-helpers-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-helpers-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-helpers-ut)
diff --git a/library/cpp/actors/helpers/ut/ya.make b/library/cpp/actors/helpers/ut/ya.make
new file mode 100644
index 0000000000..10b298bb72
--- /dev/null
+++ b/library/cpp/actors/helpers/ut/ya.make
@@ -0,0 +1,31 @@
+UNITTEST_FOR(library/cpp/actors/helpers)
+
+FORK_SUBTESTS()
+IF (SANITIZER_TYPE)
+ SIZE(LARGE)
+ TIMEOUT(1200)
+ TAG(ya:fat)
+ SPLIT_FACTOR(20)
+ REQUIREMENTS(
+ ram:32
+ )
+ELSE()
+ SIZE(MEDIUM)
+ TIMEOUT(600)
+ REQUIREMENTS(
+ ram:16
+ )
+ENDIF()
+
+
+PEERDIR(
+ library/cpp/actors/interconnect
+ library/cpp/actors/testlib
+ library/cpp/actors/core
+)
+
+SRCS(
+ selfping_actor_ut.cpp
+)
+
+END()
diff --git a/library/cpp/actors/helpers/ya.make b/library/cpp/actors/helpers/ya.make
new file mode 100644
index 0000000000..94acdca726
--- /dev/null
+++ b/library/cpp/actors/helpers/ya.make
@@ -0,0 +1,23 @@
+LIBRARY()
+
+SRCS(
+ activeactors.cpp
+ activeactors.h
+ flow_controlled_queue.cpp
+ flow_controlled_queue.h
+ future_callback.h
+ mon_histogram_helper.h
+ selfping_actor.cpp
+)
+
+PEERDIR(
+ library/cpp/actors/core
+ library/cpp/monlib/dynamic_counters
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
+
diff --git a/library/cpp/actors/http/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/http/CMakeLists.darwin-x86_64.txt
index c60599beaa..7dc97fa768 100644
--- a/library/cpp/actors/http/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/http/CMakeLists.darwin-x86_64.txt
@@ -8,6 +8,7 @@
find_package(OpenSSL REQUIRED)
find_package(ZLIB REQUIRED)
+add_subdirectory(ut)
add_library(cpp-actors-http)
target_link_libraries(cpp-actors-http PUBLIC
diff --git a/library/cpp/actors/http/CMakeLists.linux-aarch64.txt b/library/cpp/actors/http/CMakeLists.linux-aarch64.txt
index d6e3868652..ea0055be16 100644
--- a/library/cpp/actors/http/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/http/CMakeLists.linux-aarch64.txt
@@ -8,6 +8,7 @@
find_package(OpenSSL REQUIRED)
find_package(ZLIB REQUIRED)
+add_subdirectory(ut)
add_library(cpp-actors-http)
target_link_libraries(cpp-actors-http PUBLIC
diff --git a/library/cpp/actors/http/CMakeLists.linux-x86_64.txt b/library/cpp/actors/http/CMakeLists.linux-x86_64.txt
index d6e3868652..ea0055be16 100644
--- a/library/cpp/actors/http/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/http/CMakeLists.linux-x86_64.txt
@@ -8,6 +8,7 @@
find_package(OpenSSL REQUIRED)
find_package(ZLIB REQUIRED)
+add_subdirectory(ut)
add_library(cpp-actors-http)
target_link_libraries(cpp-actors-http PUBLIC
diff --git a/library/cpp/actors/http/CMakeLists.windows-x86_64.txt b/library/cpp/actors/http/CMakeLists.windows-x86_64.txt
index c60599beaa..7dc97fa768 100644
--- a/library/cpp/actors/http/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/http/CMakeLists.windows-x86_64.txt
@@ -8,6 +8,7 @@
find_package(OpenSSL REQUIRED)
find_package(ZLIB REQUIRED)
+add_subdirectory(ut)
add_library(cpp-actors-http)
target_link_libraries(cpp-actors-http PUBLIC
diff --git a/library/cpp/actors/http/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/http/ut/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..18360bfd4d
--- /dev/null
+++ b/library/cpp/actors/http/ut/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-http-ut)
+target_include_directories(library-cpp-actors-http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http
+)
+target_link_libraries(library-cpp-actors-http-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-http
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-http-ut PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-http-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-http-ut
+ TEST_TARGET
+ library-cpp-actors-http-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-http-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-http-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-http-ut)
diff --git a/library/cpp/actors/http/ut/CMakeLists.linux-aarch64.txt b/library/cpp/actors/http/ut/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..15c2e22dc5
--- /dev/null
+++ b/library/cpp/actors/http/ut/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-http-ut)
+target_include_directories(library-cpp-actors-http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http
+)
+target_link_libraries(library-cpp-actors-http-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-jemalloc
+ cpp-testing-unittest_main
+ cpp-actors-http
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-http-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-http-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-http-ut
+ TEST_TARGET
+ library-cpp-actors-http-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-http-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-http-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-http-ut)
diff --git a/library/cpp/actors/http/ut/CMakeLists.linux-x86_64.txt b/library/cpp/actors/http/ut/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..1190cc58f3
--- /dev/null
+++ b/library/cpp/actors/http/ut/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-http-ut)
+target_include_directories(library-cpp-actors-http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http
+)
+target_link_libraries(library-cpp-actors-http-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-http
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-http-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http/http_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-http-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-http-ut
+ TEST_TARGET
+ library-cpp-actors-http-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-http-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-http-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-http-ut)
diff --git a/library/cpp/actors/http/ut/CMakeLists.txt b/library/cpp/actors/http/ut/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/http/ut/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/http/ut/CMakeLists.windows-x86_64.txt b/library/cpp/actors/http/ut/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..80bc753531
--- /dev/null
+++ b/library/cpp/actors/http/ut/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,56 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-http-ut)
+target_include_directories(library-cpp-actors-http-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/http
+)
+target_link_libraries(library-cpp-actors-http-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-http
+ cpp-actors-testlib
+)
+set_property(
+ TARGET
+ library-cpp-actors-http-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-http-ut
+ TEST_TARGET
+ library-cpp-actors-http-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-http-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-http-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-http-ut)
diff --git a/library/cpp/actors/http/ut/ya.make b/library/cpp/actors/http/ut/ya.make
new file mode 100644
index 0000000000..8404308053
--- /dev/null
+++ b/library/cpp/actors/http/ut/ya.make
@@ -0,0 +1,16 @@
+UNITTEST_FOR(library/cpp/actors/http)
+
+SIZE(SMALL)
+
+PEERDIR(
+ library/cpp/actors/testlib
+)
+
+IF (NOT OS_WINDOWS)
+SRCS(
+ http_ut.cpp
+)
+ELSE()
+ENDIF()
+
+END()
diff --git a/library/cpp/actors/http/ya.make b/library/cpp/actors/http/ya.make
new file mode 100644
index 0000000000..9b66988ea9
--- /dev/null
+++ b/library/cpp/actors/http/ya.make
@@ -0,0 +1,36 @@
+LIBRARY()
+
+SRCS(
+ http_cache.cpp
+ http_cache.h
+ http_compress.cpp
+ http_config.h
+ http_proxy_acceptor.cpp
+ http_proxy_incoming.cpp
+ http_proxy_outgoing.cpp
+ http_proxy_sock_impl.h
+ http_proxy_sock64.h
+ http_proxy_ssl.h
+ http_proxy.cpp
+ http_proxy.h
+ http_static.cpp
+ http_static.h
+ http.cpp
+ http.h
+)
+
+PEERDIR(
+ contrib/libs/openssl
+ contrib/libs/zlib
+ library/cpp/actors/core
+ library/cpp/actors/interconnect
+ library/cpp/dns
+ library/cpp/monlib/metrics
+ library/cpp/string_utils/quote
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/actors/interconnect/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/interconnect/CMakeLists.darwin-x86_64.txt
index 49ad9e634b..5240e1579b 100644
--- a/library/cpp/actors/interconnect/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/interconnect/CMakeLists.darwin-x86_64.txt
@@ -8,6 +8,9 @@
find_package(OpenSSL REQUIRED)
add_subdirectory(mock)
+add_subdirectory(ut)
+add_subdirectory(ut_fat)
+add_subdirectory(ut_huge_cluster)
add_library(cpp-actors-interconnect)
target_link_libraries(cpp-actors-interconnect PUBLIC
diff --git a/library/cpp/actors/interconnect/CMakeLists.linux-aarch64.txt b/library/cpp/actors/interconnect/CMakeLists.linux-aarch64.txt
index 255f935cda..b89c5d909e 100644
--- a/library/cpp/actors/interconnect/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/interconnect/CMakeLists.linux-aarch64.txt
@@ -8,6 +8,9 @@
find_package(OpenSSL REQUIRED)
add_subdirectory(mock)
+add_subdirectory(ut)
+add_subdirectory(ut_fat)
+add_subdirectory(ut_huge_cluster)
add_library(cpp-actors-interconnect)
target_link_libraries(cpp-actors-interconnect PUBLIC
diff --git a/library/cpp/actors/interconnect/CMakeLists.linux-x86_64.txt b/library/cpp/actors/interconnect/CMakeLists.linux-x86_64.txt
index 255f935cda..b89c5d909e 100644
--- a/library/cpp/actors/interconnect/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/interconnect/CMakeLists.linux-x86_64.txt
@@ -8,6 +8,9 @@
find_package(OpenSSL REQUIRED)
add_subdirectory(mock)
+add_subdirectory(ut)
+add_subdirectory(ut_fat)
+add_subdirectory(ut_huge_cluster)
add_library(cpp-actors-interconnect)
target_link_libraries(cpp-actors-interconnect PUBLIC
diff --git a/library/cpp/actors/interconnect/CMakeLists.windows-x86_64.txt b/library/cpp/actors/interconnect/CMakeLists.windows-x86_64.txt
index 49ad9e634b..5240e1579b 100644
--- a/library/cpp/actors/interconnect/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/interconnect/CMakeLists.windows-x86_64.txt
@@ -8,6 +8,9 @@
find_package(OpenSSL REQUIRED)
add_subdirectory(mock)
+add_subdirectory(ut)
+add_subdirectory(ut_fat)
+add_subdirectory(ut_huge_cluster)
add_library(cpp-actors-interconnect)
target_link_libraries(cpp-actors-interconnect PUBLIC
diff --git a/library/cpp/actors/interconnect/mock/ya.make b/library/cpp/actors/interconnect/mock/ya.make
new file mode 100644
index 0000000000..d097e3f094
--- /dev/null
+++ b/library/cpp/actors/interconnect/mock/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+ ic_mock.cpp
+ ic_mock.h
+)
+
+SUPPRESSIONS(tsan.supp)
+
+PEERDIR(
+ library/cpp/actors/interconnect
+)
+
+END()
diff --git a/library/cpp/actors/interconnect/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/interconnect/ut/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..ae287fcab7
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,83 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+add_subdirectory(protos)
+
+add_executable(library-cpp-actors-interconnect-ut)
+target_link_libraries(library-cpp-actors-interconnect-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-actors-testlib
+ cpp-digest-md5
+ cpp-testing-unittest
+)
+target_link_options(library-cpp-actors-interconnect-ut PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-interconnect-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/channel_scheduler_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/event_holder_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/interconnect_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/large.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/poller_actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/dynamic_proxy_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-interconnect-ut)
diff --git a/library/cpp/actors/interconnect/ut/CMakeLists.linux-aarch64.txt b/library/cpp/actors/interconnect/ut/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..521f2e1eba
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,85 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+add_subdirectory(protos)
+
+add_executable(library-cpp-actors-interconnect-ut)
+target_link_libraries(library-cpp-actors-interconnect-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-jemalloc
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-actors-testlib
+ cpp-digest-md5
+ cpp-testing-unittest
+)
+target_link_options(library-cpp-actors-interconnect-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-interconnect-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/channel_scheduler_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/event_holder_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/interconnect_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/large.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/poller_actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/dynamic_proxy_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-interconnect-ut)
diff --git a/library/cpp/actors/interconnect/ut/CMakeLists.linux-x86_64.txt b/library/cpp/actors/interconnect/ut/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..6456daf5b8
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,87 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+add_subdirectory(protos)
+
+add_executable(library-cpp-actors-interconnect-ut)
+target_link_libraries(library-cpp-actors-interconnect-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-actors-testlib
+ cpp-digest-md5
+ cpp-testing-unittest
+)
+target_link_options(library-cpp-actors-interconnect-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-interconnect-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/channel_scheduler_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/event_holder_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/interconnect_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/large.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/poller_actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/dynamic_proxy_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-interconnect-ut)
diff --git a/library/cpp/actors/interconnect/ut/CMakeLists.txt b/library/cpp/actors/interconnect/ut/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/interconnect/ut/CMakeLists.windows-x86_64.txt b/library/cpp/actors/interconnect/ut/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..9abc682685
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+add_subdirectory(lib)
+add_subdirectory(protos)
+
+add_executable(library-cpp-actors-interconnect-ut)
+target_link_libraries(library-cpp-actors-interconnect-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-actors-testlib
+ cpp-digest-md5
+ cpp-testing-unittest
+)
+target_sources(library-cpp-actors-interconnect-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/channel_scheduler_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/event_holder_pool_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/interconnect_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/large.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/poller_actor_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/dynamic_proxy_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-interconnect-ut)
diff --git a/library/cpp/actors/interconnect/ut/lib/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/interconnect/ut/lib/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..a6a86ac09b
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/lib/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(interconnect-ut-lib INTERFACE)
+target_link_libraries(interconnect-ut-lib INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/library/cpp/actors/interconnect/ut/lib/CMakeLists.linux-aarch64.txt b/library/cpp/actors/interconnect/ut/lib/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..b20c3b0de9
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/lib/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(interconnect-ut-lib INTERFACE)
+target_link_libraries(interconnect-ut-lib INTERFACE
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/library/cpp/actors/interconnect/ut/lib/CMakeLists.linux-x86_64.txt b/library/cpp/actors/interconnect/ut/lib/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..b20c3b0de9
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/lib/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,15 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(interconnect-ut-lib INTERFACE)
+target_link_libraries(interconnect-ut-lib INTERFACE
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/library/cpp/actors/interconnect/ut/lib/CMakeLists.txt b/library/cpp/actors/interconnect/ut/lib/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/lib/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/interconnect/ut/lib/CMakeLists.windows-x86_64.txt b/library/cpp/actors/interconnect/ut/lib/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..a6a86ac09b
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/lib/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,14 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(interconnect-ut-lib INTERFACE)
+target_link_libraries(interconnect-ut-lib INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+)
diff --git a/library/cpp/actors/interconnect/ut/lib/ya.make b/library/cpp/actors/interconnect/ut/lib/ya.make
new file mode 100644
index 0000000000..615c6a0e54
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/lib/ya.make
@@ -0,0 +1,10 @@
+LIBRARY()
+
+SRCS(
+ node.h
+ test_events.h
+ test_actors.h
+ ic_test_cluster.h
+)
+
+END()
diff --git a/library/cpp/actors/interconnect/ut/protos/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/interconnect/ut/protos/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..01f1765c08
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/protos/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(interconnect-ut-protos)
+target_link_libraries(interconnect-ut-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(interconnect-ut-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/protos/interconnect_test.proto
+)
+target_proto_addincls(interconnect-ut-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(interconnect-ut-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/actors/interconnect/ut/protos/CMakeLists.linux-aarch64.txt b/library/cpp/actors/interconnect/ut/protos/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..10cf33244c
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/protos/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(interconnect-ut-protos)
+target_link_libraries(interconnect-ut-protos PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(interconnect-ut-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/protos/interconnect_test.proto
+)
+target_proto_addincls(interconnect-ut-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(interconnect-ut-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/actors/interconnect/ut/protos/CMakeLists.linux-x86_64.txt b/library/cpp/actors/interconnect/ut/protos/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..10cf33244c
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/protos/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,44 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(interconnect-ut-protos)
+target_link_libraries(interconnect-ut-protos PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(interconnect-ut-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/protos/interconnect_test.proto
+)
+target_proto_addincls(interconnect-ut-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(interconnect-ut-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/actors/interconnect/ut/protos/CMakeLists.txt b/library/cpp/actors/interconnect/ut/protos/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/protos/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/interconnect/ut/protos/CMakeLists.windows-x86_64.txt b/library/cpp/actors/interconnect/ut/protos/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..01f1765c08
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/protos/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,43 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_protoc_bin
+ TOOL_protoc_dependency
+ contrib/tools/protoc/bin
+ protoc
+)
+get_built_tool_path(
+ TOOL_cpp_styleguide_bin
+ TOOL_cpp_styleguide_dependency
+ contrib/tools/protoc/plugins/cpp_styleguide
+ cpp_styleguide
+)
+
+add_library(interconnect-ut-protos)
+target_link_libraries(interconnect-ut-protos PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ contrib-libs-protobuf
+)
+target_proto_messages(interconnect-ut-protos PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut/protos/interconnect_test.proto
+)
+target_proto_addincls(interconnect-ut-protos
+ ./
+ ${CMAKE_SOURCE_DIR}/
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src
+)
+target_proto_outs(interconnect-ut-protos
+ --cpp_out=${CMAKE_BINARY_DIR}/
+ --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/library/cpp/actors/interconnect/ut/protos/ya.make b/library/cpp/actors/interconnect/ut/protos/ya.make
new file mode 100644
index 0000000000..a7ffcd6bd0
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/protos/ya.make
@@ -0,0 +1,9 @@
+PROTO_LIBRARY()
+
+SRCS(
+ interconnect_test.proto
+)
+
+EXCLUDE_TAGS(GO_PROTO)
+
+END()
diff --git a/library/cpp/actors/interconnect/ut/ya.make b/library/cpp/actors/interconnect/ut/ya.make
new file mode 100644
index 0000000000..4a0393f227
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut/ya.make
@@ -0,0 +1,31 @@
+UNITTEST()
+
+IF (SANITIZER_TYPE == "thread")
+ TIMEOUT(1200)
+ SIZE(LARGE)
+ TAG(ya:fat)
+ELSE()
+ TIMEOUT(600)
+ SIZE(MEDIUM)
+ENDIF()
+
+SRCS(
+ channel_scheduler_ut.cpp
+ event_holder_pool_ut.cpp
+ interconnect_ut.cpp
+ large.cpp
+ poller_actor_ut.cpp
+ dynamic_proxy_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/actors/core
+ library/cpp/actors/interconnect
+ library/cpp/actors/interconnect/ut/lib
+ library/cpp/actors/interconnect/ut/protos
+ library/cpp/actors/testlib
+ library/cpp/digest/md5
+ library/cpp/testing/unittest
+)
+
+END()
diff --git a/library/cpp/actors/interconnect/ut_fat/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/interconnect/ut_fat/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..e0acbf78eb
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_fat/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-interconnect-ut_fat)
+target_link_libraries(library-cpp-actors-interconnect-ut_fat PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ actors-interconnect-mock
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-testing-unittest
+ cpp-deprecated-atomic
+)
+target_link_options(library-cpp-actors-interconnect-ut_fat PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-interconnect-ut_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut_fat/main.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut_fat
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut_fat
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-interconnect-ut_fat)
diff --git a/library/cpp/actors/interconnect/ut_fat/CMakeLists.linux-aarch64.txt b/library/cpp/actors/interconnect/ut_fat/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..bff55081e1
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_fat/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-interconnect-ut_fat)
+target_link_libraries(library-cpp-actors-interconnect-ut_fat PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-jemalloc
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ actors-interconnect-mock
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-testing-unittest
+ cpp-deprecated-atomic
+)
+target_link_options(library-cpp-actors-interconnect-ut_fat PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-interconnect-ut_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut_fat/main.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut_fat
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut_fat
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-interconnect-ut_fat)
diff --git a/library/cpp/actors/interconnect/ut_fat/CMakeLists.linux-x86_64.txt b/library/cpp/actors/interconnect/ut_fat/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..229645955c
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_fat/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,73 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-interconnect-ut_fat)
+target_link_libraries(library-cpp-actors-interconnect-ut_fat PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ actors-interconnect-mock
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-testing-unittest
+ cpp-deprecated-atomic
+)
+target_link_options(library-cpp-actors-interconnect-ut_fat PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-interconnect-ut_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut_fat/main.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut_fat
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut_fat
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-interconnect-ut_fat)
diff --git a/library/cpp/actors/interconnect/ut_fat/CMakeLists.txt b/library/cpp/actors/interconnect/ut_fat/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_fat/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/interconnect/ut_fat/CMakeLists.windows-x86_64.txt b/library/cpp/actors/interconnect/ut_fat/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..c1c58aa072
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_fat/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,61 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-interconnect-ut_fat)
+target_link_libraries(library-cpp-actors-interconnect-ut_fat PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ actors-interconnect-mock
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-testing-unittest
+ cpp-deprecated-atomic
+)
+target_sources(library-cpp-actors-interconnect-ut_fat PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut_fat/main.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut_fat
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut_fat
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ LABELS
+ LARGE
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_fat
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-interconnect-ut_fat)
diff --git a/library/cpp/actors/interconnect/ut_fat/ya.make b/library/cpp/actors/interconnect/ut_fat/ya.make
new file mode 100644
index 0000000000..8361c5d9f7
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_fat/ya.make
@@ -0,0 +1,21 @@
+UNITTEST()
+
+SIZE(LARGE)
+
+TAG(ya:fat)
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/actors/core
+ library/cpp/actors/interconnect
+ library/cpp/actors/interconnect/mock
+ library/cpp/actors/interconnect/ut/lib
+ library/cpp/actors/interconnect/ut/protos
+ library/cpp/testing/unittest
+ library/cpp/deprecated/atomic
+)
+
+END()
diff --git a/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..4e31555f16
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,75 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-interconnect-ut_huge_cluster)
+target_link_libraries(library-cpp-actors-interconnect-ut_huge_cluster PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-testing-unittest
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-interconnect-ut_huge_cluster PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-interconnect-ut_huge_cluster PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut_huge_cluster/huge_cluster.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut_huge_cluster
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut_huge_cluster
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-interconnect-ut_huge_cluster)
diff --git a/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.linux-aarch64.txt b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..a7881169fb
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,77 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-interconnect-ut_huge_cluster)
+target_link_libraries(library-cpp-actors-interconnect-ut_huge_cluster PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-jemalloc
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-testing-unittest
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-interconnect-ut_huge_cluster PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-interconnect-ut_huge_cluster PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut_huge_cluster/huge_cluster.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut_huge_cluster
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut_huge_cluster
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-interconnect-ut_huge_cluster)
diff --git a/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.linux-x86_64.txt b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..3939587617
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,79 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-interconnect-ut_huge_cluster)
+target_link_libraries(library-cpp-actors-interconnect-ut_huge_cluster PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-testing-unittest
+ cpp-actors-testlib
+)
+target_link_options(library-cpp-actors-interconnect-ut_huge_cluster PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-interconnect-ut_huge_cluster PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut_huge_cluster/huge_cluster.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut_huge_cluster
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut_huge_cluster
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-interconnect-ut_huge_cluster)
diff --git a/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.txt b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.windows-x86_64.txt b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..f758b835ac
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_huge_cluster/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-interconnect-ut_huge_cluster)
+target_link_libraries(library-cpp-actors-interconnect-ut_huge_cluster PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-core
+ cpp-actors-interconnect
+ interconnect-ut-lib
+ interconnect-ut-protos
+ cpp-testing-unittest
+ cpp-actors-testlib
+)
+target_sources(library-cpp-actors-interconnect-ut_huge_cluster PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/interconnect/ut_huge_cluster/huge_cluster.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-interconnect-ut_huge_cluster
+ TEST_TARGET
+ library-cpp-actors-interconnect-ut_huge_cluster
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ LABELS
+ MEDIUM
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ PROCESSORS
+ 4
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-interconnect-ut_huge_cluster
+ PROPERTY
+ TIMEOUT
+ 600
+)
+vcs_info(library-cpp-actors-interconnect-ut_huge_cluster)
diff --git a/library/cpp/actors/interconnect/ut_huge_cluster/ya.make b/library/cpp/actors/interconnect/ut_huge_cluster/ya.make
new file mode 100644
index 0000000000..828783323d
--- /dev/null
+++ b/library/cpp/actors/interconnect/ut_huge_cluster/ya.make
@@ -0,0 +1,34 @@
+UNITTEST()
+
+IF (SANITIZER_TYPE OR WITH_VALGRIND)
+ TIMEOUT(3600)
+ SIZE(LARGE)
+ TAG(ya:fat)
+ELSE()
+ TIMEOUT(600)
+ SIZE(MEDIUM)
+ENDIF()
+
+IF (BUILD_TYPE == "RELEASE" OR BUILD_TYPE == "RELWITHDEBINFO")
+ SRCS(
+ huge_cluster.cpp
+ )
+ELSE ()
+ MESSAGE(WARNING "It takes too much time to run test in DEBUG mode, some tests are skipped")
+ENDIF ()
+
+PEERDIR(
+ library/cpp/actors/core
+ library/cpp/actors/interconnect
+ library/cpp/actors/interconnect/ut/lib
+ library/cpp/actors/interconnect/ut/protos
+ library/cpp/testing/unittest
+ library/cpp/actors/testlib
+)
+
+REQUIREMENTS(
+ cpu:4
+ ram:32
+)
+
+END()
diff --git a/library/cpp/actors/interconnect/ya.make b/library/cpp/actors/interconnect/ya.make
new file mode 100644
index 0000000000..45e2beabb1
--- /dev/null
+++ b/library/cpp/actors/interconnect/ya.make
@@ -0,0 +1,95 @@
+LIBRARY()
+
+NO_WSHADOW()
+
+IF (PROFILE_MEMORY_ALLOCATIONS)
+ CFLAGS(-DPROFILE_MEMORY_ALLOCATIONS)
+ENDIF()
+
+SRCS(
+ channel_scheduler.h
+ event_filter.h
+ event_holder_pool.h
+ events_local.h
+ interconnect_address.cpp
+ interconnect_address.h
+ interconnect_channel.cpp
+ interconnect_channel.h
+ interconnect_common.h
+ interconnect_counters.cpp
+ interconnect.h
+ interconnect_handshake.cpp
+ interconnect_handshake.h
+ interconnect_impl.h
+ interconnect_mon.cpp
+ interconnect_mon.h
+ interconnect_nameserver_dynamic.cpp
+ interconnect_nameserver_table.cpp
+ interconnect_proxy_wrapper.cpp
+ interconnect_proxy_wrapper.h
+ interconnect_resolve.cpp
+ interconnect_stream.cpp
+ interconnect_stream.h
+ interconnect_tcp_input_session.cpp
+ interconnect_tcp_proxy.cpp
+ interconnect_tcp_proxy.h
+ interconnect_tcp_server.cpp
+ interconnect_tcp_server.h
+ interconnect_tcp_session.cpp
+ interconnect_tcp_session.h
+ load.cpp
+ load.h
+ logging.h
+ packet.cpp
+ packet.h
+ poller_actor.cpp
+ poller_actor.h
+ poller.h
+ poller_tcp.cpp
+ poller_tcp.h
+ poller_tcp_unit.cpp
+ poller_tcp_unit.h
+ poller_tcp_unit_select.cpp
+ poller_tcp_unit_select.h
+ profiler.h
+ slowpoke_actor.h
+ types.cpp
+ types.h
+ watchdog_timer.h
+)
+
+IF (OS_LINUX)
+ SRCS(
+ poller_tcp_unit_epoll.cpp
+ poller_tcp_unit_epoll.h
+ )
+ENDIF()
+
+PEERDIR(
+ contrib/libs/libc_compat
+ contrib/libs/openssl
+ library/cpp/actors/core
+ library/cpp/actors/dnscachelib
+ library/cpp/actors/dnsresolver
+ library/cpp/actors/helpers
+ library/cpp/actors/prof
+ library/cpp/actors/protos
+ library/cpp/actors/util
+ library/cpp/actors/wilson
+ library/cpp/digest/crc32c
+ library/cpp/json
+ library/cpp/lwtrace
+ library/cpp/monlib/dynamic_counters
+ library/cpp/monlib/metrics
+ library/cpp/monlib/service/pages/tablesorter
+ library/cpp/openssl/init
+ library/cpp/packedtypes
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+ ut_fat
+ ut_huge_cluster
+)
diff --git a/library/cpp/actors/log_backend/ya.make b/library/cpp/actors/log_backend/ya.make
new file mode 100644
index 0000000000..ce9f049e9a
--- /dev/null
+++ b/library/cpp/actors/log_backend/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/actors/core
+ library/cpp/logger
+)
+
+SRCS(
+ actor_log_backend.cpp
+)
+
+END()
diff --git a/library/cpp/actors/memory_log/ya.make b/library/cpp/actors/memory_log/ya.make
new file mode 100644
index 0000000000..ae766a5464
--- /dev/null
+++ b/library/cpp/actors/memory_log/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ memlog.cpp
+ memlog.h
+ mmap.cpp
+)
+
+PEERDIR(
+ library/cpp/threading/queue
+ contrib/libs/linuxvdso
+ library/cpp/deprecated/atomic
+)
+
+END()
diff --git a/library/cpp/actors/prof/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/prof/CMakeLists.darwin-x86_64.txt
index 9ee960950d..c641cf5a52 100644
--- a/library/cpp/actors/prof/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/prof/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-prof)
target_link_libraries(cpp-actors-prof PUBLIC
diff --git a/library/cpp/actors/prof/CMakeLists.linux-aarch64.txt b/library/cpp/actors/prof/CMakeLists.linux-aarch64.txt
index a7ee6c9586..fa76970f57 100644
--- a/library/cpp/actors/prof/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/prof/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-prof)
target_link_libraries(cpp-actors-prof PUBLIC
diff --git a/library/cpp/actors/prof/CMakeLists.linux-x86_64.txt b/library/cpp/actors/prof/CMakeLists.linux-x86_64.txt
index a7ee6c9586..fa76970f57 100644
--- a/library/cpp/actors/prof/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/prof/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-prof)
target_link_libraries(cpp-actors-prof PUBLIC
diff --git a/library/cpp/actors/prof/CMakeLists.windows-x86_64.txt b/library/cpp/actors/prof/CMakeLists.windows-x86_64.txt
index 9ee960950d..c641cf5a52 100644
--- a/library/cpp/actors/prof/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/prof/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-prof)
target_link_libraries(cpp-actors-prof PUBLIC
diff --git a/library/cpp/actors/prof/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/prof/ut/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..5a6a0c30a4
--- /dev/null
+++ b/library/cpp/actors/prof/ut/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-prof-ut)
+target_include_directories(library-cpp-actors-prof-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof
+)
+target_link_libraries(library-cpp-actors-prof-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-prof
+)
+target_link_options(library-cpp-actors-prof-ut PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-prof-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof/ut/tag_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-prof-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-prof-ut
+ TEST_TARGET
+ library-cpp-actors-prof-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-prof-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-prof-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-prof-ut)
diff --git a/library/cpp/actors/prof/ut/CMakeLists.linux-aarch64.txt b/library/cpp/actors/prof/ut/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..fae703068a
--- /dev/null
+++ b/library/cpp/actors/prof/ut/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,68 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-prof-ut)
+target_include_directories(library-cpp-actors-prof-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof
+)
+target_link_libraries(library-cpp-actors-prof-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-jemalloc
+ cpp-testing-unittest_main
+ cpp-actors-prof
+)
+target_link_options(library-cpp-actors-prof-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-prof-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof/ut/tag_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-prof-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-prof-ut
+ TEST_TARGET
+ library-cpp-actors-prof-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-prof-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-prof-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-prof-ut)
diff --git a/library/cpp/actors/prof/ut/CMakeLists.linux-x86_64.txt b/library/cpp/actors/prof/ut/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..707f547340
--- /dev/null
+++ b/library/cpp/actors/prof/ut/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,70 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-prof-ut)
+target_include_directories(library-cpp-actors-prof-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof
+)
+target_link_libraries(library-cpp-actors-prof-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-prof
+)
+target_link_options(library-cpp-actors-prof-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-prof-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof/ut/tag_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-prof-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-prof-ut
+ TEST_TARGET
+ library-cpp-actors-prof-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-prof-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-prof-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-prof-ut)
diff --git a/library/cpp/actors/prof/ut/CMakeLists.txt b/library/cpp/actors/prof/ut/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/prof/ut/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/prof/ut/CMakeLists.windows-x86_64.txt b/library/cpp/actors/prof/ut/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..54124f414f
--- /dev/null
+++ b/library/cpp/actors/prof/ut/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,58 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-prof-ut)
+target_include_directories(library-cpp-actors-prof-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof
+)
+target_link_libraries(library-cpp-actors-prof-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-prof
+)
+target_sources(library-cpp-actors-prof-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/prof/ut/tag_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-prof-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-prof-ut
+ TEST_TARGET
+ library-cpp-actors-prof-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-prof-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-prof-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-prof-ut)
diff --git a/library/cpp/actors/prof/ut/ya.make b/library/cpp/actors/prof/ut/ya.make
new file mode 100644
index 0000000000..e439856698
--- /dev/null
+++ b/library/cpp/actors/prof/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/actors/prof)
+
+SRCS(
+ tag_ut.cpp
+)
+
+END()
diff --git a/library/cpp/actors/prof/ya.make b/library/cpp/actors/prof/ya.make
new file mode 100644
index 0000000000..ca29f6cf39
--- /dev/null
+++ b/library/cpp/actors/prof/ya.make
@@ -0,0 +1,27 @@
+LIBRARY()
+
+SRCS(
+ tag.cpp
+ tcmalloc.cpp
+)
+
+PEERDIR(
+ contrib/libs/tcmalloc/malloc_extension
+ library/cpp/charset
+ library/cpp/containers/atomizer
+)
+
+IF (PROFILE_MEMORY_ALLOCATIONS)
+ CFLAGS(-DPROFILE_MEMORY_ALLOCATIONS)
+ PEERDIR(
+ library/cpp/malloc/api
+ library/cpp/lfalloc/dbg_info
+ library/cpp/ytalloc/api
+ )
+ENDIF()
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/actors/protos/ya.make b/library/cpp/actors/protos/ya.make
new file mode 100644
index 0000000000..c9139191ec
--- /dev/null
+++ b/library/cpp/actors/protos/ya.make
@@ -0,0 +1,12 @@
+PROTO_LIBRARY()
+
+SRCS(
+ actors.proto
+ interconnect.proto
+ services_common.proto
+ unittests.proto
+)
+
+EXCLUDE_TAGS(GO_PROTO)
+
+END()
diff --git a/library/cpp/actors/testlib/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/testlib/CMakeLists.darwin-x86_64.txt
index 1508c82e9b..4f1c8d01a2 100644
--- a/library/cpp/actors/testlib/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/testlib/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-testlib)
target_link_libraries(cpp-actors-testlib PUBLIC
diff --git a/library/cpp/actors/testlib/CMakeLists.linux-aarch64.txt b/library/cpp/actors/testlib/CMakeLists.linux-aarch64.txt
index 68cb3d3199..40a5c9c26f 100644
--- a/library/cpp/actors/testlib/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/testlib/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-testlib)
target_link_libraries(cpp-actors-testlib PUBLIC
diff --git a/library/cpp/actors/testlib/CMakeLists.linux-x86_64.txt b/library/cpp/actors/testlib/CMakeLists.linux-x86_64.txt
index 68cb3d3199..40a5c9c26f 100644
--- a/library/cpp/actors/testlib/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/testlib/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-testlib)
target_link_libraries(cpp-actors-testlib PUBLIC
diff --git a/library/cpp/actors/testlib/CMakeLists.windows-x86_64.txt b/library/cpp/actors/testlib/CMakeLists.windows-x86_64.txt
index 1508c82e9b..4f1c8d01a2 100644
--- a/library/cpp/actors/testlib/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/testlib/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-testlib)
target_link_libraries(cpp-actors-testlib PUBLIC
diff --git a/library/cpp/actors/testlib/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/testlib/ut/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..299d7f5aac
--- /dev/null
+++ b/library/cpp/actors/testlib/ut/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,67 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-testlib-ut)
+target_include_directories(library-cpp-actors-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib
+)
+target_link_libraries(library-cpp-actors-testlib-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-testlib
+ cpp-actors-core
+)
+target_link_options(library-cpp-actors-testlib-ut PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+ -framework
+ CoreFoundation
+)
+target_sources(library-cpp-actors-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib/decorator_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-testlib-ut
+ TEST_TARGET
+ library-cpp-actors-testlib-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-testlib-ut)
diff --git a/library/cpp/actors/testlib/ut/CMakeLists.linux-aarch64.txt b/library/cpp/actors/testlib/ut/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..f41e1a3763
--- /dev/null
+++ b/library/cpp/actors/testlib/ut/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,69 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-testlib-ut)
+target_include_directories(library-cpp-actors-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib
+)
+target_link_libraries(library-cpp-actors-testlib-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-jemalloc
+ cpp-testing-unittest_main
+ cpp-actors-testlib
+ cpp-actors-core
+)
+target_link_options(library-cpp-actors-testlib-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib/decorator_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-testlib-ut
+ TEST_TARGET
+ library-cpp-actors-testlib-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-testlib-ut)
diff --git a/library/cpp/actors/testlib/ut/CMakeLists.linux-x86_64.txt b/library/cpp/actors/testlib/ut/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..83a9b7371f
--- /dev/null
+++ b/library/cpp/actors/testlib/ut/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,71 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-testlib-ut)
+target_include_directories(library-cpp-actors-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib
+)
+target_link_libraries(library-cpp-actors-testlib-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-testlib
+ cpp-actors-core
+)
+target_link_options(library-cpp-actors-testlib-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib/decorator_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-testlib-ut
+ TEST_TARGET
+ library-cpp-actors-testlib-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-testlib-ut)
diff --git a/library/cpp/actors/testlib/ut/CMakeLists.txt b/library/cpp/actors/testlib/ut/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/testlib/ut/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/testlib/ut/CMakeLists.windows-x86_64.txt b/library/cpp/actors/testlib/ut/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..c04f088b8a
--- /dev/null
+++ b/library/cpp/actors/testlib/ut/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,59 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-testlib-ut)
+target_include_directories(library-cpp-actors-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib
+)
+target_link_libraries(library-cpp-actors-testlib-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-testlib
+ cpp-actors-core
+)
+target_sources(library-cpp-actors-testlib-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/testlib/decorator_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 10
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-testlib-ut
+ TEST_TARGET
+ library-cpp-actors-testlib-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-testlib-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-testlib-ut)
diff --git a/library/cpp/actors/testlib/ut/ya.make b/library/cpp/actors/testlib/ut/ya.make
new file mode 100644
index 0000000000..ea6aef37a6
--- /dev/null
+++ b/library/cpp/actors/testlib/ut/ya.make
@@ -0,0 +1,15 @@
+UNITTEST_FOR(library/cpp/actors/testlib)
+
+FORK_SUBTESTS()
+SIZE(SMALL)
+
+
+PEERDIR(
+ library/cpp/actors/core
+)
+
+SRCS(
+ decorator_ut.cpp
+)
+
+END()
diff --git a/library/cpp/actors/testlib/ya.make b/library/cpp/actors/testlib/ya.make
new file mode 100644
index 0000000000..0bd44ddd57
--- /dev/null
+++ b/library/cpp/actors/testlib/ya.make
@@ -0,0 +1,23 @@
+LIBRARY()
+
+SRCS(
+ test_runtime.cpp
+)
+
+PEERDIR(
+ library/cpp/actors/core
+ library/cpp/actors/interconnect/mock
+ library/cpp/actors/protos
+ library/cpp/random_provider
+ library/cpp/time_provider
+)
+
+IF (GCC)
+ CFLAGS(-fno-devirtualize-speculatively)
+ENDIF()
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt
index 2bac6f5b8a..dc95e52a16 100644
--- a/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/util/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-util)
target_link_libraries(cpp-actors-util PUBLIC
diff --git a/library/cpp/actors/util/CMakeLists.linux-aarch64.txt b/library/cpp/actors/util/CMakeLists.linux-aarch64.txt
index 9eebd23475..badffff2b9 100644
--- a/library/cpp/actors/util/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/util/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-util)
target_link_libraries(cpp-actors-util PUBLIC
diff --git a/library/cpp/actors/util/CMakeLists.linux-x86_64.txt b/library/cpp/actors/util/CMakeLists.linux-x86_64.txt
index 9eebd23475..badffff2b9 100644
--- a/library/cpp/actors/util/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/util/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-util)
target_link_libraries(cpp-actors-util PUBLIC
diff --git a/library/cpp/actors/util/CMakeLists.windows-x86_64.txt b/library/cpp/actors/util/CMakeLists.windows-x86_64.txt
index 2bac6f5b8a..dc95e52a16 100644
--- a/library/cpp/actors/util/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/util/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(ut)
add_library(cpp-actors-util)
target_link_libraries(cpp-actors-util PUBLIC
diff --git a/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..058c400181
--- /dev/null
+++ b/library/cpp/actors/util/ut/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,72 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-util-ut)
+target_include_directories(library-cpp-actors-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util
+)
+target_link_libraries(library-cpp-actors-util-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-util
+)
+target_link_options(library-cpp-actors-util-ut PRIVATE
+ -Wl,-no_deduplicate
+ -Wl,-sdk_version,10.15
+ -fPIC
+ -fPIC
+)
+target_sources(library-cpp-actors-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/cpu_load_log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/thread_load_log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_rope_backend_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_native_rope_backend_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/unordered_cache_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-util-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-util-ut
+ TEST_TARGET
+ library-cpp-actors-util-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-util-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-util-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-util-ut)
diff --git a/library/cpp/actors/util/ut/CMakeLists.linux-aarch64.txt b/library/cpp/actors/util/ut/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..095f1c02f4
--- /dev/null
+++ b/library/cpp/actors/util/ut/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,76 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-util-ut)
+target_include_directories(library-cpp-actors-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util
+)
+target_link_libraries(library-cpp-actors-util-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-jemalloc
+ cpp-testing-unittest_main
+ cpp-actors-util
+)
+target_link_options(library-cpp-actors-util-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/cpu_load_log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/thread_load_log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_rope_backend_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_native_rope_backend_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/unordered_cache_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-util-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-util-ut
+ TEST_TARGET
+ library-cpp-actors-util-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-util-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-util-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-util-ut)
diff --git a/library/cpp/actors/util/ut/CMakeLists.linux-x86_64.txt b/library/cpp/actors/util/ut/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..9d526492d8
--- /dev/null
+++ b/library/cpp/actors/util/ut/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,78 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-util-ut)
+target_include_directories(library-cpp-actors-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util
+)
+target_link_libraries(library-cpp-actors-util-ut PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-tcmalloc
+ libs-tcmalloc-no_percpu_cache
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-util
+)
+target_link_options(library-cpp-actors-util-ut PRIVATE
+ -ldl
+ -lrt
+ -Wl,--no-as-needed
+ -fPIC
+ -fPIC
+ -lpthread
+ -lrt
+ -ldl
+)
+target_sources(library-cpp-actors-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/cpu_load_log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/thread_load_log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_rope_backend_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_native_rope_backend_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/unordered_cache_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-util-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-util-ut
+ TEST_TARGET
+ library-cpp-actors-util-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-util-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-util-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-util-ut)
diff --git a/library/cpp/actors/util/ut/CMakeLists.txt b/library/cpp/actors/util/ut/CMakeLists.txt
new file mode 100644
index 0000000000..d90657116d
--- /dev/null
+++ b/library/cpp/actors/util/ut/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND UNIX AND NOT APPLE AND NOT ANDROID)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/util/ut/CMakeLists.windows-x86_64.txt b/library/cpp/actors/util/ut/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..becfd9853b
--- /dev/null
+++ b/library/cpp/actors/util/ut/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,66 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, 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 ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_executable(library-cpp-actors-util-ut)
+target_include_directories(library-cpp-actors-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util
+)
+target_link_libraries(library-cpp-actors-util-ut PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-malloc-system
+ library-cpp-cpuid_check
+ cpp-testing-unittest_main
+ cpp-actors-util
+)
+target_sources(library-cpp-actors-util-ut PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/cpu_load_log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/memory_tracker_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/thread_load_log_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rope_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/rc_buf_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_rope_backend_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/shared_data_native_rope_backend_ut.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/util/unordered_cache_ut.cpp
+)
+set_property(
+ TARGET
+ library-cpp-actors-util-ut
+ PROPERTY
+ SPLIT_FACTOR
+ 1
+)
+add_yunittest(
+ NAME
+ library-cpp-actors-util-ut
+ TEST_TARGET
+ library-cpp-actors-util-ut
+ TEST_ARG
+ --print-before-suite
+ --print-before-test
+ --fork-tests
+ --print-times
+ --show-fails
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-util-ut
+ PROPERTY
+ LABELS
+ SMALL
+)
+set_yunittest_property(
+ TEST
+ library-cpp-actors-util-ut
+ PROPERTY
+ PROCESSORS
+ 1
+)
+vcs_info(library-cpp-actors-util-ut)
diff --git a/library/cpp/actors/util/ut/ya.make b/library/cpp/actors/util/ut/ya.make
new file mode 100644
index 0000000000..9ac8504751
--- /dev/null
+++ b/library/cpp/actors/util/ut/ya.make
@@ -0,0 +1,20 @@
+UNITTEST_FOR(library/cpp/actors/util)
+
+IF (WITH_VALGRIND)
+ TIMEOUT(600)
+ SIZE(MEDIUM)
+ENDIF()
+
+SRCS(
+ cpu_load_log_ut.cpp
+ memory_tracker_ut.cpp
+ thread_load_log_ut.cpp
+ rope_ut.cpp
+ rc_buf_ut.cpp
+ shared_data_ut.cpp
+ shared_data_rope_backend_ut.cpp
+ shared_data_native_rope_backend_ut.cpp
+ unordered_cache_ut.cpp
+)
+
+END()
diff --git a/library/cpp/actors/util/ya.make b/library/cpp/actors/util/ya.make
new file mode 100644
index 0000000000..6dfc0e97a8
--- /dev/null
+++ b/library/cpp/actors/util/ya.make
@@ -0,0 +1,47 @@
+LIBRARY()
+
+SRCS(
+ affinity.cpp
+ affinity.h
+ cpu_load_log.h
+ cpumask.h
+ datetime.h
+ defs.h
+ funnel_queue.h
+ futex.h
+ intrinsics.h
+ local_process_key.h
+ named_tuple.h
+ queue_chunk.h
+ queue_oneone_inplace.h
+ memory_track.cpp
+ memory_track.h
+ memory_tracker.cpp
+ memory_tracker.h
+ recentwnd.h
+ rope.h
+ rc_buf.h
+ shared_data.h
+ shared_data.cpp
+ shared_data_rope_backend.h
+ should_continue.cpp
+ should_continue.h
+ thread.h
+ threadparkpad.cpp
+ threadparkpad.h
+ thread_load_log.h
+ ticket_lock.h
+ timerfd.h
+ unordered_cache.h
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+ library/cpp/pop_count
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/actors/wilson/protos/ya.make b/library/cpp/actors/wilson/protos/ya.make
new file mode 100644
index 0000000000..9a756e8da0
--- /dev/null
+++ b/library/cpp/actors/wilson/protos/ya.make
@@ -0,0 +1,17 @@
+PROTO_LIBRARY()
+
+ GRPC()
+
+ SRCS(
+ common.proto
+ resource.proto
+ service.proto
+ trace.proto
+ )
+
+ EXCLUDE_TAGS(
+ GO_PROTO
+ JAVA_PROTO
+ )
+
+END()
diff --git a/library/cpp/actors/wilson/ya.make b/library/cpp/actors/wilson/ya.make
new file mode 100644
index 0000000000..f1582fa918
--- /dev/null
+++ b/library/cpp/actors/wilson/ya.make
@@ -0,0 +1,21 @@
+LIBRARY()
+
+ SRCS(
+ wilson_event.cpp
+ wilson_span.cpp
+ wilson_profile_span.cpp
+ wilson_trace.cpp
+ wilson_uploader.cpp
+ )
+
+ PEERDIR(
+ library/cpp/actors/core
+ library/cpp/actors/protos
+ library/cpp/actors/wilson/protos
+ )
+
+END()
+
+RECURSE(
+ protos
+)
diff --git a/library/cpp/actors/ya.make b/library/cpp/actors/ya.make
new file mode 100644
index 0000000000..2612c414cd
--- /dev/null
+++ b/library/cpp/actors/ya.make
@@ -0,0 +1,15 @@
+RECURSE(
+ log_backend
+ core
+ dnsresolver
+ examples
+ interconnect
+ memory_log
+ helpers
+ prof
+ protos
+ util
+ wilson
+ testlib
+ http
+)
diff --git a/library/cpp/archive/ut/ya.make b/library/cpp/archive/ut/ya.make
new file mode 100644
index 0000000000..d8022cd70c
--- /dev/null
+++ b/library/cpp/archive/ut/ya.make
@@ -0,0 +1,14 @@
+UNITTEST()
+
+PEERDIR(
+ ADDINCL library/cpp/archive
+)
+
+SRCDIR(library/cpp/archive)
+
+SRCS(
+ yarchive_ut.cpp
+ directory_models_archive_reader_ut.cpp
+)
+
+END()
diff --git a/library/cpp/archive/ya.make b/library/cpp/archive/ya.make
new file mode 100644
index 0000000000..ff20c9ffbd
--- /dev/null
+++ b/library/cpp/archive/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+ yarchive.cpp
+ yarchive.h
+ directory_models_archive_reader.cpp
+ directory_models_archive_reader.h
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/balloc/lib/ya.make b/library/cpp/balloc/lib/ya.make
new file mode 100644
index 0000000000..a2c5f80008
--- /dev/null
+++ b/library/cpp/balloc/lib/ya.make
@@ -0,0 +1,26 @@
+LIBRARY()
+
+NO_UTIL()
+NO_COMPILER_WARNINGS()
+
+SRCS(
+ alloc_stats.cpp
+ alloc_stats.h
+)
+
+IF (OS_LINUX)
+ PEERDIR(
+ contrib/libs/linuxvdso
+ )
+ENDIF()
+
+PEERDIR(
+ library/cpp/balloc/setup
+ library/cpp/malloc/api
+)
+
+SET(IDE_FOLDER "util")
+
+END()
+
+NEED_CHECK()
diff --git a/library/cpp/balloc/setup/ya.make b/library/cpp/balloc/setup/ya.make
new file mode 100644
index 0000000000..90bb97ea28
--- /dev/null
+++ b/library/cpp/balloc/setup/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+NO_UTIL()
+
+IF ("${YMAKE}" MATCHES "devtools")
+ CFLAGS(-DYMAKE=1)
+ENDIF()
+
+SRCS(
+ alloc.cpp
+ enable.cpp
+)
+
+END()
+
+NEED_CHECK()
diff --git a/library/cpp/balloc/ya.make b/library/cpp/balloc/ya.make
new file mode 100644
index 0000000000..ad8cae97e5
--- /dev/null
+++ b/library/cpp/balloc/ya.make
@@ -0,0 +1,23 @@
+LIBRARY()
+
+NO_UTIL()
+NO_COMPILER_WARNINGS()
+
+IF (OS_WINDOWS)
+ PEERDIR(
+ library/cpp/lfalloc
+ )
+ELSE()
+ SRCS(
+ balloc.cpp
+ malloc-info.cpp
+ )
+
+ PEERDIR(
+ library/cpp/balloc/lib
+ )
+ENDIF()
+
+END()
+
+NEED_CHECK()
diff --git a/library/cpp/binsaver/ut/ya.make b/library/cpp/binsaver/ut/ya.make
new file mode 100644
index 0000000000..de198b31a4
--- /dev/null
+++ b/library/cpp/binsaver/ut/ya.make
@@ -0,0 +1,9 @@
+UNITTEST_FOR(library/cpp/binsaver)
+
+SRCS(
+ binsaver_ut.cpp
+)
+
+PEERDIR(library/cpp/binsaver/ut_util)
+
+END()
diff --git a/library/cpp/binsaver/ut_util/ya.make b/library/cpp/binsaver/ut_util/ya.make
new file mode 100644
index 0000000000..39b6c955b2
--- /dev/null
+++ b/library/cpp/binsaver/ut_util/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ ut_util.cpp
+)
+
+PEERDIR(
+ library/cpp/binsaver
+ library/cpp/testing/unittest
+)
+
+END()
diff --git a/library/cpp/binsaver/ya.make b/library/cpp/binsaver/ya.make
new file mode 100644
index 0000000000..ae26fa93c1
--- /dev/null
+++ b/library/cpp/binsaver/ya.make
@@ -0,0 +1,21 @@
+LIBRARY()
+
+SRCS(
+ class_factory.h
+ bin_saver.cpp
+ blob_io.cpp
+ buffered_io.cpp
+ mem_io.cpp
+ util_stream_io.cpp
+)
+
+PEERDIR(
+ library/cpp/containers/2d_array
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+ ut_util
+)
diff --git a/library/cpp/bit_io/ut/ya.make b/library/cpp/bit_io/ut/ya.make
new file mode 100644
index 0000000000..a206a477e1
--- /dev/null
+++ b/library/cpp/bit_io/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/bit_io)
+
+SRCS(
+ bitinout_ut.cpp
+)
+
+END()
diff --git a/library/cpp/bit_io/ya.make b/library/cpp/bit_io/ya.make
new file mode 100644
index 0000000000..cb046bcf7e
--- /dev/null
+++ b/library/cpp/bit_io/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/deprecated/accessors
+)
+
+SRCS(
+ bitinput.cpp
+ bitinput_impl.cpp
+ bitoutput.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/blockcodecs/codecs/brotli/ya.make b/library/cpp/blockcodecs/codecs/brotli/ya.make
new file mode 100644
index 0000000000..f1983cef15
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/brotli/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/brotli/enc
+ contrib/libs/brotli/dec
+ library/cpp/blockcodecs/core
+)
+
+SRCS(
+ GLOBAL brotli.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/codecs/bzip/ya.make b/library/cpp/blockcodecs/codecs/bzip/ya.make
new file mode 100644
index 0000000000..7c83580341
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/bzip/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/libbz2
+ library/cpp/blockcodecs/core
+)
+
+SRCS(
+ GLOBAL bzip.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/codecs/fastlz/ya.make b/library/cpp/blockcodecs/codecs/fastlz/ya.make
new file mode 100644
index 0000000000..24306c308c
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/fastlz/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/fastlz
+ library/cpp/blockcodecs/core
+)
+
+SRCS(
+ GLOBAL fastlz.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/codecs/legacy_zstd06/ya.make b/library/cpp/blockcodecs/codecs/legacy_zstd06/ya.make
new file mode 100644
index 0000000000..d4735651b9
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/legacy_zstd06/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/zstd06
+ library/cpp/blockcodecs/core
+)
+
+SRCS(
+ GLOBAL legacy_zstd06.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/codecs/lz4/ya.make b/library/cpp/blockcodecs/codecs/lz4/ya.make
new file mode 100644
index 0000000000..c66b8fc634
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/lz4/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/lz4
+ library/cpp/blockcodecs/core
+)
+
+SRCS(
+ GLOBAL lz4.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/codecs/lzma/ya.make b/library/cpp/blockcodecs/codecs/lzma/ya.make
new file mode 100644
index 0000000000..20db16c83d
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/lzma/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/lzmasdk
+ library/cpp/blockcodecs/core
+)
+
+SRCS(
+ GLOBAL lzma.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/codecs/snappy/ya.make b/library/cpp/blockcodecs/codecs/snappy/ya.make
new file mode 100644
index 0000000000..122cd721cc
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/snappy/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/snappy
+ library/cpp/blockcodecs/core
+)
+
+SRCS(
+ GLOBAL snappy.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/codecs/zlib/ya.make b/library/cpp/blockcodecs/codecs/zlib/ya.make
new file mode 100644
index 0000000000..206ce30e10
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/zlib/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/zlib
+ library/cpp/blockcodecs/core
+)
+
+SRCS(
+ GLOBAL zlib.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/codecs/zstd/ya.make b/library/cpp/blockcodecs/codecs/zstd/ya.make
new file mode 100644
index 0000000000..3e65f7ca2f
--- /dev/null
+++ b/library/cpp/blockcodecs/codecs/zstd/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/zstd
+ library/cpp/blockcodecs/core
+)
+
+SRCS(
+ GLOBAL zstd.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/core/ya.make b/library/cpp/blockcodecs/core/ya.make
new file mode 100644
index 0000000000..ac9789ab7f
--- /dev/null
+++ b/library/cpp/blockcodecs/core/ya.make
@@ -0,0 +1,8 @@
+LIBRARY()
+
+SRCS(
+ codecs.cpp
+ stream.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/fuzz/proto/ya.make b/library/cpp/blockcodecs/fuzz/proto/ya.make
new file mode 100644
index 0000000000..93252bce8d
--- /dev/null
+++ b/library/cpp/blockcodecs/fuzz/proto/ya.make
@@ -0,0 +1,9 @@
+PROTO_LIBRARY()
+
+SRCS(
+ case.proto
+)
+
+EXCLUDE_TAGS(GO_PROTO)
+
+END()
diff --git a/library/cpp/blockcodecs/fuzz/ya.make b/library/cpp/blockcodecs/fuzz/ya.make
new file mode 100644
index 0000000000..c917e89aac
--- /dev/null
+++ b/library/cpp/blockcodecs/fuzz/ya.make
@@ -0,0 +1,18 @@
+IF (NOT MSVC)
+ FUZZ()
+
+ SIZE(MEDIUM)
+
+ SRCS(
+ main.cpp
+ )
+
+ PEERDIR(
+ contrib/libs/protobuf
+ contrib/libs/protobuf-mutator
+ library/cpp/blockcodecs
+ library/cpp/blockcodecs/fuzz/proto
+ )
+
+ END()
+ENDIF()
diff --git a/library/cpp/blockcodecs/ut/ya.make b/library/cpp/blockcodecs/ut/ya.make
new file mode 100644
index 0000000000..d39e21f371
--- /dev/null
+++ b/library/cpp/blockcodecs/ut/ya.make
@@ -0,0 +1,17 @@
+UNITTEST_FOR(library/cpp/blockcodecs)
+
+FORK_TESTS()
+
+FORK_SUBTESTS()
+
+SPLIT_FACTOR(40)
+
+TIMEOUT(300)
+
+SIZE(MEDIUM)
+
+SRCS(
+ codecs_ut.cpp
+)
+
+END()
diff --git a/library/cpp/blockcodecs/ya.make b/library/cpp/blockcodecs/ya.make
new file mode 100644
index 0000000000..add534d2d6
--- /dev/null
+++ b/library/cpp/blockcodecs/ya.make
@@ -0,0 +1,26 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/blockcodecs/core
+ library/cpp/blockcodecs/codecs/brotli
+ library/cpp/blockcodecs/codecs/bzip
+ library/cpp/blockcodecs/codecs/fastlz
+ library/cpp/blockcodecs/codecs/legacy_zstd06
+ library/cpp/blockcodecs/codecs/lz4
+ library/cpp/blockcodecs/codecs/lzma
+ library/cpp/blockcodecs/codecs/snappy
+ library/cpp/blockcodecs/codecs/zlib
+ library/cpp/blockcodecs/codecs/zstd
+)
+
+SRCS(
+ codecs.cpp
+ stream.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ fuzz
+ ut
+)
diff --git a/library/cpp/bucket_quoter/ut/ya.make b/library/cpp/bucket_quoter/ut/ya.make
new file mode 100644
index 0000000000..d7bc7a30ed
--- /dev/null
+++ b/library/cpp/bucket_quoter/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+FORK_SUBTESTS()
+SRCS(
+ main.cpp
+ test_namespace.cpp
+)
+PEERDIR(
+ library/cpp/bucket_quoter
+ library/cpp/getopt
+)
+
+END()
diff --git a/library/cpp/bucket_quoter/ya.make b/library/cpp/bucket_quoter/ya.make
new file mode 100644
index 0000000000..d74141e39d
--- /dev/null
+++ b/library/cpp/bucket_quoter/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ bucket_quoter.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/build_info/ya.make b/library/cpp/build_info/ya.make
new file mode 100644
index 0000000000..8e5d7b6c83
--- /dev/null
+++ b/library/cpp/build_info/ya.make
@@ -0,0 +1,18 @@
+LIBRARY()
+
+DEFAULT(SANDBOX_TASK_ID 0)
+DEFAULT(KOSHER_SVN_VERSION "")
+
+CREATE_BUILDINFO_FOR(buildinfo_data.h)
+
+PEERDIR(
+ library/cpp/string_utils/base64
+)
+
+SRCS(
+ sandbox.cpp.in
+ build_info.cpp.in
+ build_info_static.cpp
+)
+
+END()
diff --git a/library/cpp/cache/ut/ya.make b/library/cpp/cache/ut/ya.make
new file mode 100644
index 0000000000..32fb8fd153
--- /dev/null
+++ b/library/cpp/cache/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/cache
+)
+
+SRCS(
+ cache_ut.cpp
+)
+
+END()
diff --git a/library/cpp/cache/ya.make b/library/cpp/cache/ya.make
new file mode 100644
index 0000000000..27f94e52a6
--- /dev/null
+++ b/library/cpp/cache/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ cache.cpp
+ thread_safe_cache.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/case_insensitive_string/ut/ya.make b/library/cpp/case_insensitive_string/ut/ya.make
new file mode 100644
index 0000000000..85db6ec468
--- /dev/null
+++ b/library/cpp/case_insensitive_string/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/case_insensitive_string)
+
+SRCS(
+ case_insensitive_string_ut.cpp
+)
+
+END()
diff --git a/library/cpp/case_insensitive_string/ya.make b/library/cpp/case_insensitive_string/ya.make
new file mode 100644
index 0000000000..1057ab7ada
--- /dev/null
+++ b/library/cpp/case_insensitive_string/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ case_insensitive_char_traits.cpp
+ case_insensitive_string.cpp
+)
+
+PEERDIR(
+ contrib/libs/libc_compat
+ library/cpp/digest/murmur
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/cgiparam/fuzz/ya.make b/library/cpp/cgiparam/fuzz/ya.make
new file mode 100644
index 0000000000..dd4cda38f5
--- /dev/null
+++ b/library/cpp/cgiparam/fuzz/ya.make
@@ -0,0 +1,11 @@
+FUZZ()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/cgiparam
+)
+
+END()
diff --git a/library/cpp/cgiparam/ut/ya.make b/library/cpp/cgiparam/ut/ya.make
new file mode 100644
index 0000000000..0edb867245
--- /dev/null
+++ b/library/cpp/cgiparam/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/cgiparam)
+
+SRCS(
+ cgiparam_ut.cpp
+)
+
+END()
diff --git a/library/cpp/cgiparam/ya.make b/library/cpp/cgiparam/ya.make
new file mode 100644
index 0000000000..3db2e22adc
--- /dev/null
+++ b/library/cpp/cgiparam/ya.make
@@ -0,0 +1,19 @@
+LIBRARY()
+
+SRCS(
+ cgiparam.cpp
+ cgiparam.h
+)
+
+PEERDIR(
+ library/cpp/iterator
+ library/cpp/string_utils/quote
+ library/cpp/string_utils/scan
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ fuzz
+ ut
+)
diff --git a/library/cpp/charset/ut/ya.make b/library/cpp/charset/ut/ya.make
new file mode 100644
index 0000000000..42f7ca54e2
--- /dev/null
+++ b/library/cpp/charset/ut/ya.make
@@ -0,0 +1,10 @@
+UNITTEST_FOR(library/cpp/charset)
+
+SRCS(
+ ci_string_ut.cpp
+ codepage_ut.cpp
+ iconv_ut.cpp
+ wide_ut.cpp
+)
+
+END()
diff --git a/library/cpp/charset/ya.make b/library/cpp/charset/ya.make
new file mode 100644
index 0000000000..7809294b79
--- /dev/null
+++ b/library/cpp/charset/ya.make
@@ -0,0 +1,24 @@
+LIBRARY()
+
+SRCS(
+ generated/cp_data.cpp
+ generated/encrec_data.cpp
+ codepage.cpp
+ cp_encrec.cpp
+ doccodes.cpp
+ iconv.cpp
+ recyr.hh
+ recyr_int.hh
+ ci_string.cpp
+ wide.cpp
+)
+
+PEERDIR(
+ contrib/libs/libiconv
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/codecs/float_huffman_bench/ya.make b/library/cpp/codecs/float_huffman_bench/ya.make
new file mode 100644
index 0000000000..cc1bf1c779
--- /dev/null
+++ b/library/cpp/codecs/float_huffman_bench/ya.make
@@ -0,0 +1,11 @@
+G_BENCHMARK()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/codecs
+)
+
+END()
diff --git a/library/cpp/codecs/greedy_dict/ut/ya.make b/library/cpp/codecs/greedy_dict/ut/ya.make
new file mode 100644
index 0000000000..acb110d061
--- /dev/null
+++ b/library/cpp/codecs/greedy_dict/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/codecs/greedy_dict)
+
+SRCS(
+ greedy_dict_ut.cpp
+)
+
+END()
diff --git a/library/cpp/codecs/greedy_dict/ya.make b/library/cpp/codecs/greedy_dict/ya.make
new file mode 100644
index 0000000000..f4b2714f41
--- /dev/null
+++ b/library/cpp/codecs/greedy_dict/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+ gd_builder.cpp
+ gd_entry.cpp
+)
+
+PEERDIR(
+ library/cpp/containers/comptrie
+ library/cpp/string_utils/relaxed_escaper
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/codecs/ut/ya.make b/library/cpp/codecs/ut/ya.make
new file mode 100644
index 0000000000..b519769283
--- /dev/null
+++ b/library/cpp/codecs/ut/ya.make
@@ -0,0 +1,15 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/string_utils/base64
+ library/cpp/codecs
+ library/cpp/string_utils/relaxed_escaper
+)
+
+SRCS(
+ tls_cache_ut.cpp
+ codecs_ut.cpp
+ float_huffman_ut.cpp
+)
+
+END()
diff --git a/library/cpp/codecs/ya.make b/library/cpp/codecs/ya.make
new file mode 100644
index 0000000000..f3a39c1e51
--- /dev/null
+++ b/library/cpp/codecs/ya.make
@@ -0,0 +1,34 @@
+LIBRARY()
+
+SRCS(
+ tls_cache.cpp
+ codecs.cpp
+ codecs_registry.cpp
+ comptable_codec.cpp
+ delta_codec.cpp
+ float_huffman.cpp
+ huffman_codec.cpp
+ pfor_codec.cpp
+ solar_codec.cpp
+ zstd_dict_codec.cpp
+)
+
+PEERDIR(
+ contrib/libs/zstd
+ library/cpp/bit_io
+ library/cpp/blockcodecs
+ library/cpp/codecs/greedy_dict
+ library/cpp/comptable
+ library/cpp/containers/comptrie
+ library/cpp/deprecated/accessors
+ library/cpp/packers
+ library/cpp/string_utils/relaxed_escaper
+)
+
+END()
+
+RECURSE(
+ greedy_dict
+ float_huffman_bench
+ ut
+)
diff --git a/library/cpp/colorizer/ut/ya.make b/library/cpp/colorizer/ut/ya.make
new file mode 100644
index 0000000000..493514e176
--- /dev/null
+++ b/library/cpp/colorizer/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/colorizer)
+
+SRCS(
+ colorizer_ut.cpp
+)
+
+END()
diff --git a/library/cpp/colorizer/ya.make b/library/cpp/colorizer/ya.make
new file mode 100644
index 0000000000..eb1c01850b
--- /dev/null
+++ b/library/cpp/colorizer/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ colors.cpp
+ output.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/compproto/ut/ya.make b/library/cpp/compproto/ut/ya.make
new file mode 100644
index 0000000000..2686f5b480
--- /dev/null
+++ b/library/cpp/compproto/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+PEERDIR(
+ ADDINCL library/cpp/compproto
+)
+
+SRCDIR(library/cpp/compproto)
+
+SRCS(
+ compproto_ut.cpp
+)
+
+END()
diff --git a/library/cpp/compproto/ya.make b/library/cpp/compproto/ya.make
new file mode 100644
index 0000000000..dc9ad86f03
--- /dev/null
+++ b/library/cpp/compproto/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ bit.h
+ compressor.h
+ huff.h
+ metainfo.h
+ lib.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/comptable/usage/ya.make b/library/cpp/comptable/usage/ya.make
new file mode 100644
index 0000000000..e622cc106e
--- /dev/null
+++ b/library/cpp/comptable/usage/ya.make
@@ -0,0 +1,11 @@
+PROGRAM()
+
+SRCS(
+ usage.cpp
+)
+
+PEERDIR(
+ library/cpp/comptable
+)
+
+END()
diff --git a/library/cpp/comptable/ut/ya.make b/library/cpp/comptable/ut/ya.make
new file mode 100644
index 0000000000..d98ecad7b6
--- /dev/null
+++ b/library/cpp/comptable/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/comptable)
+
+SRCS(
+ comptable_ut.cpp
+)
+
+END()
diff --git a/library/cpp/comptable/ya.make b/library/cpp/comptable/ya.make
new file mode 100644
index 0000000000..a4e6e286d2
--- /dev/null
+++ b/library/cpp/comptable/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+ comptable.cpp
+)
+
+PEERDIR(
+ library/cpp/compproto
+)
+
+END()
+
+RECURSE(
+ usage
+ ut
+)
diff --git a/library/cpp/config/ya.make b/library/cpp/config/ya.make
new file mode 100644
index 0000000000..14646644ad
--- /dev/null
+++ b/library/cpp/config/ya.make
@@ -0,0 +1,25 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/archive
+ library/cpp/json
+ library/cpp/lua
+ library/cpp/string_utils/relaxed_escaper
+)
+
+ARCHIVE(
+ NAME code.inc
+ support/pp.lua
+)
+
+SRCS(
+ config.cpp
+ sax.cpp
+ value.cpp
+ markup.cpp
+ markupfsm.h.rl6
+ ini.cpp
+ domscheme.cpp
+)
+
+END()
diff --git a/library/cpp/containers/2d_array/ya.make b/library/cpp/containers/2d_array/ya.make
new file mode 100644
index 0000000000..50aa2a5f8b
--- /dev/null
+++ b/library/cpp/containers/2d_array/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ 2d_array.cpp
+)
+
+END()
diff --git a/library/cpp/containers/absl_flat_hash/ya.make b/library/cpp/containers/absl_flat_hash/ya.make
new file mode 100644
index 0000000000..8a7731d804
--- /dev/null
+++ b/library/cpp/containers/absl_flat_hash/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/restricted/abseil-cpp/absl/container
+)
+
+# WARN thegeorg@: removing this ADDINCL will break svn selective checkout. Just don't.
+ADDINCL(
+ contrib/restricted/abseil-cpp
+)
+
+SRCS(
+ flat_hash_map.cpp
+ flat_hash_set.cpp
+)
+
+END()
diff --git a/library/cpp/containers/atomizer/ya.make b/library/cpp/containers/atomizer/ya.make
new file mode 100644
index 0000000000..ee755e4186
--- /dev/null
+++ b/library/cpp/containers/atomizer/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/containers/str_map
+)
+
+SRCS(
+ atomizer.cpp
+)
+
+END()
diff --git a/library/cpp/containers/bitseq/ut/ya.make b/library/cpp/containers/bitseq/ut/ya.make
new file mode 100644
index 0000000000..1b835458c9
--- /dev/null
+++ b/library/cpp/containers/bitseq/ut/ya.make
@@ -0,0 +1,8 @@
+UNITTEST_FOR(library/cpp/containers/bitseq)
+
+SRCS(
+ bititerator_ut.cpp
+ bitvector_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/bitseq/ya.make b/library/cpp/containers/bitseq/ya.make
new file mode 100644
index 0000000000..a59c3e765e
--- /dev/null
+++ b/library/cpp/containers/bitseq/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+PEERDIR(
+ util/draft
+ library/cpp/pop_count
+)
+
+SRCS(
+ bitvector.cpp
+ readonly_bitvector.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/containers/compact_vector/ut/ya.make b/library/cpp/containers/compact_vector/ut/ya.make
new file mode 100644
index 0000000000..1a84894570
--- /dev/null
+++ b/library/cpp/containers/compact_vector/ut/ya.make
@@ -0,0 +1,9 @@
+UNITTEST()
+
+SRCDIR(library/cpp/containers/compact_vector)
+
+SRCS(
+ compact_vector_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/compact_vector/ya.make b/library/cpp/containers/compact_vector/ya.make
new file mode 100644
index 0000000000..b7d97b1353
--- /dev/null
+++ b/library/cpp/containers/compact_vector/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ compact_vector.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/containers/comptrie/benchmark/ya.make b/library/cpp/containers/comptrie/benchmark/ya.make
new file mode 100644
index 0000000000..d0d42fb7d7
--- /dev/null
+++ b/library/cpp/containers/comptrie/benchmark/ya.make
@@ -0,0 +1,12 @@
+Y_BENCHMARK()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/containers/comptrie
+ util
+)
+
+END()
diff --git a/library/cpp/containers/comptrie/ut/ya.make b/library/cpp/containers/comptrie/ut/ya.make
new file mode 100644
index 0000000000..3a9bdefcbd
--- /dev/null
+++ b/library/cpp/containers/comptrie/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/containers/comptrie)
+
+SRCS(
+ comptrie_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/comptrie/ya.make b/library/cpp/containers/comptrie/ya.make
new file mode 100644
index 0000000000..8931bfb383
--- /dev/null
+++ b/library/cpp/containers/comptrie/ya.make
@@ -0,0 +1,38 @@
+LIBRARY()
+
+SRCS(
+ array_with_size.h
+ chunked_helpers_trie.h
+ comptrie.h
+ comptrie_packer.h
+ comptrie_trie.h
+ first_symbol_iterator.h
+ key_selector.h
+ leaf_skipper.h
+ set.h
+ comptrie.cpp
+ comptrie_builder.cpp
+ comptrie_impl.cpp
+ make_fast_layout.cpp
+ minimize.cpp
+ node.cpp
+ opaque_trie_iterator.cpp
+ prefix_iterator.cpp
+ search_iterator.cpp
+ write_trie_backwards.cpp
+ writeable_node.cpp
+)
+
+PEERDIR(
+ library/cpp/packers
+ library/cpp/containers/compact_vector
+ library/cpp/on_disk/chunks
+ util/draft
+)
+
+END()
+
+RECURSE(
+ benchmark
+ ut
+)
diff --git a/library/cpp/containers/disjoint_interval_tree/ut/ya.make b/library/cpp/containers/disjoint_interval_tree/ut/ya.make
new file mode 100644
index 0000000000..b4ccc41917
--- /dev/null
+++ b/library/cpp/containers/disjoint_interval_tree/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/containers/disjoint_interval_tree)
+
+SRCS(
+ disjoint_interval_tree_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/disjoint_interval_tree/ya.make b/library/cpp/containers/disjoint_interval_tree/ya.make
new file mode 100644
index 0000000000..688a415c0f
--- /dev/null
+++ b/library/cpp/containers/disjoint_interval_tree/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+SRCS(disjoint_interval_tree.cpp)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/containers/flat_hash/benchmark/ya.make b/library/cpp/containers/flat_hash/benchmark/ya.make
new file mode 100644
index 0000000000..6b202846a6
--- /dev/null
+++ b/library/cpp/containers/flat_hash/benchmark/ya.make
@@ -0,0 +1,11 @@
+Y_BENCHMARK()
+
+SRCS(
+ flat_hash_benchmark.cpp
+)
+
+PEERDIR(
+ library/cpp/containers/flat_hash
+)
+
+END()
diff --git a/library/cpp/containers/flat_hash/fuzz/dense_map_fuzz/ya.make b/library/cpp/containers/flat_hash/fuzz/dense_map_fuzz/ya.make
new file mode 100644
index 0000000000..0e9c28ed85
--- /dev/null
+++ b/library/cpp/containers/flat_hash/fuzz/dense_map_fuzz/ya.make
@@ -0,0 +1,15 @@
+FUZZ()
+
+SRCS(
+ fuzz.cpp
+)
+
+PEERDIR(
+ library/cpp/containers/flat_hash/fuzz/fuzz_common
+)
+
+SIZE(LARGE)
+
+TAG(ya:fat)
+
+END()
diff --git a/library/cpp/containers/flat_hash/fuzz/flat_map_fuzz/ya.make b/library/cpp/containers/flat_hash/fuzz/flat_map_fuzz/ya.make
new file mode 100644
index 0000000000..0e9c28ed85
--- /dev/null
+++ b/library/cpp/containers/flat_hash/fuzz/flat_map_fuzz/ya.make
@@ -0,0 +1,15 @@
+FUZZ()
+
+SRCS(
+ fuzz.cpp
+)
+
+PEERDIR(
+ library/cpp/containers/flat_hash/fuzz/fuzz_common
+)
+
+SIZE(LARGE)
+
+TAG(ya:fat)
+
+END()
diff --git a/library/cpp/containers/flat_hash/fuzz/fuzz_common/ya.make b/library/cpp/containers/flat_hash/fuzz/fuzz_common/ya.make
new file mode 100644
index 0000000000..d0a6c63883
--- /dev/null
+++ b/library/cpp/containers/flat_hash/fuzz/fuzz_common/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+SRCS(fuzz_common.cpp)
+
+PEERDIR(
+ library/cpp/containers/flat_hash
+)
+
+END()
diff --git a/library/cpp/containers/flat_hash/fuzz/ya.make b/library/cpp/containers/flat_hash/fuzz/ya.make
new file mode 100644
index 0000000000..9cb68d9e92
--- /dev/null
+++ b/library/cpp/containers/flat_hash/fuzz/ya.make
@@ -0,0 +1,5 @@
+RECURSE(
+ flat_map_fuzz
+ dense_map_fuzz
+ fuzz_common
+)
diff --git a/library/cpp/containers/flat_hash/ut/ya.make b/library/cpp/containers/flat_hash/ut/ya.make
new file mode 100644
index 0000000000..a4a5d22154
--- /dev/null
+++ b/library/cpp/containers/flat_hash/ut/ya.make
@@ -0,0 +1,16 @@
+UNITTEST()
+
+SRCS(
+ containers_ut.cpp
+ flat_hash_ut.cpp
+ iterator_ut.cpp
+ probings_ut.cpp
+ size_fitters_ut.cpp
+ table_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/containers/flat_hash
+)
+
+END()
diff --git a/library/cpp/containers/flat_hash/ya.make b/library/cpp/containers/flat_hash/ya.make
new file mode 100644
index 0000000000..0f7daea2d8
--- /dev/null
+++ b/library/cpp/containers/flat_hash/ya.make
@@ -0,0 +1,26 @@
+LIBRARY()
+
+SRCS(
+ flat_hash.cpp
+ lib/concepts/container.cpp
+ lib/concepts/iterator.cpp
+ lib/concepts/size_fitter.cpp
+ lib/concepts/value_marker.cpp
+ lib/containers.cpp
+ lib/expanders.cpp
+ lib/iterator.cpp
+ lib/map.cpp
+ lib/probings.cpp
+ lib/set.cpp
+ lib/size_fitters.cpp
+ lib/table.cpp
+ lib/value_markers.cpp
+)
+
+END()
+
+RECURSE(
+ benchmark
+ fuzz
+ ut
+)
diff --git a/library/cpp/containers/intrusive_avl_tree/ut/ya.make b/library/cpp/containers/intrusive_avl_tree/ut/ya.make
new file mode 100644
index 0000000000..f17a1aee31
--- /dev/null
+++ b/library/cpp/containers/intrusive_avl_tree/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/containers/intrusive_avl_tree)
+
+SRCS(
+ avltree_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/intrusive_avl_tree/ya.make b/library/cpp/containers/intrusive_avl_tree/ya.make
new file mode 100644
index 0000000000..ef546dcd58
--- /dev/null
+++ b/library/cpp/containers/intrusive_avl_tree/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ avltree.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/containers/intrusive_rb_tree/fuzz/ya.make b/library/cpp/containers/intrusive_rb_tree/fuzz/ya.make
new file mode 100644
index 0000000000..9043c78472
--- /dev/null
+++ b/library/cpp/containers/intrusive_rb_tree/fuzz/ya.make
@@ -0,0 +1,15 @@
+FUZZ()
+
+SIZE(LARGE)
+
+TAG(ya:fat)
+
+PEERDIR(
+ library/cpp/containers/intrusive_rb_tree
+)
+
+SRCS(
+ rb_tree_fuzzing.cpp
+)
+
+END()
diff --git a/library/cpp/containers/intrusive_rb_tree/ut/ya.make b/library/cpp/containers/intrusive_rb_tree/ut/ya.make
new file mode 100644
index 0000000000..db8d6f0a72
--- /dev/null
+++ b/library/cpp/containers/intrusive_rb_tree/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/containers/intrusive_rb_tree)
+
+SRCS(
+ rb_tree_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/intrusive_rb_tree/ya.make b/library/cpp/containers/intrusive_rb_tree/ya.make
new file mode 100644
index 0000000000..492f83e670
--- /dev/null
+++ b/library/cpp/containers/intrusive_rb_tree/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ rb_tree.cpp
+)
+
+END()
+
+RECURSE(
+ fuzz
+ ut
+)
diff --git a/library/cpp/containers/paged_vector/ut/ya.make b/library/cpp/containers/paged_vector/ut/ya.make
new file mode 100644
index 0000000000..d0ffac4d79
--- /dev/null
+++ b/library/cpp/containers/paged_vector/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/containers/paged_vector
+)
+
+SRCS(
+ paged_vector_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/paged_vector/ya.make b/library/cpp/containers/paged_vector/ya.make
new file mode 100644
index 0000000000..b03a0a2ded
--- /dev/null
+++ b/library/cpp/containers/paged_vector/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ paged_vector.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/containers/ring_buffer/ya.make b/library/cpp/containers/ring_buffer/ya.make
new file mode 100644
index 0000000000..c9220b578a
--- /dev/null
+++ b/library/cpp/containers/ring_buffer/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ ring_buffer.cpp
+)
+
+END()
diff --git a/library/cpp/containers/sorted_vector/ut/ya.make b/library/cpp/containers/sorted_vector/ut/ya.make
new file mode 100644
index 0000000000..3c67b30c19
--- /dev/null
+++ b/library/cpp/containers/sorted_vector/ut/ya.make
@@ -0,0 +1,8 @@
+UNITTEST_FOR(library/cpp/containers/sorted_vector)
+
+
+SRCS(
+ sorted_vector_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/sorted_vector/ya.make b/library/cpp/containers/sorted_vector/ya.make
new file mode 100644
index 0000000000..9f32d97359
--- /dev/null
+++ b/library/cpp/containers/sorted_vector/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+SRCS(
+ sorted_vector.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/containers/stack_array/ut/ya.make b/library/cpp/containers/stack_array/ut/ya.make
new file mode 100644
index 0000000000..fdd5b8cdba
--- /dev/null
+++ b/library/cpp/containers/stack_array/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/containers/stack_array)
+
+SRCS(
+ tests_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/stack_array/ya.make b/library/cpp/containers/stack_array/ya.make
new file mode 100644
index 0000000000..8bce0023e3
--- /dev/null
+++ b/library/cpp/containers/stack_array/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ range_ops.cpp
+ stack_array.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/containers/stack_vector/ut/ya.make b/library/cpp/containers/stack_vector/ut/ya.make
new file mode 100644
index 0000000000..1c07585ff7
--- /dev/null
+++ b/library/cpp/containers/stack_vector/ut/ya.make
@@ -0,0 +1,9 @@
+UNITTEST()
+
+SRCDIR(library/cpp/containers/stack_vector)
+
+SRCS(
+ stack_vec_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/stack_vector/ya.make b/library/cpp/containers/stack_vector/ya.make
new file mode 100644
index 0000000000..c36f19d82d
--- /dev/null
+++ b/library/cpp/containers/stack_vector/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+SRCS(
+ stack_vec.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/containers/str_map/ya.make b/library/cpp/containers/str_map/ya.make
new file mode 100644
index 0000000000..893e6beedd
--- /dev/null
+++ b/library/cpp/containers/str_map/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ str_map.cpp
+)
+
+END()
diff --git a/library/cpp/containers/top_keeper/ut/ya.make b/library/cpp/containers/top_keeper/ut/ya.make
new file mode 100644
index 0000000000..b15057918b
--- /dev/null
+++ b/library/cpp/containers/top_keeper/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/containers/top_keeper)
+
+SRCS(
+ top_keeper_ut.cpp
+)
+
+END()
diff --git a/library/cpp/containers/top_keeper/ya.make b/library/cpp/containers/top_keeper/ya.make
new file mode 100644
index 0000000000..e90d7b7e94
--- /dev/null
+++ b/library/cpp/containers/top_keeper/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ top_keeper.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
+
+
diff --git a/library/cpp/coroutine/engine/stack/benchmark/ya.make b/library/cpp/coroutine/engine/stack/benchmark/ya.make
new file mode 100644
index 0000000000..f2fca4aeb5
--- /dev/null
+++ b/library/cpp/coroutine/engine/stack/benchmark/ya.make
@@ -0,0 +1,11 @@
+G_BENCHMARK()
+
+SRCS(
+ alloc_bm.cpp
+)
+
+PEERDIR(
+ library/cpp/coroutine/engine
+)
+
+END() \ No newline at end of file
diff --git a/library/cpp/coroutine/engine/stack/ut/ya.make b/library/cpp/coroutine/engine/stack/ut/ya.make
new file mode 100644
index 0000000000..e3f33ecf6c
--- /dev/null
+++ b/library/cpp/coroutine/engine/stack/ut/ya.make
@@ -0,0 +1,15 @@
+GTEST()
+
+SRCS(
+ stack_allocator_ut.cpp
+ stack_guards_ut.cpp
+ stack_pool_ut.cpp
+ stack_ut.cpp
+ stack_utils_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/coroutine/engine
+)
+
+END() \ No newline at end of file
diff --git a/library/cpp/coroutine/engine/ut/ya.make b/library/cpp/coroutine/engine/ut/ya.make
new file mode 100644
index 0000000000..450c3bdd7c
--- /dev/null
+++ b/library/cpp/coroutine/engine/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/coroutine/engine)
+
+SRCS(
+ coroutine_ut.cpp
+)
+
+END()
diff --git a/library/cpp/coroutine/engine/ya.make b/library/cpp/coroutine/engine/ya.make
new file mode 100644
index 0000000000..fcd9b87741
--- /dev/null
+++ b/library/cpp/coroutine/engine/ya.make
@@ -0,0 +1,35 @@
+LIBRARY()
+
+GENERATE_ENUM_SERIALIZATION(poller.h)
+
+GENERATE_ENUM_SERIALIZATION(stack/stack_common.h)
+
+PEERDIR(
+ contrib/libs/libc_compat
+ library/cpp/containers/intrusive_rb_tree
+ library/cpp/deprecated/atomic
+)
+
+SRCS(
+ cont_poller.cpp
+ helper.cpp
+ impl.cpp
+ iostatus.cpp
+ network.cpp
+ poller.cpp
+ sockpool.cpp
+ stack/stack.cpp
+ stack/stack_allocator.cpp
+ stack/stack_guards.cpp
+ stack/stack_storage.cpp
+ stack/stack_utils.cpp
+ trampoline.cpp
+)
+
+END()
+
+RECURSE(
+ stack/benchmark
+ stack/ut
+ ut
+)
diff --git a/library/cpp/coroutine/listener/ya.make b/library/cpp/coroutine/listener/ya.make
new file mode 100644
index 0000000000..a99e3ebef5
--- /dev/null
+++ b/library/cpp/coroutine/listener/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/coroutine/engine
+)
+
+SRCS(
+ listen.cpp
+)
+
+END()
diff --git a/library/cpp/cppparser/ya.make b/library/cpp/cppparser/ya.make
new file mode 100644
index 0000000000..8e999a1ae0
--- /dev/null
+++ b/library/cpp/cppparser/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ parser.cpp
+)
+
+END()
diff --git a/library/cpp/cpuid_check/ya.make b/library/cpp/cpuid_check/ya.make
new file mode 100644
index 0000000000..3fb1e157e5
--- /dev/null
+++ b/library/cpp/cpuid_check/ya.make
@@ -0,0 +1,5 @@
+LIBRARY()
+
+SRCS(GLOBAL cpu_id_check.cpp)
+
+END()
diff --git a/library/cpp/dbg_output/ut/ya.make b/library/cpp/dbg_output/ut/ya.make
new file mode 100644
index 0000000000..2a1e2fb45c
--- /dev/null
+++ b/library/cpp/dbg_output/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/dbg_output)
+
+SRCS(
+ dbg_output_ut.cpp
+)
+
+END()
diff --git a/library/cpp/dbg_output/ya.make b/library/cpp/dbg_output/ya.make
new file mode 100644
index 0000000000..ad4dba231c
--- /dev/null
+++ b/library/cpp/dbg_output/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/colorizer
+)
+
+SRCS(
+ dump.cpp
+ dumpers.cpp
+ engine.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/deprecated/accessors/ut/ya.make b/library/cpp/deprecated/accessors/ut/ya.make
new file mode 100644
index 0000000000..5e79af5efd
--- /dev/null
+++ b/library/cpp/deprecated/accessors/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/deprecated/accessors)
+
+SRCS(
+ accessors_ut.cpp
+)
+
+END()
diff --git a/library/cpp/deprecated/accessors/ya.make b/library/cpp/deprecated/accessors/ya.make
new file mode 100644
index 0000000000..0aa8fcfa9b
--- /dev/null
+++ b/library/cpp/deprecated/accessors/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+ accessors.cpp
+ accessors_impl.cpp
+ memory_traits.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/deprecated/atomic/ut/ya.make b/library/cpp/deprecated/atomic/ut/ya.make
new file mode 100644
index 0000000000..e21fd08990
--- /dev/null
+++ b/library/cpp/deprecated/atomic/ut/ya.make
@@ -0,0 +1,5 @@
+UNITTEST_FOR(library/cpp/deprecated/atomic)
+
+SRCS(atomic_ut.cpp)
+
+END()
diff --git a/library/cpp/deprecated/atomic/ya.make b/library/cpp/deprecated/atomic/ya.make
new file mode 100644
index 0000000000..af1c3c5ac0
--- /dev/null
+++ b/library/cpp/deprecated/atomic/ya.make
@@ -0,0 +1,5 @@
+LIBRARY()
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/deprecated/enum_codegen/ut/ya.make b/library/cpp/deprecated/enum_codegen/ut/ya.make
new file mode 100644
index 0000000000..2cdca47ad0
--- /dev/null
+++ b/library/cpp/deprecated/enum_codegen/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+SRCDIR(library/cpp/deprecated/enum_codegen)
+
+PEERDIR(
+ library/cpp/deprecated/enum_codegen
+)
+
+SRCS(
+ enum_codegen_ut.cpp
+)
+
+END()
diff --git a/library/cpp/deprecated/enum_codegen/ya.make b/library/cpp/deprecated/enum_codegen/ya.make
new file mode 100644
index 0000000000..9ff9997c84
--- /dev/null
+++ b/library/cpp/deprecated/enum_codegen/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ enum_codegen.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/deprecated/kmp/ut/ya.make b/library/cpp/deprecated/kmp/ut/ya.make
new file mode 100644
index 0000000000..bb240b042e
--- /dev/null
+++ b/library/cpp/deprecated/kmp/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/deprecated/kmp)
+
+SRCS(
+ kmp_ut.cpp
+)
+
+END()
diff --git a/library/cpp/deprecated/kmp/ya.make b/library/cpp/deprecated/kmp/ya.make
new file mode 100644
index 0000000000..9814333db0
--- /dev/null
+++ b/library/cpp/deprecated/kmp/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ kmp.cpp
+ kmp.h
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/deprecated/split/ut/ya.make b/library/cpp/deprecated/split/ut/ya.make
new file mode 100644
index 0000000000..8b3da078c2
--- /dev/null
+++ b/library/cpp/deprecated/split/ut/ya.make
@@ -0,0 +1,8 @@
+UNITTEST_FOR(library/cpp/deprecated/split)
+
+SRCS(
+ delim_string_iter_ut.cpp
+ split_iterator_ut.cpp
+)
+
+END()
diff --git a/library/cpp/deprecated/split/ya.make b/library/cpp/deprecated/split/ya.make
new file mode 100644
index 0000000000..8b6897fa28
--- /dev/null
+++ b/library/cpp/deprecated/split/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+ delim_string_iter.cpp
+ split_iterator.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/kmp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/deprecated/threadable/ya.make b/library/cpp/deprecated/threadable/ya.make
new file mode 100644
index 0000000000..58ffc0046f
--- /dev/null
+++ b/library/cpp/deprecated/threadable/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ threadable.cpp
+)
+
+END()
diff --git a/library/cpp/diff/ut/ya.make b/library/cpp/diff/ut/ya.make
new file mode 100644
index 0000000000..c0a091aa86
--- /dev/null
+++ b/library/cpp/diff/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+SRCDIR(library/cpp/diff)
+
+PEERDIR(
+ library/cpp/diff
+)
+
+SRCS(
+ diff_ut.cpp
+)
+
+END()
diff --git a/library/cpp/diff/ya.make b/library/cpp/diff/ya.make
new file mode 100644
index 0000000000..c975ced7aa
--- /dev/null
+++ b/library/cpp/diff/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/lcs
+ library/cpp/containers/stack_array
+)
+
+SRCS(
+ diff.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/digest/argonish/benchmark/ya.make b/library/cpp/digest/argonish/benchmark/ya.make
new file mode 100644
index 0000000000..8d7d2a51fd
--- /dev/null
+++ b/library/cpp/digest/argonish/benchmark/ya.make
@@ -0,0 +1,11 @@
+Y_BENCHMARK()
+
+PEERDIR(
+ library/cpp/digest/argonish
+)
+
+SRCS(
+ mbench.cpp
+)
+
+END()
diff --git a/library/cpp/digest/argonish/internal/argon2/ya.make b/library/cpp/digest/argonish/internal/argon2/ya.make
new file mode 100644
index 0000000000..f5220c3f61
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/argon2/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/digest/argonish/internal/blamka
+ library/cpp/digest/argonish/internal/blake2b
+ library/cpp/threading/poor_man_openmp
+)
+
+END()
diff --git a/library/cpp/digest/argonish/internal/blake2b/ya.make b/library/cpp/digest/argonish/internal/blake2b/ya.make
new file mode 100644
index 0000000000..a0b99aa4b2
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/blake2b/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/digest/argonish/internal/rotations
+)
+
+END()
diff --git a/library/cpp/digest/argonish/internal/blamka/ya.make b/library/cpp/digest/argonish/internal/blamka/ya.make
new file mode 100644
index 0000000000..a0b99aa4b2
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/blamka/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/digest/argonish/internal/rotations
+)
+
+END()
diff --git a/library/cpp/digest/argonish/internal/proxies/avx2/ya.make b/library/cpp/digest/argonish/internal/proxies/avx2/ya.make
new file mode 100644
index 0000000000..efeed5ad4d
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/proxies/avx2/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+NO_UTIL()
+
+IF (ARCH_X86_64 OR ARCH_I386)
+ PEERDIR(
+ library/cpp/digest/argonish/internal/proxies/macro
+ library/cpp/digest/argonish/internal/argon2
+ library/cpp/digest/argonish/internal/blake2b
+ )
+ SRC_C_AVX2(
+ proxy_avx2.cpp
+ )
+ENDIF()
+
+END()
diff --git a/library/cpp/digest/argonish/internal/proxies/macro/ya.make b/library/cpp/digest/argonish/internal/proxies/macro/ya.make
new file mode 100644
index 0000000000..9865d255c8
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/proxies/macro/ya.make
@@ -0,0 +1,3 @@
+LIBRARY()
+
+END()
diff --git a/library/cpp/digest/argonish/internal/proxies/ref/ya.make b/library/cpp/digest/argonish/internal/proxies/ref/ya.make
new file mode 100644
index 0000000000..e48de6d9eb
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/proxies/ref/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+NO_UTIL()
+
+PEERDIR(
+ library/cpp/digest/argonish/internal/proxies/macro
+ library/cpp/digest/argonish/internal/argon2
+ library/cpp/digest/argonish/internal/blake2b
+)
+
+SRCS(
+ proxy_ref.cpp
+)
+
+END()
diff --git a/library/cpp/digest/argonish/internal/proxies/sse2/ya.make b/library/cpp/digest/argonish/internal/proxies/sse2/ya.make
new file mode 100644
index 0000000000..0598fb9c9a
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/proxies/sse2/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+NO_UTIL()
+
+IF (ARCH_X86_64 OR ARCH_I386)
+ PEERDIR(
+ library/cpp/digest/argonish/internal/proxies/macro
+ library/cpp/digest/argonish/internal/argon2
+ library/cpp/digest/argonish/internal/blake2b
+ )
+ SRC_C_SSE2(
+ proxy_sse2.cpp
+ )
+ENDIF()
+
+END()
diff --git a/library/cpp/digest/argonish/internal/proxies/sse41/ya.make b/library/cpp/digest/argonish/internal/proxies/sse41/ya.make
new file mode 100644
index 0000000000..f0839adcb0
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/proxies/sse41/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+NO_UTIL()
+
+IF (ARCH_X86_64 OR ARCH_I386)
+ PEERDIR(
+ library/cpp/digest/argonish/internal/proxies/macro
+ library/cpp/digest/argonish/internal/argon2
+ library/cpp/digest/argonish/internal/blake2b
+ )
+ SRC_C_SSE41(
+ proxy_sse41.cpp
+ )
+ENDIF()
+
+END()
diff --git a/library/cpp/digest/argonish/internal/proxies/ssse3/ya.make b/library/cpp/digest/argonish/internal/proxies/ssse3/ya.make
new file mode 100644
index 0000000000..95e32e5ee0
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/proxies/ssse3/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+NO_UTIL()
+
+IF (ARCH_X86_64 OR ARCH_I386)
+ PEERDIR(
+ library/cpp/digest/argonish/internal/proxies/macro
+ library/cpp/digest/argonish/internal/argon2
+ library/cpp/digest/argonish/internal/blake2b
+ )
+
+ SRC_C_SSSE3(
+ proxy_ssse3.cpp
+ )
+ENDIF()
+
+END()
diff --git a/library/cpp/digest/argonish/internal/rotations/ya.make b/library/cpp/digest/argonish/internal/rotations/ya.make
new file mode 100644
index 0000000000..9865d255c8
--- /dev/null
+++ b/library/cpp/digest/argonish/internal/rotations/ya.make
@@ -0,0 +1,3 @@
+LIBRARY()
+
+END()
diff --git a/library/cpp/digest/argonish/ut/ya.make b/library/cpp/digest/argonish/ut/ya.make
new file mode 100644
index 0000000000..38d41702d2
--- /dev/null
+++ b/library/cpp/digest/argonish/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST_FOR(library/cpp/digest/argonish)
+
+PEERDIR(
+ library/cpp/digest/argonish
+)
+
+SRCS(
+ ut.cpp
+)
+
+END()
diff --git a/library/cpp/digest/argonish/ut_fat/ya.make b/library/cpp/digest/argonish/ut_fat/ya.make
new file mode 100644
index 0000000000..6f0a77611d
--- /dev/null
+++ b/library/cpp/digest/argonish/ut_fat/ya.make
@@ -0,0 +1,19 @@
+UNITTEST_FOR(library/cpp/digest/argonish)
+
+PEERDIR(
+ library/cpp/digest/argonish
+)
+
+SRCS(
+ ut.cpp
+)
+
+TAG(
+ sb:intel_e5_2660v4
+ ya:fat
+ ya:force_sandbox
+)
+
+SIZE(LARGE)
+
+END()
diff --git a/library/cpp/digest/argonish/ya.make b/library/cpp/digest/argonish/ya.make
new file mode 100644
index 0000000000..771307059e
--- /dev/null
+++ b/library/cpp/digest/argonish/ya.make
@@ -0,0 +1,29 @@
+LIBRARY()
+
+IF (ARCH_X86_64 OR ARCH_I386)
+ PEERDIR(
+ library/cpp/threading/poor_man_openmp
+ library/cpp/digest/argonish/internal/proxies/avx2
+ library/cpp/digest/argonish/internal/proxies/ref
+ library/cpp/digest/argonish/internal/proxies/sse2
+ library/cpp/digest/argonish/internal/proxies/sse41
+ library/cpp/digest/argonish/internal/proxies/ssse3
+ )
+ELSE()
+ PEERDIR(
+ library/cpp/threading/poor_man_openmp
+ library/cpp/digest/argonish/internal/proxies/ref
+ )
+ENDIF()
+
+SRCS(
+ factory/factory.cpp
+)
+
+END()
+
+RECURSE(
+ benchmark
+ ut
+ ut_fat
+)
diff --git a/library/cpp/digest/crc32c/ut/ya.make b/library/cpp/digest/crc32c/ut/ya.make
new file mode 100644
index 0000000000..8a4e5cb861
--- /dev/null
+++ b/library/cpp/digest/crc32c/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/digest/crc32c)
+
+SRCS(
+ crc32c_ut.cpp
+)
+
+END()
diff --git a/library/cpp/digest/crc32c/ya.make b/library/cpp/digest/crc32c/ya.make
new file mode 100644
index 0000000000..a2f8e87da1
--- /dev/null
+++ b/library/cpp/digest/crc32c/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+#!!!
+PEERDIR(
+ contrib/libs/crcutil
+)
+
+SRCS(
+ crc32c.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/digest/lower_case/ut/ya.make b/library/cpp/digest/lower_case/ut/ya.make
new file mode 100644
index 0000000000..159d49aa2a
--- /dev/null
+++ b/library/cpp/digest/lower_case/ut/ya.make
@@ -0,0 +1,8 @@
+UNITTEST_FOR(library/cpp/digest/lower_case)
+
+SRCS(
+ lchash_ut.cpp
+ hash_ops_ut.cpp
+)
+
+END()
diff --git a/library/cpp/digest/lower_case/ya.make b/library/cpp/digest/lower_case/ya.make
new file mode 100644
index 0000000000..6d6d804a5b
--- /dev/null
+++ b/library/cpp/digest/lower_case/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+ lciter.cpp
+ lchash.cpp
+ hash_ops.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/digest/md5/bench/ya.make b/library/cpp/digest/md5/bench/ya.make
new file mode 100644
index 0000000000..eb3c7ea5f6
--- /dev/null
+++ b/library/cpp/digest/md5/bench/ya.make
@@ -0,0 +1,11 @@
+G_BENCHMARK()
+
+PEERDIR(
+ library/cpp/digest/md5
+)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/digest/md5/medium_ut/ya.make b/library/cpp/digest/md5/medium_ut/ya.make
new file mode 100644
index 0000000000..5ccfc9a6ee
--- /dev/null
+++ b/library/cpp/digest/md5/medium_ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST_FOR(library/cpp/digest/md5)
+
+SIZE(MEDIUM)
+
+TIMEOUT(120)
+
+SRCS(
+ md5_medium_ut.cpp
+)
+
+REQUIREMENTS(ram:10)
+
+END()
diff --git a/library/cpp/digest/md5/ut/ya.make b/library/cpp/digest/md5/ut/ya.make
new file mode 100644
index 0000000000..76b61b4b19
--- /dev/null
+++ b/library/cpp/digest/md5/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/digest/md5)
+
+SRCS(
+ md5_ut.cpp
+)
+
+END()
diff --git a/library/cpp/digest/md5/ya.make b/library/cpp/digest/md5/ya.make
new file mode 100644
index 0000000000..1e6ffd9642
--- /dev/null
+++ b/library/cpp/digest/md5/ya.make
@@ -0,0 +1,18 @@
+LIBRARY()
+
+SRCS(
+ md5.cpp
+)
+
+PEERDIR(
+ contrib/libs/nayuki_md5
+ library/cpp/string_utils/base64
+)
+
+END()
+
+RECURSE(
+ bench
+ medium_ut
+ ut
+)
diff --git a/library/cpp/digest/murmur/ut/ya.make b/library/cpp/digest/murmur/ut/ya.make
new file mode 100644
index 0000000000..de14ca6fb6
--- /dev/null
+++ b/library/cpp/digest/murmur/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+PEERDIR(
+ ADDINCL library/cpp/digest/murmur
+)
+
+SRCDIR(library/cpp/digest/murmur)
+
+SRCS(
+ murmur_ut.cpp
+)
+
+END()
diff --git a/library/cpp/digest/murmur/ya.make b/library/cpp/digest/murmur/ya.make
new file mode 100644
index 0000000000..9c4bb887b7
--- /dev/null
+++ b/library/cpp/digest/murmur/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ murmur.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/digest/old_crc/gencrc/ya.make b/library/cpp/digest/old_crc/gencrc/ya.make
new file mode 100644
index 0000000000..4d89e96669
--- /dev/null
+++ b/library/cpp/digest/old_crc/gencrc/ya.make
@@ -0,0 +1,7 @@
+PROGRAM()
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/digest/old_crc/ut/ya.make b/library/cpp/digest/old_crc/ut/ya.make
new file mode 100644
index 0000000000..8b3f7b3fd3
--- /dev/null
+++ b/library/cpp/digest/old_crc/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/digest/old_crc)
+
+SRCS(
+ crc_ut.cpp
+)
+
+END()
diff --git a/library/cpp/digest/old_crc/ya.make b/library/cpp/digest/old_crc/ya.make
new file mode 100644
index 0000000000..6bd8b7a1f8
--- /dev/null
+++ b/library/cpp/digest/old_crc/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+ crc.cpp
+)
+
+RUN_PROGRAM(
+ library/cpp/digest/old_crc/gencrc
+ STDOUT crc.inc
+)
+
+END()
+
+RECURSE(
+ gencrc
+ ut
+)
diff --git a/library/cpp/digest/sfh/ut/ya.make b/library/cpp/digest/sfh/ut/ya.make
new file mode 100644
index 0000000000..4308c181e1
--- /dev/null
+++ b/library/cpp/digest/sfh/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/digest/sfh)
+
+SRCS(
+ sfh_ut.cpp
+)
+
+END()
diff --git a/library/cpp/digest/sfh/ya.make b/library/cpp/digest/sfh/ya.make
new file mode 100644
index 0000000000..630a2d16bc
--- /dev/null
+++ b/library/cpp/digest/sfh/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ sfh.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/dns/ut/ya.make b/library/cpp/dns/ut/ya.make
new file mode 100644
index 0000000000..1382bbe431
--- /dev/null
+++ b/library/cpp/dns/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/dns
+)
+
+SRCS(
+ dns_ut.cpp
+)
+
+END()
diff --git a/library/cpp/dns/ya.make b/library/cpp/dns/ya.make
new file mode 100644
index 0000000000..eea4122e5d
--- /dev/null
+++ b/library/cpp/dns/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+ cache.cpp
+ thread.cpp
+ magic.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/enumbitset/ut/ya.make b/library/cpp/enumbitset/ut/ya.make
new file mode 100644
index 0000000000..0cea204a39
--- /dev/null
+++ b/library/cpp/enumbitset/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/enumbitset)
+
+SRCS(
+ enumbitset_ut.cpp
+)
+
+END()
diff --git a/library/cpp/enumbitset/ya.make b/library/cpp/enumbitset/ya.make
new file mode 100644
index 0000000000..9f5ed3b435
--- /dev/null
+++ b/library/cpp/enumbitset/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ enumbitset.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/execprofile/ya.make b/library/cpp/execprofile/ya.make
new file mode 100644
index 0000000000..5d0b3c7eeb
--- /dev/null
+++ b/library/cpp/execprofile/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ profile.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
diff --git a/library/cpp/getopt/last_getopt_demo/ya.make b/library/cpp/getopt/last_getopt_demo/ya.make
new file mode 100644
index 0000000000..bbc01016d6
--- /dev/null
+++ b/library/cpp/getopt/last_getopt_demo/ya.make
@@ -0,0 +1,11 @@
+PROGRAM(last_getopt_demo)
+
+PEERDIR(
+ library/cpp/getopt
+)
+
+SRCS(
+ demo.cpp
+)
+
+END()
diff --git a/library/cpp/getopt/small/ya.make b/library/cpp/getopt/small/ya.make
new file mode 100644
index 0000000000..b4a8981bac
--- /dev/null
+++ b/library/cpp/getopt/small/ya.make
@@ -0,0 +1,26 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/colorizer
+)
+
+SRCS(
+ completer.cpp
+ completer_command.cpp
+ completion_generator.cpp
+ formatted_output.cpp
+ last_getopt.cpp
+ last_getopt_easy_setup.cpp
+ last_getopt_opt.cpp
+ last_getopt_opts.cpp
+ last_getopt_parser.cpp
+ last_getopt_parse_result.cpp
+ modchooser.cpp
+ opt.cpp
+ opt2.cpp
+ posix_getopt.cpp
+ wrap.cpp
+ ygetopt.cpp
+)
+
+END()
diff --git a/library/cpp/getopt/ut/ya.make b/library/cpp/getopt/ut/ya.make
new file mode 100644
index 0000000000..fde0eab8bc
--- /dev/null
+++ b/library/cpp/getopt/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST_FOR(library/cpp/getopt)
+
+SRCS(
+ last_getopt_ut.cpp
+ modchooser_ut.cpp
+ opt2_ut.cpp
+ opt_ut.cpp
+ posix_getopt_ut.cpp
+ wrap.cpp
+ ygetopt_ut.cpp
+)
+
+END()
diff --git a/library/cpp/getopt/ya.make b/library/cpp/getopt/ya.make
new file mode 100644
index 0000000000..035be9a668
--- /dev/null
+++ b/library/cpp/getopt/ya.make
@@ -0,0 +1,19 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/getopt/small
+ library/cpp/svnversion
+ library/cpp/build_info
+)
+
+SRCS(
+ GLOBAL print.cpp
+)
+
+END()
+
+RECURSE(
+ last_getopt_demo
+ small
+ ut
+)
diff --git a/library/cpp/grpc/client/ut/ya.make b/library/cpp/grpc/client/ut/ya.make
new file mode 100644
index 0000000000..45a88622f4
--- /dev/null
+++ b/library/cpp/grpc/client/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/grpc/client)
+
+SRCS(
+ grpc_client_low_ut.cpp
+)
+
+END()
diff --git a/library/cpp/grpc/client/ya.make b/library/cpp/grpc/client/ya.make
new file mode 100644
index 0000000000..a963a42abe
--- /dev/null
+++ b/library/cpp/grpc/client/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+ grpc_client_low.cpp
+)
+
+PEERDIR(
+ contrib/libs/grpc
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/grpc/server/actors/ya.make b/library/cpp/grpc/server/actors/ya.make
new file mode 100644
index 0000000000..a8d4b40373
--- /dev/null
+++ b/library/cpp/grpc/server/actors/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ logger.cpp
+)
+
+PEERDIR(
+ library/cpp/actors/core
+)
+
+END()
diff --git a/library/cpp/grpc/server/ut/ya.make b/library/cpp/grpc/server/ut/ya.make
new file mode 100644
index 0000000000..94408dc8ce
--- /dev/null
+++ b/library/cpp/grpc/server/ut/ya.make
@@ -0,0 +1,16 @@
+UNITTEST_FOR(library/cpp/grpc/server)
+
+TIMEOUT(600)
+SIZE(MEDIUM)
+
+PEERDIR(
+ library/cpp/grpc/server
+)
+
+SRCS(
+ grpc_response_ut.cpp
+ stream_adaptor_ut.cpp
+)
+
+END()
+
diff --git a/library/cpp/grpc/server/ya.make b/library/cpp/grpc/server/ya.make
new file mode 100644
index 0000000000..9ed8f30ef2
--- /dev/null
+++ b/library/cpp/grpc/server/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+SRCS(
+ event_callback.cpp
+ grpc_request.cpp
+ grpc_server.cpp
+ grpc_counters.cpp
+)
+
+GENERATE_ENUM_SERIALIZATION(grpc_request_base.h)
+
+PEERDIR(
+ contrib/libs/grpc
+ library/cpp/monlib/dynamic_counters/percentile
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
+
diff --git a/library/cpp/histogram/adaptive/protos/ya.make b/library/cpp/histogram/adaptive/protos/ya.make
new file mode 100644
index 0000000000..03b4225480
--- /dev/null
+++ b/library/cpp/histogram/adaptive/protos/ya.make
@@ -0,0 +1,11 @@
+PROTO_LIBRARY()
+
+SRCS(
+ histo.proto
+)
+
+IF (NOT PY_PROTOS_FOR)
+ EXCLUDE_TAGS(GO_PROTO)
+ENDIF()
+
+END()
diff --git a/library/cpp/histogram/adaptive/ya.make b/library/cpp/histogram/adaptive/ya.make
new file mode 100644
index 0000000000..43d0525b4e
--- /dev/null
+++ b/library/cpp/histogram/adaptive/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ common.cpp
+ adaptive_histogram.cpp
+ block_histogram.cpp
+ fixed_bin_histogram.cpp
+)
+
+PEERDIR(
+ contrib/libs/protobuf
+ library/cpp/histogram/adaptive/protos
+)
+
+END()
diff --git a/library/cpp/histogram/hdr/ut/ya.make b/library/cpp/histogram/hdr/ut/ya.make
new file mode 100644
index 0000000000..3d954aaffc
--- /dev/null
+++ b/library/cpp/histogram/hdr/ut/ya.make
@@ -0,0 +1,8 @@
+UNITTEST_FOR(library/cpp/histogram/hdr)
+
+SRCS(
+ histogram_ut.cpp
+ histogram_iter_ut.cpp
+)
+
+END()
diff --git a/library/cpp/histogram/hdr/ya.make b/library/cpp/histogram/hdr/ya.make
new file mode 100644
index 0000000000..48f80c3c2f
--- /dev/null
+++ b/library/cpp/histogram/hdr/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+ histogram.cpp
+ histogram_iter.cpp
+)
+
+PEERDIR(
+ contrib/libs/hdr_histogram
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/histogram/simple/ya.make b/library/cpp/histogram/simple/ya.make
new file mode 100644
index 0000000000..00544e802c
--- /dev/null
+++ b/library/cpp/histogram/simple/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/json
+ library/cpp/threading/future
+)
+
+SRCS(
+ histogram.cpp
+)
+
+END()
diff --git a/library/cpp/html/entity/ya.make b/library/cpp/html/entity/ya.make
new file mode 100644
index 0000000000..827e9c6b6d
--- /dev/null
+++ b/library/cpp/html/entity/ya.make
@@ -0,0 +1,19 @@
+LIBRARY()
+
+SRCS(
+ htmlentity.cpp
+ decoder.rl6
+)
+
+SET(
+ RAGEL6_FLAGS
+ -C
+ -e
+ -F1
+)
+
+PEERDIR(
+ library/cpp/charset
+)
+
+END()
diff --git a/library/cpp/html/escape/ut/ya.make b/library/cpp/html/escape/ut/ya.make
new file mode 100644
index 0000000000..605e99d2fd
--- /dev/null
+++ b/library/cpp/html/escape/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+SRCS(
+ escape_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/html/escape
+)
+
+END()
diff --git a/library/cpp/html/escape/ya.make b/library/cpp/html/escape/ya.make
new file mode 100644
index 0000000000..b5de3c9a77
--- /dev/null
+++ b/library/cpp/html/escape/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ escape.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/html/pcdata/ut/ya.make b/library/cpp/html/pcdata/ut/ya.make
new file mode 100644
index 0000000000..6d7f95627c
--- /dev/null
+++ b/library/cpp/html/pcdata/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/html/pcdata)
+
+SRCS(
+ pcdata_ut.cpp
+)
+
+END()
diff --git a/library/cpp/html/pcdata/ya.make b/library/cpp/html/pcdata/ya.make
new file mode 100644
index 0000000000..2710d6728b
--- /dev/null
+++ b/library/cpp/html/pcdata/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ pcdata.cpp
+ pcdata.h
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/http/fetch/ut/ya.make b/library/cpp/http/fetch/ut/ya.make
new file mode 100644
index 0000000000..df14c2a09f
--- /dev/null
+++ b/library/cpp/http/fetch/ut/ya.make
@@ -0,0 +1,8 @@
+UNITTEST_FOR(library/cpp/http/fetch)
+
+SRCS(
+ httpfsm_ut.cpp
+ httpparser_ut.cpp
+)
+
+END()
diff --git a/library/cpp/http/fetch/ya.make b/library/cpp/http/fetch/ya.make
new file mode 100644
index 0000000000..78125f42cf
--- /dev/null
+++ b/library/cpp/http/fetch/ya.make
@@ -0,0 +1,34 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/zlib
+ library/cpp/charset
+ library/cpp/digest/md5
+ library/cpp/http/misc
+ library/cpp/logger
+ library/cpp/mime/types
+ library/cpp/uri
+)
+
+SRCS(
+ http_digest.cpp
+ http_socket.cpp
+ httpheader.cpp
+ httpload.cpp
+ exthttpcodes.cpp
+ httpfsm.rl6
+ httpagent.h
+ httpfetcher.h
+ httpheader.h
+ httpparser.h
+ httpzreader.h
+ sockhandler.h
+)
+
+GENERATE_ENUM_SERIALIZATION(httpheader.h)
+
+SET(RAGEL6_FLAGS -CG1)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/http/io/fuzz/ya.make b/library/cpp/http/io/fuzz/ya.make
new file mode 100644
index 0000000000..8cb1fe288d
--- /dev/null
+++ b/library/cpp/http/io/fuzz/ya.make
@@ -0,0 +1,13 @@
+FUZZ()
+
+PEERDIR(
+ library/cpp/http/io
+)
+
+SIZE(MEDIUM)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/http/io/list_codings/ya.make b/library/cpp/http/io/list_codings/ya.make
new file mode 100644
index 0000000000..afc5c45444
--- /dev/null
+++ b/library/cpp/http/io/list_codings/ya.make
@@ -0,0 +1,11 @@
+PROGRAM()
+
+PEERDIR(
+ library/cpp/http/io
+)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/http/io/ut/ya.make b/library/cpp/http/io/ut/ya.make
new file mode 100644
index 0000000000..75beaaafb9
--- /dev/null
+++ b/library/cpp/http/io/ut/ya.make
@@ -0,0 +1,15 @@
+UNITTEST_FOR(library/cpp/http/io)
+
+PEERDIR(
+ library/cpp/http/server
+)
+
+SRCS(
+ chunk_ut.cpp
+ compression_ut.cpp
+ headers_ut.cpp
+ stream_ut.cpp
+ stream_ut_medium.cpp
+)
+
+END()
diff --git a/library/cpp/http/io/ya.make b/library/cpp/http/io/ya.make
new file mode 100644
index 0000000000..0390aecf55
--- /dev/null
+++ b/library/cpp/http/io/ya.make
@@ -0,0 +1,23 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/blockcodecs
+ library/cpp/streams/brotli
+ library/cpp/streams/bzip2
+ library/cpp/streams/lzma
+)
+
+SRCS(
+ chunk.cpp
+ compression.cpp
+ headers.cpp
+ stream.cpp
+)
+
+END()
+
+RECURSE(
+ fuzz
+ list_codings
+ ut
+)
diff --git a/library/cpp/http/misc/ut/ya.make b/library/cpp/http/misc/ut/ya.make
new file mode 100644
index 0000000000..604f1c4e74
--- /dev/null
+++ b/library/cpp/http/misc/ut/ya.make
@@ -0,0 +1,9 @@
+UNITTEST_FOR(library/cpp/http/misc)
+
+SRCS(
+ httpdate_ut.cpp
+ httpreqdata_ut.cpp
+ parsed_request_ut.cpp
+)
+
+END()
diff --git a/library/cpp/http/misc/ya.make b/library/cpp/http/misc/ya.make
new file mode 100644
index 0000000000..935e1f0fcc
--- /dev/null
+++ b/library/cpp/http/misc/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+GENERATE_ENUM_SERIALIZATION(httpcodes.h)
+
+SRCS(
+ httpcodes.cpp
+ httpdate.cpp
+ httpreqdata.cpp
+ parsed_request.cpp
+)
+
+PEERDIR(
+ library/cpp/case_insensitive_string
+ library/cpp/cgiparam
+ library/cpp/digest/lower_case
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/http/push_parser/ya.make b/library/cpp/http/push_parser/ya.make
new file mode 100644
index 0000000000..18289d2e9d
--- /dev/null
+++ b/library/cpp/http/push_parser/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+ http_parser.cpp
+)
+
+PEERDIR(
+ library/cpp/http/io
+ library/cpp/blockcodecs
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/http/server/ut/ya.make b/library/cpp/http/server/ut/ya.make
new file mode 100644
index 0000000000..78911fc4f1
--- /dev/null
+++ b/library/cpp/http/server/ut/ya.make
@@ -0,0 +1,10 @@
+UNITTEST_FOR(library/cpp/http/server)
+
+SIZE(MEDIUM)
+
+SRCS(
+ http_ut.cpp
+ response_ut.cpp
+)
+
+END()
diff --git a/library/cpp/http/server/ya.make b/library/cpp/http/server/ya.make
new file mode 100644
index 0000000000..a37783e7ed
--- /dev/null
+++ b/library/cpp/http/server/ya.make
@@ -0,0 +1,22 @@
+LIBRARY()
+
+SRCS(
+ conn.cpp
+ http.cpp
+ http_ex.cpp
+ options.cpp
+ response.cpp
+)
+
+PEERDIR(
+ library/cpp/http/misc
+ library/cpp/http/io
+ library/cpp/threading/equeue
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/http/simple/ut/https_server/ya.make b/library/cpp/http/simple/ut/https_server/ya.make
new file mode 100644
index 0000000000..6a0765382d
--- /dev/null
+++ b/library/cpp/http/simple/ut/https_server/ya.make
@@ -0,0 +1,5 @@
+GO_PROGRAM()
+
+SRCS(main.go)
+
+END()
diff --git a/library/cpp/http/simple/ut/ya.make b/library/cpp/http/simple/ut/ya.make
new file mode 100644
index 0000000000..3f77967ea6
--- /dev/null
+++ b/library/cpp/http/simple/ut/ya.make
@@ -0,0 +1,21 @@
+UNITTEST_FOR(library/cpp/http/simple)
+
+PEERDIR(
+ library/cpp/http/misc
+ library/cpp/testing/mock_server
+)
+
+SRCS(
+ http_ut.cpp
+ https_ut.cpp
+)
+
+DEPENDS(library/cpp/http/simple/ut/https_server)
+
+DATA(arcadia/library/cpp/http/simple/ut/https_server)
+
+END()
+
+RECURSE(
+ https_server
+)
diff --git a/library/cpp/http/simple/ya.make b/library/cpp/http/simple/ya.make
new file mode 100644
index 0000000000..3ef55c852c
--- /dev/null
+++ b/library/cpp/http/simple/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/http/io
+ library/cpp/openssl/io
+ library/cpp/string_utils/url
+ library/cpp/uri
+)
+
+SRCS(
+ http_client.cpp
+)
+
+END()
+
+IF (NOT OS_WINDOWS)
+ RECURSE_FOR_TESTS(
+ ut
+ )
+ENDIF()
diff --git a/library/cpp/hyperloglog/ut/ya.make b/library/cpp/hyperloglog/ut/ya.make
new file mode 100644
index 0000000000..a910146b67
--- /dev/null
+++ b/library/cpp/hyperloglog/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/hyperloglog)
+
+SRCS(
+ hyperloglog_ut.cpp
+)
+
+END()
diff --git a/library/cpp/hyperloglog/ya.make b/library/cpp/hyperloglog/ya.make
new file mode 100644
index 0000000000..8268acc561
--- /dev/null
+++ b/library/cpp/hyperloglog/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ hyperloglog.h
+ hyperloglog.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/int128/bench/ya.make b/library/cpp/int128/bench/ya.make
new file mode 100644
index 0000000000..0dbc45e21f
--- /dev/null
+++ b/library/cpp/int128/bench/ya.make
@@ -0,0 +1,11 @@
+Y_BENCHMARK()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/int128
+)
+
+END()
diff --git a/library/cpp/int128/ut/ya.make b/library/cpp/int128/ut/ya.make
new file mode 100644
index 0000000000..22ef97d566
--- /dev/null
+++ b/library/cpp/int128/ut/ya.make
@@ -0,0 +1,18 @@
+UNITTEST_FOR(library/cpp/int128)
+
+SRCS(
+ int128_ut_helpers.cpp
+ int128_ut_helpers.h
+ int128_ut.cpp
+ int128_typetraits_ut.cpp
+ int128_old_ut.cpp
+ int128_via_intrinsic_ut.cpp
+ i128_ut.cpp
+ i128_and_intrinsic_identity_ut.cpp
+ i128_comparison_ut.cpp
+ i128_division_ut.cpp
+ i128_type_traits_ut.cpp
+ ui128_division_ut.cpp
+)
+
+END()
diff --git a/library/cpp/int128/ya.make b/library/cpp/int128/ya.make
new file mode 100644
index 0000000000..095d7e3cb6
--- /dev/null
+++ b/library/cpp/int128/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+ int128.cpp
+ int128.h
+)
+
+END()
+
+RECURSE(
+ bench
+ ut
+)
diff --git a/library/cpp/ipmath/ut/ya.make b/library/cpp/ipmath/ut/ya.make
new file mode 100644
index 0000000000..b974ba7b03
--- /dev/null
+++ b/library/cpp/ipmath/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST_FOR(library/cpp/ipmath)
+
+SRCS(
+ ipmath_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/testing/gmock_in_unittest
+)
+
+END()
diff --git a/library/cpp/ipmath/ya.make b/library/cpp/ipmath/ya.make
new file mode 100644
index 0000000000..04cd721f5b
--- /dev/null
+++ b/library/cpp/ipmath/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ ipmath.cpp
+ range_set.cpp
+)
+
+PEERDIR(library/cpp/ipv6_address)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/ipv6_address/ut/ya.make b/library/cpp/ipv6_address/ut/ya.make
new file mode 100644
index 0000000000..1bb25059bf
--- /dev/null
+++ b/library/cpp/ipv6_address/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/ipv6_address)
+
+SRCS(
+ ipv6_address_ut.cpp
+)
+
+END()
diff --git a/library/cpp/ipv6_address/ya.make b/library/cpp/ipv6_address/ya.make
new file mode 100644
index 0000000000..6ee5211431
--- /dev/null
+++ b/library/cpp/ipv6_address/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+ ipv6_address.cpp
+ ipv6_address.h
+ ipv6_address_p.h
+)
+
+PEERDIR(
+ library/cpp/int128
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/iterator/ut/ya.make b/library/cpp/iterator/ut/ya.make
new file mode 100644
index 0000000000..4a5fb14c58
--- /dev/null
+++ b/library/cpp/iterator/ut/ya.make
@@ -0,0 +1,16 @@
+GTEST()
+
+PEERDIR(
+ library/cpp/iterator
+)
+
+SRCS(
+ filtering_ut.cpp
+ functools_ut.cpp
+ iterate_keys_ut.cpp
+ iterate_values_ut.cpp
+ mapped_ut.cpp
+ zip_ut.cpp
+)
+
+END()
diff --git a/library/cpp/iterator/ya.make b/library/cpp/iterator/ya.make
new file mode 100644
index 0000000000..1fd418e64a
--- /dev/null
+++ b/library/cpp/iterator/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+ cartesian_product.cpp
+ concatenate.cpp
+ enumerate.cpp
+ iterate_keys.cpp
+ iterate_values.cpp
+ filtering.cpp
+ functools.cpp
+ mapped.cpp
+ zip.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/json/common/ya.make b/library/cpp/json/common/ya.make
new file mode 100644
index 0000000000..ae064167e6
--- /dev/null
+++ b/library/cpp/json/common/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ defs.cpp
+)
+
+END()
diff --git a/library/cpp/json/converter/ut/ya.make b/library/cpp/json/converter/ut/ya.make
new file mode 100644
index 0000000000..15c555d3d4
--- /dev/null
+++ b/library/cpp/json/converter/ut/ya.make
@@ -0,0 +1,14 @@
+UNITTEST_FOR(library/cpp/json/converter)
+
+SIZE(SMALL)
+
+SRCS(
+ test_conversion.cpp
+)
+
+PEERDIR(
+ library/cpp/json
+ library/cpp/json/writer
+)
+
+END()
diff --git a/library/cpp/json/converter/ya.make b/library/cpp/json/converter/ya.make
new file mode 100644
index 0000000000..0458d1cefa
--- /dev/null
+++ b/library/cpp/json/converter/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ converter.cpp
+)
+
+PEERDIR(
+ library/cpp/json/writer
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/json/easy_parse/ya.make b/library/cpp/json/easy_parse/ya.make
new file mode 100644
index 0000000000..89a2d5bd84
--- /dev/null
+++ b/library/cpp/json/easy_parse/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ json_easy_parser.cpp
+)
+
+PEERDIR(
+ library/cpp/json
+)
+
+END()
diff --git a/library/cpp/json/fast_sax/ya.make b/library/cpp/json/fast_sax/ya.make
new file mode 100644
index 0000000000..2b6aaab19c
--- /dev/null
+++ b/library/cpp/json/fast_sax/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/json/common
+)
+
+SRCS(
+ parser.rl6
+ unescape.cpp
+)
+
+END()
diff --git a/library/cpp/json/fuzzy_test/ya.make b/library/cpp/json/fuzzy_test/ya.make
new file mode 100644
index 0000000000..224f3ab6f2
--- /dev/null
+++ b/library/cpp/json/fuzzy_test/ya.make
@@ -0,0 +1,11 @@
+FUZZ()
+
+PEERDIR(
+ library/cpp/json
+)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/json/ut/ya.make b/library/cpp/json/ut/ya.make
new file mode 100644
index 0000000000..1f14dd8f6f
--- /dev/null
+++ b/library/cpp/json/ut/ya.make
@@ -0,0 +1,15 @@
+UNITTEST_FOR(library/cpp/json)
+
+PEERDIR(
+ library/cpp/string_utils/relaxed_escaper
+)
+
+SRCS(
+ json_reader_fast_ut.cpp
+ json_reader_ut.cpp
+ json_prettifier_ut.cpp
+ json_writer_ut.cpp
+ json_saveload_ut.cpp
+)
+
+END()
diff --git a/library/cpp/json/writer/ut/ya.make b/library/cpp/json/writer/ut/ya.make
new file mode 100644
index 0000000000..256b950a6e
--- /dev/null
+++ b/library/cpp/json/writer/ut/ya.make
@@ -0,0 +1,14 @@
+UNITTEST()
+
+PEERDIR(
+ ADDINCL library/cpp/json/writer
+)
+
+SRCDIR(library/cpp/json/writer)
+
+SRCS(
+ json_ut.cpp
+ json_value_ut.cpp
+)
+
+END()
diff --git a/library/cpp/json/writer/ya.make b/library/cpp/json/writer/ya.make
new file mode 100644
index 0000000000..15340ed6dc
--- /dev/null
+++ b/library/cpp/json/writer/ya.make
@@ -0,0 +1,18 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/json/common
+)
+
+SRCS(
+ json_value.cpp
+ json.cpp
+)
+
+GENERATE_ENUM_SERIALIZATION(json_value.h)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/json/ya.make b/library/cpp/json/ya.make
new file mode 100644
index 0000000000..bdcf9a12c7
--- /dev/null
+++ b/library/cpp/json/ya.make
@@ -0,0 +1,26 @@
+LIBRARY()
+
+SRCS(
+ json_writer.cpp
+ json_reader.cpp
+ json_prettifier.cpp
+ rapidjson_helpers.cpp
+)
+
+PEERDIR(
+ contrib/libs/rapidjson
+ library/cpp/json/common
+ library/cpp/json/fast_sax
+ library/cpp/json/writer
+ library/cpp/string_utils/relaxed_escaper
+)
+
+END()
+
+RECURSE(
+ converter
+ fuzzy_test
+ ut
+ writer
+ yson
+)
diff --git a/library/cpp/json/yson/ut/ya.make b/library/cpp/json/yson/ut/ya.make
new file mode 100644
index 0000000000..8fce6dbe2f
--- /dev/null
+++ b/library/cpp/json/yson/ut/ya.make
@@ -0,0 +1,23 @@
+UNITTEST_FOR(library/cpp/json/yson)
+
+ALLOCATOR(LF)
+
+DATA(sbr://363537653)
+
+PEERDIR(
+ library/cpp/blockcodecs
+ library/cpp/histogram/simple
+ library/cpp/testing/unittest
+)
+
+SIZE(LARGE)
+
+TAG(ya:fat)
+
+TIMEOUT(600)
+
+SRCS(
+ json2yson_ut.cpp
+)
+
+END()
diff --git a/library/cpp/json/yson/ya.make b/library/cpp/json/yson/ya.make
new file mode 100644
index 0000000000..258a78efcc
--- /dev/null
+++ b/library/cpp/json/yson/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/json
+ library/cpp/yson
+ library/cpp/yson/json
+)
+
+SRCS(
+ json2yson.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/lcs/ut/ya.make b/library/cpp/lcs/ut/ya.make
new file mode 100644
index 0000000000..e893bc9527
--- /dev/null
+++ b/library/cpp/lcs/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+PEERDIR(
+ ADDINCL library/cpp/lcs
+)
+
+SRCDIR(library/cpp/lcs)
+
+SRCS(
+ lcs_via_lis_ut.cpp
+)
+
+END()
diff --git a/library/cpp/lcs/ya.make b/library/cpp/lcs/ya.make
new file mode 100644
index 0000000000..8c63b44e79
--- /dev/null
+++ b/library/cpp/lcs/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/containers/paged_vector
+)
+
+SRCS(
+ lcs_via_lis.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/lfalloc/alloc_profiler/ut/ya.make b/library/cpp/lfalloc/alloc_profiler/ut/ya.make
new file mode 100644
index 0000000000..a93b86e365
--- /dev/null
+++ b/library/cpp/lfalloc/alloc_profiler/ut/ya.make
@@ -0,0 +1,20 @@
+UNITTEST_FOR(library/cpp/lfalloc/alloc_profiler)
+
+PEERDIR(
+ library/cpp/testing/unittest
+)
+
+IF (ARCH_AARCH64)
+ PEERDIR(
+ contrib/libs/jemalloc
+ )
+ELSE()
+ ALLOCATOR(LF_DBG)
+ENDIF()
+
+SRCS(
+ profiler_ut.cpp
+ align_ut.cpp
+)
+
+END()
diff --git a/library/cpp/lfalloc/alloc_profiler/ya.make b/library/cpp/lfalloc/alloc_profiler/ya.make
new file mode 100644
index 0000000000..73542891c7
--- /dev/null
+++ b/library/cpp/lfalloc/alloc_profiler/ya.make
@@ -0,0 +1,18 @@
+LIBRARY()
+
+SRCS(
+ profiler.cpp
+ stackcollect.cpp
+)
+
+PEERDIR(
+ library/cpp/lfalloc/dbg_info
+ library/cpp/cache
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE(
+ ut
+)
diff --git a/library/cpp/lfalloc/dbg/ya.make b/library/cpp/lfalloc/dbg/ya.make
new file mode 100644
index 0000000000..e192ea875b
--- /dev/null
+++ b/library/cpp/lfalloc/dbg/ya.make
@@ -0,0 +1,30 @@
+LIBRARY()
+
+NO_UTIL()
+
+NO_COMPILER_WARNINGS()
+
+IF (ARCH_AARCH64)
+ PEERDIR(
+ contrib/libs/jemalloc
+ )
+ELSE()
+ IF ("${YMAKE}" MATCHES "devtools")
+ CFLAGS(-DYMAKE=1)
+ ENDIF()
+ CXXFLAGS(
+ -DLFALLOC_DBG
+ -DLFALLOC_YT
+ )
+ SRCS(
+ ../lf_allocX64.cpp
+ )
+ENDIF()
+
+PEERDIR(
+ library/cpp/malloc/api
+)
+
+SET(IDE_FOLDER "util")
+
+END()
diff --git a/library/cpp/lfalloc/dbg_info/ya.make b/library/cpp/lfalloc/dbg_info/ya.make
new file mode 100644
index 0000000000..47b7a59f95
--- /dev/null
+++ b/library/cpp/lfalloc/dbg_info/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/malloc/api
+)
+
+SRCS(
+ dbg_info.cpp
+)
+
+SET(IDE_FOLDER "util")
+
+END()
diff --git a/library/cpp/lfalloc/ya.make b/library/cpp/lfalloc/ya.make
new file mode 100644
index 0000000000..457df8c4b6
--- /dev/null
+++ b/library/cpp/lfalloc/ya.make
@@ -0,0 +1,19 @@
+LIBRARY()
+
+BUILD_ONLY_IF(FATAL_ERROR ARCH_TYPE_64)
+
+NO_UTIL()
+
+NO_COMPILER_WARNINGS()
+
+SRCS(
+ lf_allocX64.cpp
+)
+
+PEERDIR(
+ library/cpp/malloc/api
+)
+
+SET(IDE_FOLDER "util")
+
+END()
diff --git a/library/cpp/lfalloc/yt/ya.make b/library/cpp/lfalloc/yt/ya.make
new file mode 100644
index 0000000000..2a0906b235
--- /dev/null
+++ b/library/cpp/lfalloc/yt/ya.make
@@ -0,0 +1,27 @@
+LIBRARY()
+
+NO_UTIL()
+
+NO_COMPILER_WARNINGS()
+
+IF (ARCH_AARCH64)
+ PEERDIR(
+ contrib/libs/jemalloc
+ )
+ELSE()
+ IF ("${YMAKE}" MATCHES "devtools")
+ CFLAGS(-DYMAKE=1)
+ ENDIF()
+ CXXFLAGS(-DLFALLOC_YT)
+ SRCS(
+ ../lf_allocX64.cpp
+ )
+ENDIF()
+
+PEERDIR(
+ library/cpp/malloc/api
+)
+
+SET(IDE_FOLDER "util")
+
+END()
diff --git a/library/cpp/linear_regression/benchmark/ya.make b/library/cpp/linear_regression/benchmark/ya.make
new file mode 100644
index 0000000000..5a2f1ebb5d
--- /dev/null
+++ b/library/cpp/linear_regression/benchmark/ya.make
@@ -0,0 +1,13 @@
+PROGRAM(linear_regression_benchmark)
+
+SRCS(
+ pool.h
+ pool.cpp
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/linear_regression
+)
+
+END()
diff --git a/library/cpp/linear_regression/ut/ya.make b/library/cpp/linear_regression/ut/ya.make
new file mode 100644
index 0000000000..18e8e5eff0
--- /dev/null
+++ b/library/cpp/linear_regression/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+PEERDIR(
+ ADDINCL library/cpp/linear_regression
+)
+
+SRCDIR(library/cpp/linear_regression)
+
+SRCS(
+ linear_regression_ut.cpp
+)
+
+END()
diff --git a/library/cpp/linear_regression/ya.make b/library/cpp/linear_regression/ya.make
new file mode 100644
index 0000000000..504de7ee6e
--- /dev/null
+++ b/library/cpp/linear_regression/ya.make
@@ -0,0 +1,18 @@
+LIBRARY()
+
+SRCS(
+ linear_regression.cpp
+ unimodal.cpp
+ welford.cpp
+)
+
+PEERDIR(
+ library/cpp/accurate_accumulate
+)
+
+END()
+
+RECURSE(
+ benchmark
+ ut
+)
diff --git a/library/cpp/logger/global/ut/ya.make b/library/cpp/logger/global/ut/ya.make
new file mode 100644
index 0000000000..df11609b6c
--- /dev/null
+++ b/library/cpp/logger/global/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/logger/global
+)
+
+SRCDIR(library/cpp/logger/global)
+
+SRCS(
+ rty_formater_ut.cpp
+)
+
+END()
diff --git a/library/cpp/logger/global/ya.make b/library/cpp/logger/global/ya.make
new file mode 100644
index 0000000000..40f2c49a07
--- /dev/null
+++ b/library/cpp/logger/global/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/logger
+)
+
+SRCS(
+ common.cpp
+ global.cpp
+ rty_formater.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/logger/init_context/ya.make b/library/cpp/logger/init_context/ya.make
new file mode 100644
index 0000000000..282999948f
--- /dev/null
+++ b/library/cpp/logger/init_context/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/logger
+ library/cpp/config
+ library/cpp/yconf
+)
+SRCS(
+ config.cpp
+ yconf.cpp
+)
+
+END()
diff --git a/library/cpp/logger/ut/ya.make b/library/cpp/logger/ut/ya.make
new file mode 100644
index 0000000000..c6fe244bd7
--- /dev/null
+++ b/library/cpp/logger/ut/ya.make
@@ -0,0 +1,19 @@
+UNITTEST()
+
+PEERDIR(
+ ADDINCL library/cpp/logger
+ library/cpp/logger/init_context
+ library/cpp/yconf/patcher
+)
+
+SRCDIR(library/cpp/logger)
+
+SRCS(
+ log_ut.cpp
+ element_ut.cpp
+ rotating_file_ut.cpp
+ composite_ut.cpp
+ reopen_ut.cpp
+)
+
+END()
diff --git a/library/cpp/logger/ya.make b/library/cpp/logger/ya.make
new file mode 100644
index 0000000000..5e426eb32e
--- /dev/null
+++ b/library/cpp/logger/ya.make
@@ -0,0 +1,45 @@
+LIBRARY()
+
+GENERATE_ENUM_SERIALIZATION(priority.h)
+
+PEERDIR(
+ library/cpp/json
+ library/cpp/deprecated/atomic
+)
+
+SRCS(
+ all.h
+ backend.cpp
+ backend_creator.cpp
+ composite.cpp
+ GLOBAL composite_creator.cpp
+ element.cpp
+ file.cpp
+ GLOBAL file_creator.cpp
+ filter.cpp
+ filter_creator.cpp
+ log.cpp
+ null.cpp
+ GLOBAL null_creator.cpp
+ priority.h
+ record.h
+ rotating_file.cpp
+ GLOBAL rotating_file_creator.cpp
+ stream.cpp
+ GLOBAL stream_creator.cpp
+ sync_page_cache_file.cpp
+ GLOBAL sync_page_cache_file_creator.cpp
+ system.cpp
+ GLOBAL system_creator.cpp
+ thread.cpp
+ thread_creator.cpp
+ GLOBAL uninitialized_creator.cpp
+ reopen.h
+)
+
+END()
+
+RECURSE(
+ global
+ ut
+)
diff --git a/library/cpp/lua/ya.make b/library/cpp/lua/ya.make
new file mode 100644
index 0000000000..b9cc204d9e
--- /dev/null
+++ b/library/cpp/lua/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/json
+ contrib/libs/lua
+ library/cpp/string_utils/ztstrbuf
+)
+
+SRCS(
+ eval.cpp
+ json.cpp
+ wrapper.cpp
+)
+
+END()
diff --git a/library/cpp/lwtrace/example1/ya.make b/library/cpp/lwtrace/example1/ya.make
new file mode 100644
index 0000000000..b447f7ddcc
--- /dev/null
+++ b/library/cpp/lwtrace/example1/ya.make
@@ -0,0 +1,11 @@
+PROGRAM(lwtrace-example1)
+
+SRCS(
+ lwtrace_example1.cpp
+)
+
+PEERDIR(
+ library/cpp/lwtrace
+)
+
+END()
diff --git a/library/cpp/lwtrace/example2/ya.make b/library/cpp/lwtrace/example2/ya.make
new file mode 100644
index 0000000000..9b10bf4e03
--- /dev/null
+++ b/library/cpp/lwtrace/example2/ya.make
@@ -0,0 +1,12 @@
+PROGRAM(lwtrace-example2)
+
+SRCS(
+ lwtrace_example2.cpp
+)
+
+PEERDIR(
+ library/cpp/lwtrace
+ library/cpp/getopt
+)
+
+END()
diff --git a/library/cpp/lwtrace/example3/ya.make b/library/cpp/lwtrace/example3/ya.make
new file mode 100644
index 0000000000..970037228e
--- /dev/null
+++ b/library/cpp/lwtrace/example3/ya.make
@@ -0,0 +1,11 @@
+PROGRAM(lwtrace-example3)
+
+SRCS(
+ lwtrace_example3.cpp
+)
+
+PEERDIR(
+ library/cpp/lwtrace
+)
+
+END()
diff --git a/library/cpp/lwtrace/example4/ya.make b/library/cpp/lwtrace/example4/ya.make
new file mode 100644
index 0000000000..fb20185c55
--- /dev/null
+++ b/library/cpp/lwtrace/example4/ya.make
@@ -0,0 +1,11 @@
+PROGRAM(lwtrace-example4)
+
+SRCS(
+ lwtrace_example4.cpp
+)
+
+PEERDIR(
+ library/cpp/lwtrace
+)
+
+END()
diff --git a/library/cpp/lwtrace/example5/ya.make b/library/cpp/lwtrace/example5/ya.make
new file mode 100644
index 0000000000..235d457c05
--- /dev/null
+++ b/library/cpp/lwtrace/example5/ya.make
@@ -0,0 +1,11 @@
+PROGRAM(lwtrace-example5)
+
+SRCS(
+ lwtrace_example5.cpp
+)
+
+PEERDIR(
+ library/cpp/lwtrace
+)
+
+END()
diff --git a/library/cpp/lwtrace/mon/analytics/ya.make b/library/cpp/lwtrace/mon/analytics/ya.make
new file mode 100644
index 0000000000..84f1909308
--- /dev/null
+++ b/library/cpp/lwtrace/mon/analytics/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+)
+
+SRCS(
+ analytics.cpp
+)
+
+END()
+
+RECURSE(
+)
diff --git a/library/cpp/lwtrace/mon/ya.make b/library/cpp/lwtrace/mon/ya.make
new file mode 100644
index 0000000000..f6d60f8e7d
--- /dev/null
+++ b/library/cpp/lwtrace/mon/ya.make
@@ -0,0 +1,53 @@
+LIBRARY()
+
+RESOURCE(
+ static/common.css lwtrace/mon/static/common.css
+ static/common.js lwtrace/mon/static/common.js
+ static/css/bootstrap.min.css lwtrace/mon/static/css/bootstrap.min.css
+ static/css/d3-gantt.css lwtrace/mon/static/css/d3-gantt.css
+ static/css/jquery.treegrid.css lwtrace/mon/static/css/jquery.treegrid.css
+ static/analytics.css lwtrace/mon/static/analytics.css
+ static/analytics.flot.html lwtrace/mon/static/analytics.flot.html
+ static/analytics.gantt.html lwtrace/mon/static/analytics.gantt.html
+ static/analytics.header.html lwtrace/mon/static/analytics.header.html
+ static/analytics.js lwtrace/mon/static/analytics.js
+ static/fonts/glyphicons-halflings-regular.eot lwtrace/mon/static/fonts/glyphicons-halflings-regular.eot
+ static/fonts/glyphicons-halflings-regular.svg lwtrace/mon/static/fonts/glyphicons-halflings-regular.svg
+ static/fonts/glyphicons-halflings-regular.ttf lwtrace/mon/static/fonts/glyphicons-halflings-regular.ttf
+ static/fonts/glyphicons-halflings-regular.woff2 lwtrace/mon/static/fonts/glyphicons-halflings-regular.woff2
+ static/fonts/glyphicons-halflings-regular.woff lwtrace/mon/static/fonts/glyphicons-halflings-regular.woff
+ static/footer.html lwtrace/mon/static/footer.html
+ static/header.html lwtrace/mon/static/header.html
+ static/img/collapse.png lwtrace/mon/static/img/collapse.png
+ static/img/expand.png lwtrace/mon/static/img/expand.png
+ static/img/file.png lwtrace/mon/static/img/file.png
+ static/img/folder.png lwtrace/mon/static/img/folder.png
+ static/js/bootstrap.min.js lwtrace/mon/static/js/bootstrap.min.js
+ static/js/d3.v4.min.js lwtrace/mon/static/js/d3.v4.min.js
+ static/js/d3-gantt.js lwtrace/mon/static/js/d3-gantt.js
+ static/js/d3-tip-0.8.0-alpha.1.js lwtrace/mon/static/js/d3-tip-0.8.0-alpha.1.js
+ static/js/filesaver.min.js lwtrace/mon/static/js/filesaver.min.js
+ static/js/jquery.flot.extents.js lwtrace/mon/static/js/jquery.flot.extents.js
+ static/js/jquery.flot.min.js lwtrace/mon/static/js/jquery.flot.min.js
+ static/js/jquery.flot.navigate.min.js lwtrace/mon/static/js/jquery.flot.navigate.min.js
+ static/js/jquery.flot.selection.min.js lwtrace/mon/static/js/jquery.flot.selection.min.js
+ static/js/jquery.min.js lwtrace/mon/static/js/jquery.min.js
+ static/js/jquery.treegrid.bootstrap3.js lwtrace/mon/static/js/jquery.treegrid.bootstrap3.js
+ static/js/jquery.treegrid.min.js lwtrace/mon/static/js/jquery.treegrid.min.js
+ static/js/jquery.url.min.js lwtrace/mon/static/js/jquery.url.min.js
+)
+
+SRCS(
+ mon_lwtrace.cpp
+)
+
+PEERDIR(
+ library/cpp/html/pcdata
+ library/cpp/lwtrace
+ library/cpp/lwtrace/mon/analytics
+ library/cpp/monlib/dynamic_counters
+ library/cpp/resource
+ library/cpp/string_utils/base64
+)
+
+END()
diff --git a/library/cpp/lwtrace/protos/ya.make b/library/cpp/lwtrace/protos/ya.make
new file mode 100644
index 0000000000..4ddd5476bb
--- /dev/null
+++ b/library/cpp/lwtrace/protos/ya.make
@@ -0,0 +1,9 @@
+PROTO_LIBRARY()
+
+INCLUDE_TAGS(GO_PROTO)
+
+SRCS(
+ lwtrace.proto
+)
+
+END()
diff --git a/library/cpp/lwtrace/tests/ya.make b/library/cpp/lwtrace/tests/ya.make
new file mode 100644
index 0000000000..908fdf2330
--- /dev/null
+++ b/library/cpp/lwtrace/tests/ya.make
@@ -0,0 +1,13 @@
+PROGRAM()
+
+SRCS(
+ trace_tests.cpp
+)
+
+PEERDIR(
+ contrib/libs/protobuf
+ library/cpp/getopt
+ library/cpp/lwtrace
+)
+
+END()
diff --git a/library/cpp/lwtrace/ut/ya.make b/library/cpp/lwtrace/ut/ya.make
new file mode 100644
index 0000000000..8b7c885786
--- /dev/null
+++ b/library/cpp/lwtrace/ut/ya.make
@@ -0,0 +1,10 @@
+UNITTEST_FOR(library/cpp/lwtrace)
+
+FORK_SUBTESTS()
+
+SRCS(
+ log_ut.cpp
+ trace_ut.cpp
+)
+
+END()
diff --git a/library/cpp/lwtrace/ya.make b/library/cpp/lwtrace/ya.make
new file mode 100644
index 0000000000..e3a92bec1f
--- /dev/null
+++ b/library/cpp/lwtrace/ya.make
@@ -0,0 +1,35 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/lwtrace/protos
+ library/cpp/deprecated/atomic
+)
+
+SRCS(
+ check.cpp
+ control.cpp
+ custom_action.cpp
+ kill_action.cpp
+ log_shuttle.cpp
+ perf.cpp
+ probes.cpp
+ shuttle.cpp
+ sleep_action.cpp
+ start.cpp
+ stderr_writer.cpp
+ symbol.cpp
+ trace.cpp
+)
+
+END()
+
+RECURSE(
+ example1
+ example2
+ example3
+ example4
+ example5
+ mon
+ tests
+ ut
+)
diff --git a/library/cpp/malloc/api/helpers/ya.make b/library/cpp/malloc/api/helpers/ya.make
new file mode 100644
index 0000000000..b09146f2fe
--- /dev/null
+++ b/library/cpp/malloc/api/helpers/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/malloc/api
+)
+
+SRCS(
+ io.cpp
+)
+
+END()
diff --git a/library/cpp/malloc/api/ut/ya.make b/library/cpp/malloc/api/ut/ya.make
new file mode 100644
index 0000000000..5580da99d7
--- /dev/null
+++ b/library/cpp/malloc/api/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/malloc/api/helpers
+)
+
+SRCS(
+ ut.cpp
+)
+
+END()
diff --git a/library/cpp/malloc/api/ya.make b/library/cpp/malloc/api/ya.make
new file mode 100644
index 0000000000..499792ba19
--- /dev/null
+++ b/library/cpp/malloc/api/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+NO_UTIL()
+
+SRCS(
+ malloc.cpp
+)
+
+END()
+
+RECURSE(
+ helpers
+ ut
+)
diff --git a/library/cpp/malloc/jemalloc/ya.make b/library/cpp/malloc/jemalloc/ya.make
new file mode 100644
index 0000000000..335ae2c0b2
--- /dev/null
+++ b/library/cpp/malloc/jemalloc/ya.make
@@ -0,0 +1,19 @@
+LIBRARY()
+
+NO_UTIL()
+
+IF (OS_ANDROID)
+ PEERDIR(
+ library/cpp/malloc/system
+ )
+ELSE()
+ PEERDIR(
+ library/cpp/malloc/api
+ contrib/libs/jemalloc
+ )
+ SRCS(
+ malloc-info.cpp
+ )
+ENDIF()
+
+END()
diff --git a/library/cpp/malloc/mimalloc/link_test/ya.make b/library/cpp/malloc/mimalloc/link_test/ya.make
new file mode 100644
index 0000000000..1488b55072
--- /dev/null
+++ b/library/cpp/malloc/mimalloc/link_test/ya.make
@@ -0,0 +1,9 @@
+PROGRAM()
+
+ALLOCATOR(MIM)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/malloc/mimalloc/ya.make b/library/cpp/malloc/mimalloc/ya.make
new file mode 100644
index 0000000000..87b3a6420a
--- /dev/null
+++ b/library/cpp/malloc/mimalloc/ya.make
@@ -0,0 +1,18 @@
+LIBRARY()
+
+NO_UTIL()
+
+PEERDIR(
+ library/cpp/malloc/api
+ contrib/libs/mimalloc
+)
+
+SRCS(
+ info.cpp
+)
+
+END()
+
+RECURSE(
+ link_test
+)
diff --git a/library/cpp/malloc/system/ya.make b/library/cpp/malloc/system/ya.make
new file mode 100644
index 0000000000..23d341f65f
--- /dev/null
+++ b/library/cpp/malloc/system/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+NO_UTIL()
+
+PEERDIR(
+ library/cpp/malloc/api
+)
+
+SRCS(
+ malloc-info.cpp
+)
+
+END()
diff --git a/library/cpp/malloc/tcmalloc/ya.make b/library/cpp/malloc/tcmalloc/ya.make
new file mode 100644
index 0000000000..43650c8fce
--- /dev/null
+++ b/library/cpp/malloc/tcmalloc/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+NO_UTIL()
+
+PEERDIR(
+ library/cpp/malloc/api
+ contrib/libs/tcmalloc/malloc_extension
+)
+SRCS(
+ malloc-info.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/actor/ut/ya.make b/library/cpp/messagebus/actor/ut/ya.make
new file mode 100644
index 0000000000..c2078d41b5
--- /dev/null
+++ b/library/cpp/messagebus/actor/ut/ya.make
@@ -0,0 +1,14 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/messagebus/actor
+)
+
+SRCS(
+ ../actor_ut.cpp
+ ../ring_buffer_ut.cpp
+ ../tasks_ut.cpp
+ ../what_thread_does_guard_ut.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/actor/ya.make b/library/cpp/messagebus/actor/ya.make
new file mode 100644
index 0000000000..bd871502b6
--- /dev/null
+++ b/library/cpp/messagebus/actor/ya.make
@@ -0,0 +1,17 @@
+LIBRARY(messagebus_actor)
+
+SRCS(
+ executor.cpp
+ thread_extra.cpp
+ what_thread_does.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/messagebus/config/ya.make b/library/cpp/messagebus/config/ya.make
new file mode 100644
index 0000000000..81ffbef0c6
--- /dev/null
+++ b/library/cpp/messagebus/config/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/getopt
+ library/cpp/deprecated/enum_codegen
+)
+
+SRCS(
+ netaddr.cpp
+ session_config.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/debug_receiver/ya.make b/library/cpp/messagebus/debug_receiver/ya.make
new file mode 100644
index 0000000000..fe6904bdd7
--- /dev/null
+++ b/library/cpp/messagebus/debug_receiver/ya.make
@@ -0,0 +1,15 @@
+PROGRAM(messagebus_debug_receiver)
+
+SRCS(
+ debug_receiver.cpp
+ debug_receiver_proto.cpp
+ debug_receiver_handler.cpp
+)
+
+PEERDIR(
+ library/cpp/getopt
+ library/cpp/lwtrace
+ library/cpp/messagebus
+)
+
+END()
diff --git a/library/cpp/messagebus/monitoring/ya.make b/library/cpp/messagebus/monitoring/ya.make
new file mode 100644
index 0000000000..7176d83951
--- /dev/null
+++ b/library/cpp/messagebus/monitoring/ya.make
@@ -0,0 +1,13 @@
+PROTO_LIBRARY()
+
+PEERDIR(
+ library/cpp/monlib/encode/legacy_protobuf/protos
+)
+
+SRCS(
+ mon_proto.proto
+)
+
+EXCLUDE_TAGS(GO_PROTO)
+
+END()
diff --git a/library/cpp/messagebus/oldmodule/ya.make b/library/cpp/messagebus/oldmodule/ya.make
new file mode 100644
index 0000000000..b9ada63467
--- /dev/null
+++ b/library/cpp/messagebus/oldmodule/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/messagebus
+ library/cpp/messagebus/actor
+)
+
+SRCS(
+ module.cpp
+ startsession.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/protobuf/ya.make b/library/cpp/messagebus/protobuf/ya.make
new file mode 100644
index 0000000000..cbe79df675
--- /dev/null
+++ b/library/cpp/messagebus/protobuf/ya.make
@@ -0,0 +1,13 @@
+LIBRARY(messagebus_protobuf)
+
+SRCS(
+ ybusbuf.cpp
+)
+
+PEERDIR(
+ contrib/libs/protobuf
+ library/cpp/messagebus
+ library/cpp/messagebus/actor
+)
+
+END()
diff --git a/library/cpp/messagebus/rain_check/core/ya.make b/library/cpp/messagebus/rain_check/core/ya.make
new file mode 100644
index 0000000000..dfbbb1446b
--- /dev/null
+++ b/library/cpp/messagebus/rain_check/core/ya.make
@@ -0,0 +1,23 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/coroutine/engine
+ library/cpp/deprecated/enum_codegen
+ library/cpp/messagebus
+ library/cpp/messagebus/actor
+ library/cpp/messagebus/scheduler
+)
+
+SRCS(
+ coro.cpp
+ coro_stack.cpp
+ env.cpp
+ rain_check.cpp
+ simple.cpp
+ sleep.cpp
+ spawn.cpp
+ task.cpp
+ track.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/rain_check/http/ya.make b/library/cpp/messagebus/rain_check/http/ya.make
new file mode 100644
index 0000000000..f9aaf08fbf
--- /dev/null
+++ b/library/cpp/messagebus/rain_check/http/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ client.cpp
+ http_code_extractor.cpp
+)
+
+PEERDIR(
+ library/cpp/messagebus/rain_check/core
+ library/cpp/neh
+ library/cpp/http/misc
+ library/cpp/http/io
+)
+
+END()
diff --git a/library/cpp/messagebus/rain_check/messagebus/ya.make b/library/cpp/messagebus/rain_check/messagebus/ya.make
new file mode 100644
index 0000000000..a2f9c2825a
--- /dev/null
+++ b/library/cpp/messagebus/rain_check/messagebus/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/messagebus
+ library/cpp/messagebus/rain_check/core
+)
+
+SRCS(
+ messagebus_client.cpp
+ messagebus_server.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/rain_check/test/helper/ya.make b/library/cpp/messagebus/rain_check/test/helper/ya.make
new file mode 100644
index 0000000000..4cbdeeb441
--- /dev/null
+++ b/library/cpp/messagebus/rain_check/test/helper/ya.make
@@ -0,0 +1,11 @@
+LIBRARY(messagebus-rain_check-test-helper)
+
+PEERDIR(
+ library/cpp/messagebus/rain_check/core
+)
+
+SRCS(
+ misc.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/rain_check/test/perftest/ya.make b/library/cpp/messagebus/rain_check/test/perftest/ya.make
new file mode 100644
index 0000000000..79d2884835
--- /dev/null
+++ b/library/cpp/messagebus/rain_check/test/perftest/ya.make
@@ -0,0 +1,12 @@
+PROGRAM(messagebus_rain_check_perftest)
+
+PEERDIR(
+ library/cpp/messagebus/rain_check/core
+ library/cpp/messagebus/rain_check/test/helper
+)
+
+SRCS(
+ perftest.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/rain_check/test/ut/ya.make b/library/cpp/messagebus/rain_check/test/ut/ya.make
new file mode 100644
index 0000000000..ba6fa9fc8e
--- /dev/null
+++ b/library/cpp/messagebus/rain_check/test/ut/ya.make
@@ -0,0 +1,22 @@
+PROGRAM(library-messagebus-rain_check-test-ut)
+
+PEERDIR(
+ library/cpp/testing/unittest_main
+ library/cpp/messagebus/rain_check/core
+ library/cpp/messagebus/rain_check/http
+ library/cpp/messagebus/rain_check/messagebus
+ library/cpp/messagebus/test/helper
+)
+
+SRCS(
+ ../../core/coro_ut.cpp
+ ../../core/simple_ut.cpp
+ ../../core/sleep_ut.cpp
+ ../../core/spawn_ut.cpp
+ ../../core/track_ut.cpp
+ ../../http/client_ut.cpp
+ ../../messagebus/messagebus_client_ut.cpp
+ ../../messagebus/messagebus_server_ut.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/rain_check/test/ya.make b/library/cpp/messagebus/rain_check/test/ya.make
new file mode 100644
index 0000000000..347086cbc3
--- /dev/null
+++ b/library/cpp/messagebus/rain_check/test/ya.make
@@ -0,0 +1,4 @@
+RECURSE(
+ perftest
+ ut
+)
diff --git a/library/cpp/messagebus/rain_check/ya.make b/library/cpp/messagebus/rain_check/ya.make
new file mode 100644
index 0000000000..c871464744
--- /dev/null
+++ b/library/cpp/messagebus/rain_check/ya.make
@@ -0,0 +1,6 @@
+RECURSE(
+ core
+ http
+ messagebus
+ test
+)
diff --git a/library/cpp/messagebus/scheduler/ut/ya.make b/library/cpp/messagebus/scheduler/ut/ya.make
new file mode 100644
index 0000000000..b43dc6f2d5
--- /dev/null
+++ b/library/cpp/messagebus/scheduler/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/messagebus/scheduler
+)
+
+SRCS(
+ ../scheduler_ut.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/scheduler/ya.make b/library/cpp/messagebus/scheduler/ya.make
new file mode 100644
index 0000000000..9ad77875de
--- /dev/null
+++ b/library/cpp/messagebus/scheduler/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/threading/future
+ library/cpp/deprecated/atomic
+)
+
+SRCS(
+ scheduler.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/messagebus/test/example/client/ya.make b/library/cpp/messagebus/test/example/client/ya.make
new file mode 100644
index 0000000000..41dace996a
--- /dev/null
+++ b/library/cpp/messagebus/test/example/client/ya.make
@@ -0,0 +1,11 @@
+PROGRAM(messagebus_example_client)
+
+PEERDIR(
+ library/cpp/messagebus/test/example/common
+)
+
+SRCS(
+ client.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/test/example/common/ya.make b/library/cpp/messagebus/test/example/common/ya.make
new file mode 100644
index 0000000000..1281f6b16a
--- /dev/null
+++ b/library/cpp/messagebus/test/example/common/ya.make
@@ -0,0 +1,13 @@
+LIBRARY(messagebus_test_example_common)
+
+PEERDIR(
+ library/cpp/messagebus
+ library/cpp/messagebus/protobuf
+)
+
+SRCS(
+ proto.cpp
+ messages.proto
+)
+
+END()
diff --git a/library/cpp/messagebus/test/example/server/ya.make b/library/cpp/messagebus/test/example/server/ya.make
new file mode 100644
index 0000000000..70101f175c
--- /dev/null
+++ b/library/cpp/messagebus/test/example/server/ya.make
@@ -0,0 +1,11 @@
+PROGRAM(messagebus_example_server)
+
+PEERDIR(
+ library/cpp/messagebus/test/example/common
+)
+
+SRCS(
+ server.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/test/example/ya.make b/library/cpp/messagebus/test/example/ya.make
new file mode 100644
index 0000000000..3635124115
--- /dev/null
+++ b/library/cpp/messagebus/test/example/ya.make
@@ -0,0 +1,5 @@
+RECURSE(
+ client
+ common
+ server
+)
diff --git a/library/cpp/messagebus/test/helper/ya.make b/library/cpp/messagebus/test/helper/ya.make
new file mode 100644
index 0000000000..bf65ab4ea0
--- /dev/null
+++ b/library/cpp/messagebus/test/helper/ya.make
@@ -0,0 +1,16 @@
+LIBRARY(messagebus_test_helper)
+
+SRCS(
+ example.cpp
+ example_module.cpp
+ fixed_port.cpp
+ message_handler_error.cpp
+ hanging_server.cpp
+)
+
+PEERDIR(
+ library/cpp/messagebus/oldmodule
+ library/cpp/deprecated/atomic
+)
+
+END()
diff --git a/library/cpp/messagebus/test/perftest/ya.make b/library/cpp/messagebus/test/perftest/ya.make
new file mode 100644
index 0000000000..4e71ae64cb
--- /dev/null
+++ b/library/cpp/messagebus/test/perftest/ya.make
@@ -0,0 +1,22 @@
+PROGRAM(messagebus_perftest)
+
+PEERDIR(
+ library/cpp/deprecated/threadable
+ library/cpp/execprofile
+ library/cpp/getopt
+ library/cpp/lwtrace
+ library/cpp/messagebus
+ library/cpp/messagebus/oldmodule
+ library/cpp/messagebus/protobuf
+ library/cpp/messagebus/www
+ library/cpp/sighandler
+ library/cpp/threading/future
+)
+
+SRCS(
+ messages.proto
+ perftest.cpp
+ simple_proto.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/test/ut/ya.make b/library/cpp/messagebus/test/ut/ya.make
new file mode 100644
index 0000000000..561c6743a1
--- /dev/null
+++ b/library/cpp/messagebus/test/ut/ya.make
@@ -0,0 +1,51 @@
+UNITTEST_FOR(library/cpp/messagebus)
+
+TIMEOUT(1200)
+
+SIZE(LARGE)
+
+TAG(
+ ya:not_autocheck
+ ya:fat
+)
+
+FORK_SUBTESTS()
+
+PEERDIR(
+ library/cpp/messagebus
+ library/cpp/messagebus/test/helper
+ library/cpp/messagebus/www
+ library/cpp/resource
+ library/cpp/deprecated/atomic
+)
+
+SRCS(
+ messagebus_ut.cpp
+ module_client_ut.cpp
+ module_client_one_way_ut.cpp
+ module_server_ut.cpp
+ one_way_ut.cpp
+ starter_ut.cpp
+ sync_client_ut.cpp
+ locator_uniq_ut.cpp
+ www_ut.cpp
+ ../../async_result_ut.cpp
+ ../../cc_semaphore_ut.cpp
+ ../../coreconn_ut.cpp
+ ../../duration_histogram_ut.cpp
+ ../../message_status_counter_ut.cpp
+ ../../misc/weak_ptr_ut.cpp
+ ../../latch_ut.cpp
+ ../../lfqueue_batch_ut.cpp
+ ../../local_flags_ut.cpp
+ ../../memory_ut.cpp
+ ../../moved_ut.cpp
+ ../../netaddr_ut.cpp
+ ../../network_ut.cpp
+ ../../nondestroying_holder_ut.cpp
+ ../../scheduler_actor_ut.cpp
+ ../../socket_addr_ut.cpp
+ ../../vector_swaps_ut.cpp
+)
+
+END()
diff --git a/library/cpp/messagebus/test/ya.make b/library/cpp/messagebus/test/ya.make
new file mode 100644
index 0000000000..ec6d54b093
--- /dev/null
+++ b/library/cpp/messagebus/test/ya.make
@@ -0,0 +1,5 @@
+RECURSE(
+ example
+ perftest
+ ut
+)
diff --git a/library/cpp/messagebus/www/ya.make b/library/cpp/messagebus/www/ya.make
new file mode 100644
index 0000000000..18329845ba
--- /dev/null
+++ b/library/cpp/messagebus/www/ya.make
@@ -0,0 +1,26 @@
+LIBRARY()
+
+SRCS(
+ html_output.cpp
+ www.cpp
+)
+
+RESOURCE(
+ messagebus.js /messagebus.js
+ bus-ico.png /bus-ico.png
+)
+
+PEERDIR(
+ library/cpp/resource
+ library/cpp/cgiparam
+ library/cpp/html/pcdata
+ library/cpp/http/fetch
+ library/cpp/http/server
+ library/cpp/json/writer
+ library/cpp/messagebus
+ library/cpp/messagebus/oldmodule
+ library/cpp/monlib/deprecated/json
+ library/cpp/uri
+)
+
+END()
diff --git a/library/cpp/messagebus/ya.make b/library/cpp/messagebus/ya.make
new file mode 100644
index 0000000000..c6ee800bb8
--- /dev/null
+++ b/library/cpp/messagebus/ya.make
@@ -0,0 +1,79 @@
+LIBRARY()
+
+IF (SANITIZER_TYPE == "undefined")
+ NO_SANITIZE()
+ENDIF()
+
+SRCS(
+ acceptor.cpp
+ acceptor_status.cpp
+ connection.cpp
+ coreconn.cpp
+ duration_histogram.cpp
+ event_loop.cpp
+ futex_like.cpp
+ handler.cpp
+ key_value_printer.cpp
+ local_flags.cpp
+ locator.cpp
+ mb_lwtrace.cpp
+ message.cpp
+ message_counter.cpp
+ message_status.cpp
+ message_status_counter.cpp
+ messqueue.cpp
+ misc/atomic_box.h
+ misc/granup.h
+ misc/test_sync.h
+ misc/tokenquota.h
+ misc/weak_ptr.h
+ network.cpp
+ queue_config.cpp
+ remote_client_connection.cpp
+ remote_client_session.cpp
+ remote_client_session_semaphore.cpp
+ remote_connection.cpp
+ remote_connection_status.cpp
+ remote_server_connection.cpp
+ remote_server_session.cpp
+ remote_server_session_semaphore.cpp
+ session.cpp
+ session_impl.cpp
+ session_job_count.cpp
+ shutdown_state.cpp
+ socket_addr.cpp
+ storage.cpp
+ synchandler.cpp
+ use_after_free_checker.cpp
+ use_count_checker.cpp
+ ybus.h
+)
+
+PEERDIR(
+ contrib/libs/sparsehash
+ library/cpp/codecs
+ library/cpp/deprecated/enum_codegen
+ library/cpp/getopt/small
+ library/cpp/lwtrace
+ library/cpp/messagebus/actor
+ library/cpp/messagebus/config
+ library/cpp/messagebus/monitoring
+ library/cpp/messagebus/scheduler
+ library/cpp/string_utils/indent_text
+ library/cpp/threading/future
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE(
+ actor
+ config
+ debug_receiver
+ monitoring
+ oldmodule
+ rain_check
+ scheduler
+ test
+ www
+)
diff --git a/library/cpp/mime/types/ya.make b/library/cpp/mime/types/ya.make
new file mode 100644
index 0000000000..6c6489003b
--- /dev/null
+++ b/library/cpp/mime/types/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+SRCS(
+ mime.cpp
+)
+
+GENERATE_ENUM_SERIALIZATION(mime.h)
+
+END()
diff --git a/library/cpp/monlib/consumers/ya.make b/library/cpp/monlib/consumers/ya.make
new file mode 100644
index 0000000000..8ac0bd54e7
--- /dev/null
+++ b/library/cpp/monlib/consumers/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ collecting_consumer.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/metrics
+)
+
+END()
diff --git a/library/cpp/monlib/deprecated/json/ut/ya.make b/library/cpp/monlib/deprecated/json/ut/ya.make
new file mode 100644
index 0000000000..77930f1bf3
--- /dev/null
+++ b/library/cpp/monlib/deprecated/json/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/monlib/deprecated/json)
+
+SRCS(
+ writer_ut.cpp
+)
+
+END()
diff --git a/library/cpp/monlib/deprecated/json/ya.make b/library/cpp/monlib/deprecated/json/ya.make
new file mode 100644
index 0000000000..87f63a5c90
--- /dev/null
+++ b/library/cpp/monlib/deprecated/json/ya.make
@@ -0,0 +1,21 @@
+LIBRARY()
+
+# Deprecated writer of Solomon JSON format
+# https://wiki.yandex-team.ru/solomon/api/dataformat/json
+#
+# This writer will be deleted soon, so please consider to use
+# high level library library/cpp/monlib/encode which is decoupled from the
+# particular format.
+
+SRCS(
+ writer.h
+ writer.cpp
+)
+
+PEERDIR(
+ library/cpp/json
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/monlib/dynamic_counters/percentile/ut/ya.make b/library/cpp/monlib/dynamic_counters/percentile/ut/ya.make
new file mode 100644
index 0000000000..f97dcbd92e
--- /dev/null
+++ b/library/cpp/monlib/dynamic_counters/percentile/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/monlib/dynamic_counters/percentile)
+
+ SRCS(
+ percentile_ut.cpp
+ )
+
+END()
diff --git a/library/cpp/monlib/dynamic_counters/percentile/ya.make b/library/cpp/monlib/dynamic_counters/percentile/ya.make
new file mode 100644
index 0000000000..d6ab61f66f
--- /dev/null
+++ b/library/cpp/monlib/dynamic_counters/percentile/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+ SRCS(
+ percentile.h
+ percentile_lg.h
+ )
+
+ PEERDIR(
+ library/cpp/containers/stack_vector
+ library/cpp/monlib/dynamic_counters
+ )
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/monlib/dynamic_counters/ut/ya.make b/library/cpp/monlib/dynamic_counters/ut/ya.make
new file mode 100644
index 0000000000..9c272eaea1
--- /dev/null
+++ b/library/cpp/monlib/dynamic_counters/ut/ya.make
@@ -0,0 +1,14 @@
+UNITTEST_FOR(library/cpp/monlib/dynamic_counters)
+
+SRCS(
+ contention_ut.cpp
+ counters_ut.cpp
+ encode_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/encode/protobuf
+ library/cpp/monlib/encode/json
+)
+
+END()
diff --git a/library/cpp/monlib/dynamic_counters/ya.make b/library/cpp/monlib/dynamic_counters/ya.make
new file mode 100644
index 0000000000..67ad8e1948
--- /dev/null
+++ b/library/cpp/monlib/dynamic_counters/ya.make
@@ -0,0 +1,27 @@
+LIBRARY()
+
+NO_WSHADOW()
+
+SRCS(
+ counters.cpp
+ encode.cpp
+ golovan_page.cpp
+ page.cpp
+)
+
+PEERDIR(
+ library/cpp/containers/stack_vector
+ library/cpp/monlib/encode/json
+ library/cpp/monlib/encode/spack
+ library/cpp/monlib/encode/prometheus
+ library/cpp/monlib/service/pages
+ library/cpp/string_utils/quote
+ library/cpp/threading/light_rw_lock
+)
+
+END()
+
+RECURSE(
+ percentile
+ ut
+)
diff --git a/library/cpp/monlib/encode/buffered/ut/ya.make b/library/cpp/monlib/encode/buffered/ut/ya.make
new file mode 100644
index 0000000000..365b6e4740
--- /dev/null
+++ b/library/cpp/monlib/encode/buffered/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/monlib/encode/buffered)
+
+SRCS(
+ string_pool_ut.cpp
+)
+
+END()
diff --git a/library/cpp/monlib/encode/buffered/ya.make b/library/cpp/monlib/encode/buffered/ya.make
new file mode 100644
index 0000000000..e3d77932b1
--- /dev/null
+++ b/library/cpp/monlib/encode/buffered/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+ buffered_encoder_base.cpp
+ string_pool.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/encode
+ library/cpp/monlib/metrics
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/monlib/encode/fake/ya.make b/library/cpp/monlib/encode/fake/ya.make
new file mode 100644
index 0000000000..e5849dd8e9
--- /dev/null
+++ b/library/cpp/monlib/encode/fake/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ fake.cpp
+)
+
+END()
diff --git a/library/cpp/monlib/encode/fuzz/ya.make b/library/cpp/monlib/encode/fuzz/ya.make
new file mode 100644
index 0000000000..d9ca172bae
--- /dev/null
+++ b/library/cpp/monlib/encode/fuzz/ya.make
@@ -0,0 +1,5 @@
+RECURSE_ROOT_RELATIVE(
+ library/cpp/monlib/encode/json/fuzz
+ library/cpp/monlib/encode/prometheus/fuzz
+ library/cpp/monlib/encode/spack/fuzz
+)
diff --git a/library/cpp/monlib/encode/json/fuzz/ya.make b/library/cpp/monlib/encode/json/fuzz/ya.make
new file mode 100644
index 0000000000..545900c5c1
--- /dev/null
+++ b/library/cpp/monlib/encode/json/fuzz/ya.make
@@ -0,0 +1,14 @@
+FUZZ()
+
+PEERDIR(
+ library/cpp/monlib/encode/json
+ library/cpp/monlib/encode/fake
+)
+
+SIZE(MEDIUM)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/monlib/encode/json/ut/ya.make b/library/cpp/monlib/encode/json/ut/ya.make
new file mode 100644
index 0000000000..9be38d2fd4
--- /dev/null
+++ b/library/cpp/monlib/encode/json/ut/ya.make
@@ -0,0 +1,41 @@
+UNITTEST_FOR(library/cpp/monlib/encode/json)
+
+SRCS(
+ json_decoder_ut.cpp
+ json_ut.cpp
+)
+
+RESOURCE(
+ buffered_test.json /buffered_test.json
+ buffered_ts_merge.json /buffered_ts_merge.json
+ empty_series.json /empty_series.json
+ expected.json /expected.json
+ expected_buffered.json /expected_buffered.json
+ expected_cloud.json /expected_cloud.json
+ expected_cloud_buffered.json /expected_cloud_buffered.json
+ merged.json /merged.json
+ histogram_timeseries.json /histogram_timeseries.json
+ histogram_value.json /histogram_value.json
+ histogram_value_inf_before_bounds.json /histogram_value_inf_before_bounds.json
+ int_gauge.json /int_gauge.json
+ sensors.json /sensors.json
+ metrics.json /metrics.json
+ named_metrics.json /named_metrics.json
+ test_decode_to_encode.json /test_decode_to_encode.json
+ crash.json /crash.json
+ hist_crash.json /hist_crash.json
+ summary_value.json /summary_value.json
+ summary_inf.json /summary_inf.json
+ summary_timeseries.json /summary_timeseries.json
+ log_histogram_value.json /log_histogram_value.json
+ log_histogram_timeseries.json /log_histogram_timeseries.json
+)
+
+PEERDIR(
+ library/cpp/json
+ library/cpp/monlib/consumers
+ library/cpp/monlib/encode/protobuf
+ library/cpp/resource
+)
+
+END()
diff --git a/library/cpp/monlib/encode/json/ya.make b/library/cpp/monlib/encode/json/ya.make
new file mode 100644
index 0000000000..45997b5037
--- /dev/null
+++ b/library/cpp/monlib/encode/json/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+SRCS(
+ json_decoder.cpp
+ json_encoder.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/encode
+ library/cpp/monlib/encode/buffered
+ library/cpp/monlib/exception
+ library/cpp/json
+ library/cpp/json/writer
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/monlib/encode/legacy_protobuf/protos/ya.make b/library/cpp/monlib/encode/legacy_protobuf/protos/ya.make
new file mode 100644
index 0000000000..3623e094b5
--- /dev/null
+++ b/library/cpp/monlib/encode/legacy_protobuf/protos/ya.make
@@ -0,0 +1,11 @@
+PROTO_LIBRARY()
+
+SRCS(
+ metric_meta.proto
+)
+
+IF (NOT PY_PROTOS_FOR)
+ EXCLUDE_TAGS(GO_PROTO)
+ENDIF()
+
+END()
diff --git a/library/cpp/monlib/encode/prometheus/fuzz/ya.make b/library/cpp/monlib/encode/prometheus/fuzz/ya.make
new file mode 100644
index 0000000000..22c3ca5783
--- /dev/null
+++ b/library/cpp/monlib/encode/prometheus/fuzz/ya.make
@@ -0,0 +1,14 @@
+FUZZ()
+
+PEERDIR(
+ library/cpp/monlib/encode/prometheus
+ library/cpp/monlib/encode/fake
+)
+
+SIZE(MEDIUM)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/monlib/encode/prometheus/ut/ya.make b/library/cpp/monlib/encode/prometheus/ut/ya.make
new file mode 100644
index 0000000000..735e48d05f
--- /dev/null
+++ b/library/cpp/monlib/encode/prometheus/ut/ya.make
@@ -0,0 +1,12 @@
+UNITTEST_FOR(library/cpp/monlib/encode/prometheus)
+
+SRCS(
+ prometheus_encoder_ut.cpp
+ prometheus_decoder_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/encode/protobuf
+)
+
+END()
diff --git a/library/cpp/monlib/encode/prometheus/ya.make b/library/cpp/monlib/encode/prometheus/ya.make
new file mode 100644
index 0000000000..c43e4c5e88
--- /dev/null
+++ b/library/cpp/monlib/encode/prometheus/ya.make
@@ -0,0 +1,18 @@
+LIBRARY()
+
+SRCS(
+ prometheus_decoder.cpp
+ prometheus_encoder.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/encode
+ library/cpp/monlib/encode/buffered
+)
+
+END()
+
+RECURSE(
+ fuzz
+ ut
+)
diff --git a/library/cpp/monlib/encode/protobuf/protos/ya.make b/library/cpp/monlib/encode/protobuf/protos/ya.make
new file mode 100644
index 0000000000..a1c3ea1d58
--- /dev/null
+++ b/library/cpp/monlib/encode/protobuf/protos/ya.make
@@ -0,0 +1,9 @@
+PROTO_LIBRARY()
+
+SRCS(
+ samples.proto
+)
+
+EXCLUDE_TAGS(GO_PROTO)
+
+END()
diff --git a/library/cpp/monlib/encode/protobuf/ya.make b/library/cpp/monlib/encode/protobuf/ya.make
new file mode 100644
index 0000000000..2c11e9b793
--- /dev/null
+++ b/library/cpp/monlib/encode/protobuf/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ protobuf_encoder.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/encode
+ library/cpp/monlib/encode/protobuf/protos
+)
+
+END()
diff --git a/library/cpp/monlib/encode/spack/fuzz/ya.make b/library/cpp/monlib/encode/spack/fuzz/ya.make
new file mode 100644
index 0000000000..bacb1f50a6
--- /dev/null
+++ b/library/cpp/monlib/encode/spack/fuzz/ya.make
@@ -0,0 +1,16 @@
+FUZZ()
+
+FUZZ_OPTS(-rss_limit_mb=1024)
+
+SIZE(MEDIUM)
+
+PEERDIR(
+ library/cpp/monlib/encode/spack
+ library/cpp/monlib/encode/fake
+)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/monlib/encode/spack/ut/ya.make b/library/cpp/monlib/encode/spack/ut/ya.make
new file mode 100644
index 0000000000..ff42d19b70
--- /dev/null
+++ b/library/cpp/monlib/encode/spack/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST_FOR(library/cpp/monlib/encode/spack)
+
+SRCS(
+ spack_v1_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/encode/protobuf
+)
+
+END()
diff --git a/library/cpp/monlib/encode/spack/ya.make b/library/cpp/monlib/encode/spack/ya.make
new file mode 100644
index 0000000000..22ccf0d786
--- /dev/null
+++ b/library/cpp/monlib/encode/spack/ya.make
@@ -0,0 +1,25 @@
+LIBRARY()
+
+SRCS(
+ spack_v1_decoder.cpp
+ spack_v1_encoder.cpp
+ varint.cpp
+ compression.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/encode/buffered
+ library/cpp/monlib/exception
+
+ contrib/libs/lz4
+ contrib/libs/xxhash
+ contrib/libs/zlib
+ contrib/libs/zstd
+)
+
+END()
+
+RECURSE(
+ fuzz
+ ut
+)
diff --git a/library/cpp/monlib/encode/text/ut/ya.make b/library/cpp/monlib/encode/text/ut/ya.make
new file mode 100644
index 0000000000..beb4081959
--- /dev/null
+++ b/library/cpp/monlib/encode/text/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/monlib/encode/text)
+
+SRCS(
+ text_encoder_ut.cpp
+)
+
+END()
diff --git a/library/cpp/monlib/encode/text/ya.make b/library/cpp/monlib/encode/text/ya.make
new file mode 100644
index 0000000000..d328c1784e
--- /dev/null
+++ b/library/cpp/monlib/encode/text/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ text_encoder.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/encode
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/monlib/encode/ut/ya.make b/library/cpp/monlib/encode/ut/ya.make
new file mode 100644
index 0000000000..96e75d067c
--- /dev/null
+++ b/library/cpp/monlib/encode/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/monlib/encode)
+
+SRCS(
+ format_ut.cpp
+)
+
+END()
diff --git a/library/cpp/monlib/encode/ya.make b/library/cpp/monlib/encode/ya.make
new file mode 100644
index 0000000000..9052c73911
--- /dev/null
+++ b/library/cpp/monlib/encode/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+SRCS(
+ encoder.cpp
+ encoder_state.cpp
+ format.cpp
+)
+
+PEERDIR(
+ library/cpp/monlib/metrics
+)
+
+GENERATE_ENUM_SERIALIZATION_WITH_HEADER(encoder_state_enum.h)
+
+END()
+
+RECURSE(
+ fuzz
+ ut
+)
diff --git a/library/cpp/monlib/exception/ya.make b/library/cpp/monlib/exception/ya.make
new file mode 100644
index 0000000000..b70228efd8
--- /dev/null
+++ b/library/cpp/monlib/exception/ya.make
@@ -0,0 +1,10 @@
+LIBRARY()
+
+SRCS(
+ exception.cpp
+)
+
+PEERDIR(
+)
+
+END()
diff --git a/library/cpp/monlib/messagebus/ya.make b/library/cpp/monlib/messagebus/ya.make
new file mode 100644
index 0000000000..117ba8e992
--- /dev/null
+++ b/library/cpp/monlib/messagebus/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+ mon_messagebus.cpp
+ mon_service_messagebus.cpp
+)
+
+PEERDIR(
+ library/cpp/messagebus
+ library/cpp/messagebus/www
+ library/cpp/monlib/dynamic_counters
+)
+
+END()
diff --git a/library/cpp/monlib/metrics/ut/ya.make b/library/cpp/monlib/metrics/ut/ya.make
new file mode 100644
index 0000000000..b0f3440750
--- /dev/null
+++ b/library/cpp/monlib/metrics/ut/ya.make
@@ -0,0 +1,27 @@
+UNITTEST_FOR(library/cpp/monlib/metrics)
+
+SRCS(
+ ewma_ut.cpp
+ fake_ut.cpp
+ histogram_collector_ut.cpp
+ labels_ut.cpp
+ log_histogram_collector_ut.cpp
+ metric_registry_ut.cpp
+ metric_sub_registry_ut.cpp
+ metric_value_ut.cpp
+ summary_collector_ut.cpp
+ timer_ut.cpp
+)
+
+RESOURCE(
+ histograms.json /histograms.json
+)
+
+PEERDIR(
+ library/cpp/resource
+ library/cpp/monlib/encode/protobuf
+ library/cpp/monlib/encode/json
+ library/cpp/threading/future
+)
+
+END()
diff --git a/library/cpp/monlib/metrics/ya.make b/library/cpp/monlib/metrics/ya.make
new file mode 100644
index 0000000000..6e6997030f
--- /dev/null
+++ b/library/cpp/monlib/metrics/ya.make
@@ -0,0 +1,26 @@
+LIBRARY()
+
+GENERATE_ENUM_SERIALIZATION_WITH_HEADER(metric_value_type.h)
+
+SRCS(
+ ewma.cpp
+ fake.cpp
+ histogram_collector_explicit.cpp
+ histogram_collector_exponential.cpp
+ histogram_collector_linear.cpp
+ histogram_snapshot.cpp
+ log_histogram_snapshot.cpp
+ labels.cpp
+ metric_registry.cpp
+ metric_consumer.cpp
+ metric_type.cpp
+ metric_value.cpp
+ summary_collector.cpp
+ summary_snapshot.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/monlib/service/pages/tablesorter/ya.make b/library/cpp/monlib/service/pages/tablesorter/ya.make
new file mode 100644
index 0000000000..7906d696ae
--- /dev/null
+++ b/library/cpp/monlib/service/pages/tablesorter/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+RESOURCE(
+ resources/jquery.tablesorter.css jquery.tablesorter.css
+ resources/jquery.tablesorter.js jquery.tablesorter.js
+)
+
+PEERDIR(
+ library/cpp/monlib/dynamic_counters
+)
+
+END()
diff --git a/library/cpp/monlib/service/pages/ya.make b/library/cpp/monlib/service/pages/ya.make
new file mode 100644
index 0000000000..956530ed55
--- /dev/null
+++ b/library/cpp/monlib/service/pages/ya.make
@@ -0,0 +1,29 @@
+LIBRARY()
+
+NO_WSHADOW()
+
+SRCS(
+ diag_mon_page.cpp
+ html_mon_page.cpp
+ index_mon_page.cpp
+ mon_page.cpp
+ pre_mon_page.cpp
+ resource_mon_page.cpp
+ templates.cpp
+ version_mon_page.cpp
+ registry_mon_page.cpp
+)
+
+PEERDIR(
+ library/cpp/build_info
+ library/cpp/malloc/api
+ library/cpp/svnversion
+ library/cpp/resource
+ library/cpp/monlib/service
+ library/cpp/monlib/encode/json
+ library/cpp/monlib/encode/text
+ library/cpp/monlib/encode/spack
+ library/cpp/monlib/encode/prometheus
+)
+
+END()
diff --git a/library/cpp/monlib/service/ya.make b/library/cpp/monlib/service/ya.make
new file mode 100644
index 0000000000..b07b3c9d12
--- /dev/null
+++ b/library/cpp/monlib/service/ya.make
@@ -0,0 +1,26 @@
+LIBRARY()
+
+SRCS(
+ monservice.cpp
+ mon_service_http_request.cpp
+ service.cpp
+ format.cpp
+ auth.cpp
+)
+
+PEERDIR(
+ library/cpp/string_utils/base64
+ contrib/libs/protobuf
+ library/cpp/coroutine/engine
+ library/cpp/coroutine/listener
+ library/cpp/http/fetch
+ library/cpp/http/server
+ library/cpp/http/io
+ library/cpp/logger
+ library/cpp/malloc/api
+ library/cpp/svnversion
+ library/cpp/uri
+ library/cpp/cgiparam
+)
+
+END()
diff --git a/library/cpp/neh/asio/ya.make b/library/cpp/neh/asio/ya.make
new file mode 100644
index 0000000000..8e26bb7930
--- /dev/null
+++ b/library/cpp/neh/asio/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/libc_compat
+ library/cpp/coroutine/engine
+ library/cpp/dns
+ library/cpp/deprecated/atomic
+)
+
+SRCS(
+ asio.cpp
+ deadline_timer_impl.cpp
+ executor.cpp
+ io_service_impl.cpp
+ poll_interrupter.cpp
+ tcp_acceptor_impl.cpp
+ tcp_socket_impl.cpp
+)
+
+END()
diff --git a/library/cpp/neh/ya.make b/library/cpp/neh/ya.make
new file mode 100644
index 0000000000..f24f9fac60
--- /dev/null
+++ b/library/cpp/neh/ya.make
@@ -0,0 +1,53 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/openssl
+ library/cpp/containers/intrusive_rb_tree
+ library/cpp/coroutine/engine
+ library/cpp/coroutine/listener
+ library/cpp/dns
+ library/cpp/http/io
+ library/cpp/http/misc
+ library/cpp/http/push_parser
+ library/cpp/neh/asio
+ library/cpp/netliba/v6
+ library/cpp/openssl/init
+ library/cpp/openssl/method
+ library/cpp/threading/atomic
+ library/cpp/threading/thread_local
+ library/cpp/deprecated/atomic
+)
+
+SRCS(
+ conn_cache.cpp
+ factory.cpp
+ https.cpp
+ http_common.cpp
+ http_headers.cpp
+ http2.cpp
+ inproc.cpp
+ jobqueue.cpp
+ location.cpp
+ multi.cpp
+ multiclient.cpp
+ netliba.cpp
+ netliba_udp_http.cpp
+ neh.cpp
+ pipequeue.cpp
+ rpc.cpp
+ rq.cpp
+ smart_ptr.cpp
+ stat.cpp
+ tcp.cpp
+ tcp2.cpp
+ udp.cpp
+ utils.cpp
+)
+
+GENERATE_ENUM_SERIALIZATION(http_common.h)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/netliba/socket/ya.make b/library/cpp/netliba/socket/ya.make
new file mode 100644
index 0000000000..01ed1b5766
--- /dev/null
+++ b/library/cpp/netliba/socket/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+IF (MUSL)
+ # TODO
+ NO_COMPILER_WARNINGS()
+ENDIF()
+
+PEERDIR(
+ contrib/libs/libc_compat
+ library/cpp/threading/chunk_queue
+ library/cpp/deprecated/atomic
+)
+
+SRCS(
+ creators.cpp
+ socket.cpp
+ stdafx.cpp
+)
+
+END()
diff --git a/library/cpp/netliba/v6/ya.make b/library/cpp/netliba/v6/ya.make
new file mode 100644
index 0000000000..bb9982356c
--- /dev/null
+++ b/library/cpp/netliba/v6/ya.make
@@ -0,0 +1,44 @@
+LIBRARY()
+
+SRCS(
+ stdafx.cpp
+ udp_address.cpp
+ udp_client_server.cpp
+ udp_http.cpp
+ net_acks.cpp
+ udp_test.cpp
+ block_chain.cpp
+ net_test.cpp
+ udp_debug.cpp
+ udp_socket.cpp
+ net_queue_stat.h
+ ib_low.cpp
+ ib_buffers.cpp
+ ib_mem.cpp
+ ib_cs.cpp
+ ib_test.cpp
+ cpu_affinity.cpp
+ net_request.cpp
+ ib_collective.cpp
+ ib_memstream.cpp
+)
+
+IF (OS_LINUX AND NOT CATBOOST_OPENSOURCE)
+ PEERDIR(
+ contrib/libs/ibdrv
+ )
+ENDIF()
+
+IF (CATBOOST_OPENSOURCE)
+ CFLAGS(-DCATBOOST_OPENSOURCE=yes)
+ENDIF()
+
+PEERDIR(
+ library/cpp/binsaver
+ library/cpp/netliba/socket
+ library/cpp/string_utils/url
+ library/cpp/threading/atomic
+ library/cpp/threading/mux_event
+)
+
+END()
diff --git a/library/cpp/on_disk/chunks/ut/ya.make b/library/cpp/on_disk/chunks/ut/ya.make
new file mode 100644
index 0000000000..3289aa5074
--- /dev/null
+++ b/library/cpp/on_disk/chunks/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/on_disk/chunks)
+
+SRCS(
+ chunks_ut.cpp
+)
+
+END()
diff --git a/library/cpp/on_disk/chunks/ya.make b/library/cpp/on_disk/chunks/ya.make
new file mode 100644
index 0000000000..b67e7ec32c
--- /dev/null
+++ b/library/cpp/on_disk/chunks/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+ chunked_helpers.cpp
+ reader.cpp
+ writer.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/openssl/holders/ut/ya.make b/library/cpp/openssl/holders/ut/ya.make
new file mode 100644
index 0000000000..cae373a4a9
--- /dev/null
+++ b/library/cpp/openssl/holders/ut/ya.make
@@ -0,0 +1,8 @@
+UNITTEST_FOR(library/cpp/openssl/holders)
+
+SRCS(
+ evp_ut.cpp
+ hmac_ut.cpp
+)
+
+END()
diff --git a/library/cpp/openssl/holders/ya.make b/library/cpp/openssl/holders/ya.make
new file mode 100644
index 0000000000..07e12af1ba
--- /dev/null
+++ b/library/cpp/openssl/holders/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/openssl
+)
+
+SRCS(
+ bio.cpp
+ x509_vfy.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/openssl/init/ya.make b/library/cpp/openssl/init/ya.make
new file mode 100644
index 0000000000..1c39d27380
--- /dev/null
+++ b/library/cpp/openssl/init/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/openssl
+)
+
+SRCS(
+ init.cpp
+)
+
+END()
diff --git a/library/cpp/openssl/io/ut/ya.make b/library/cpp/openssl/io/ut/ya.make
new file mode 100644
index 0000000000..54a88ddad3
--- /dev/null
+++ b/library/cpp/openssl/io/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/openssl/io)
+
+SRCS(
+ builtin_ut.cpp
+)
+
+END()
diff --git a/library/cpp/openssl/io/ya.make b/library/cpp/openssl/io/ya.make
new file mode 100644
index 0000000000..3fbb74fb9f
--- /dev/null
+++ b/library/cpp/openssl/io/ya.make
@@ -0,0 +1,18 @@
+LIBRARY()
+
+PEERDIR(
+ certs
+ contrib/libs/openssl
+ library/cpp/openssl/init
+ library/cpp/openssl/method
+)
+
+SRCS(
+ stream.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/openssl/method/ut/ya.make b/library/cpp/openssl/method/ut/ya.make
new file mode 100644
index 0000000000..493e582a68
--- /dev/null
+++ b/library/cpp/openssl/method/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/openssl/method)
+
+SRCS(
+ io_ut.cpp
+)
+
+END()
diff --git a/library/cpp/openssl/method/ya.make b/library/cpp/openssl/method/ya.make
new file mode 100644
index 0000000000..21e5007a85
--- /dev/null
+++ b/library/cpp/openssl/method/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/openssl
+ library/cpp/openssl/holders
+)
+
+SRCS(
+ io.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/packedtypes/ut/ya.make b/library/cpp/packedtypes/ut/ya.make
new file mode 100644
index 0000000000..3254037ad8
--- /dev/null
+++ b/library/cpp/packedtypes/ut/ya.make
@@ -0,0 +1,14 @@
+UNITTEST_FOR(library/cpp/packedtypes)
+
+PEERDIR(
+ library/cpp/digest/old_crc
+)
+
+SRCS(
+ longs_ut.cpp
+ packed_ut.cpp
+ packedfloat_ut.cpp
+ zigzag_ut.cpp
+)
+
+END()
diff --git a/library/cpp/packedtypes/ya.make b/library/cpp/packedtypes/ya.make
new file mode 100644
index 0000000000..0b7e6d78fc
--- /dev/null
+++ b/library/cpp/packedtypes/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/streams/zc_memory_input
+)
+
+SRCS(
+ fixed_point.h
+ longs.cpp
+ packed.h
+ packedfloat.cpp
+ packedfloat.h
+ zigzag.h
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/packers/ut/ya.make b/library/cpp/packers/ut/ya.make
new file mode 100644
index 0000000000..0aae24a72f
--- /dev/null
+++ b/library/cpp/packers/ut/ya.make
@@ -0,0 +1,10 @@
+UNITTEST_FOR(library/cpp/packers)
+
+SRCS(
+ packers_ut.cpp
+ proto_packer_ut.cpp
+ region_packer_ut.cpp
+ test.proto
+)
+
+END()
diff --git a/library/cpp/packers/ya.make b/library/cpp/packers/ya.make
new file mode 100644
index 0000000000..87a90c822c
--- /dev/null
+++ b/library/cpp/packers/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+ packers.cpp
+ proto_packer.cpp
+ region_packer.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/pop_count/benchmark/ya.make b/library/cpp/pop_count/benchmark/ya.make
new file mode 100644
index 0000000000..e7ea9418db
--- /dev/null
+++ b/library/cpp/pop_count/benchmark/ya.make
@@ -0,0 +1,12 @@
+Y_BENCHMARK()
+
+PEERDIR(
+ util/draft
+ library/cpp/pop_count
+)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/pop_count/ut/ya.make b/library/cpp/pop_count/ut/ya.make
new file mode 100644
index 0000000000..179d47f064
--- /dev/null
+++ b/library/cpp/pop_count/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/pop_count)
+
+SRCS(
+ popcount_ut.cpp
+)
+
+END()
diff --git a/library/cpp/pop_count/ya.make b/library/cpp/pop_count/ya.make
new file mode 100644
index 0000000000..d858f3e87e
--- /dev/null
+++ b/library/cpp/pop_count/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ popcount.cpp
+)
+
+END()
+
+RECURSE(
+ benchmark
+ ut
+)
diff --git a/library/cpp/presort/ya.make b/library/cpp/presort/ya.make
new file mode 100644
index 0000000000..21204b9ef1
--- /dev/null
+++ b/library/cpp/presort/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ presort.cpp
+)
+
+END()
diff --git a/library/cpp/protobuf/interop/ut/ya.make b/library/cpp/protobuf/interop/ut/ya.make
new file mode 100644
index 0000000000..07813fe5df
--- /dev/null
+++ b/library/cpp/protobuf/interop/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST_FOR(library/cpp/protobuf/interop)
+
+SRCS(
+ cast_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/protobuf/interop
+)
+
+END()
diff --git a/library/cpp/protobuf/interop/ya.make b/library/cpp/protobuf/interop/ya.make
new file mode 100644
index 0000000000..ed6fcd65cd
--- /dev/null
+++ b/library/cpp/protobuf/interop/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ cast.cpp
+)
+
+PEERDIR(
+ contrib/libs/protobuf
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/protobuf/json/ut/ya.make b/library/cpp/protobuf/json/ut/ya.make
new file mode 100644
index 0000000000..2a5391e375
--- /dev/null
+++ b/library/cpp/protobuf/json/ut/ya.make
@@ -0,0 +1,22 @@
+UNITTEST_FOR(library/cpp/protobuf/json)
+
+SRCS(
+ filter_ut.cpp
+ json2proto_ut.cpp
+ proto2json_ut.cpp
+ inline_ut.proto
+ inline_ut.cpp
+ string_transform_ut.cpp
+ filter_ut.proto
+ test.proto
+ util_ut.cpp
+)
+
+GENERATE_ENUM_SERIALIZATION(test.pb.h)
+
+PEERDIR(
+ library/cpp/protobuf/interop
+ library/cpp/protobuf/json
+)
+
+END()
diff --git a/library/cpp/protobuf/json/ya.make b/library/cpp/protobuf/json/ya.make
new file mode 100644
index 0000000000..7dbd055a3a
--- /dev/null
+++ b/library/cpp/protobuf/json/ya.make
@@ -0,0 +1,27 @@
+LIBRARY()
+
+SRCS(
+ json2proto.cpp
+ json_output_create.cpp
+ json_value_output.cpp
+ json_writer_output.cpp
+ name_generator.cpp
+ proto2json.cpp
+ proto2json_printer.cpp
+ string_transform.cpp
+ util.h
+ util.cpp
+)
+
+PEERDIR(
+ contrib/libs/protobuf
+ library/cpp/json
+ library/cpp/protobuf/util
+ library/cpp/string_utils/relaxed_escaper
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/protobuf/util/proto/ya.make b/library/cpp/protobuf/util/proto/ya.make
new file mode 100644
index 0000000000..f3fedf54cd
--- /dev/null
+++ b/library/cpp/protobuf/util/proto/ya.make
@@ -0,0 +1,9 @@
+PROTO_LIBRARY()
+
+SRCS(
+ merge.proto
+)
+
+EXCLUDE_TAGS(GO_PROTO)
+
+END()
diff --git a/library/cpp/protobuf/util/ut/ya.make b/library/cpp/protobuf/util/ut/ya.make
new file mode 100644
index 0000000000..1f321085b1
--- /dev/null
+++ b/library/cpp/protobuf/util/ut/ya.make
@@ -0,0 +1,17 @@
+UNITTEST_FOR(library/cpp/protobuf/util)
+
+SRCS(
+ extensions.proto
+ sample_for_is_equal.proto
+ sample_for_simple_reflection.proto
+ common_ut.proto
+ pb_io_ut.cpp
+ is_equal_ut.cpp
+ iterators_ut.cpp
+ simple_reflection_ut.cpp
+ repeated_field_utils_ut.cpp
+ walk_ut.cpp
+ merge_ut.cpp
+)
+
+END()
diff --git a/library/cpp/protobuf/util/ya.make b/library/cpp/protobuf/util/ya.make
new file mode 100644
index 0000000000..98c6a0306d
--- /dev/null
+++ b/library/cpp/protobuf/util/ya.make
@@ -0,0 +1,24 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/protobuf
+ library/cpp/binsaver
+ library/cpp/protobuf/util/proto
+ library/cpp/string_utils/base64
+)
+
+SRCS(
+ is_equal.cpp
+ iterators.h
+ merge.cpp
+ path.cpp
+ pb_io.cpp
+ pb_utils.h
+ repeated_field_utils.h
+ simple_reflection.cpp
+ walk.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/pybind/ya.make b/library/cpp/pybind/ya.make
new file mode 100644
index 0000000000..9b7b3413f2
--- /dev/null
+++ b/library/cpp/pybind/ya.make
@@ -0,0 +1,14 @@
+PY23_NATIVE_LIBRARY()
+
+SRCS(
+ cast.cpp
+ pod.cpp
+ typedesc.cpp
+ module.cpp
+ exceptions.cpp
+ embedding.cpp
+ empty.cpp
+ v2.cpp
+)
+
+END()
diff --git a/library/cpp/random_provider/ya.make b/library/cpp/random_provider/ya.make
new file mode 100644
index 0000000000..f4cf8ed7df
--- /dev/null
+++ b/library/cpp/random_provider/ya.make
@@ -0,0 +1,8 @@
+LIBRARY()
+
+SRCS(
+ random_provider.cpp
+ random_provider.h
+)
+
+END()
diff --git a/library/cpp/regex/hyperscan/ut/ya.make b/library/cpp/regex/hyperscan/ut/ya.make
new file mode 100644
index 0000000000..ea5fa1b21b
--- /dev/null
+++ b/library/cpp/regex/hyperscan/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/regex/hyperscan
+)
+
+SRCS(
+ hyperscan_ut.cpp
+)
+
+END()
diff --git a/library/cpp/regex/hyperscan/ya.make b/library/cpp/regex/hyperscan/ya.make
new file mode 100644
index 0000000000..72abbef9a2
--- /dev/null
+++ b/library/cpp/regex/hyperscan/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/hyperscan
+ contrib/libs/hyperscan/runtime_core2
+ contrib/libs/hyperscan/runtime_corei7
+ contrib/libs/hyperscan/runtime_avx2
+ contrib/libs/hyperscan/runtime_avx512
+)
+
+SRCS(
+ hyperscan.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/regex/pcre/benchmark/ya.make b/library/cpp/regex/pcre/benchmark/ya.make
new file mode 100644
index 0000000000..7f138f7012
--- /dev/null
+++ b/library/cpp/regex/pcre/benchmark/ya.make
@@ -0,0 +1,12 @@
+G_BENCHMARK()
+
+PEERDIR(
+ library/cpp/regex/pcre
+)
+
+SRCS(
+ main.cpp
+)
+
+END()
+
diff --git a/library/cpp/regex/pcre/ut/ya.make b/library/cpp/regex/pcre/ut/ya.make
new file mode 100644
index 0000000000..f3742e02b8
--- /dev/null
+++ b/library/cpp/regex/pcre/ut/ya.make
@@ -0,0 +1,8 @@
+UNITTEST_FOR(library/cpp/regex/pcre)
+
+SRCS(
+ pcre_ut.cpp
+ regexp_ut.cpp
+)
+
+END()
diff --git a/library/cpp/regex/pcre/ya.make b/library/cpp/regex/pcre/ya.make
new file mode 100644
index 0000000000..a1f5f3d4d6
--- /dev/null
+++ b/library/cpp/regex/pcre/ya.make
@@ -0,0 +1,21 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/pcre
+ contrib/libs/pcre/pcre16
+ contrib/libs/pcre/pcre32
+ library/cpp/containers/stack_array
+)
+
+SRCS(
+ pcre.cpp
+ regexp.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ benchmark
+ ut
+)
+
diff --git a/library/cpp/regex/pire/inline/ya.make b/library/cpp/regex/pire/inline/ya.make
new file mode 100644
index 0000000000..fb6aab0839
--- /dev/null
+++ b/library/cpp/regex/pire/inline/ya.make
@@ -0,0 +1,17 @@
+PROGRAM(pire_inline)
+
+CFLAGS(-DPIRE_NO_CONFIG)
+
+PEERDIR(
+ ADDINCL library/cpp/regex/pire
+)
+
+SRCDIR(
+ contrib/libs/pire/pire
+)
+
+SRCS(
+ inline.l
+)
+
+END()
diff --git a/library/cpp/regex/pire/ut/ya.make b/library/cpp/regex/pire/ut/ya.make
new file mode 100644
index 0000000000..0e106cf6b3
--- /dev/null
+++ b/library/cpp/regex/pire/ut/ya.make
@@ -0,0 +1,39 @@
+# this test in not linked into build tree with ReCURSE and is built by unittest/library
+
+UNITTEST()
+
+SET(PIRETESTSDIR contrib/libs/pire/ut)
+
+CFLAGS(-DPIRE_NO_CONFIG)
+
+PEERDIR(
+ library/cpp/regex/pire
+)
+
+SRCDIR(
+ ${PIRETESTSDIR}
+)
+
+ADDINCL(
+ contrib/libs/pire/pire
+ contrib/libs/pire/ut
+)
+
+SRCS(
+ pire_ut.cpp
+ capture_ut.cpp
+ count_ut.cpp
+ glyph_ut.cpp
+ easy_ut.cpp
+ read_unicode_ut.cpp
+ regexp_ut.cpp
+ approx_matching_ut.cpp
+)
+
+SIZE(MEDIUM)
+
+TIMEOUT(600)
+
+PIRE_INLINE(inline_ut.cpp)
+
+END()
diff --git a/library/cpp/regex/pire/ya.make b/library/cpp/regex/pire/ya.make
new file mode 100644
index 0000000000..b2579a73df
--- /dev/null
+++ b/library/cpp/regex/pire/ya.make
@@ -0,0 +1,33 @@
+LIBRARY()
+
+CFLAGS(-DPIRE_NO_CONFIG)
+
+SRCDIR(contrib/libs/pire/pire)
+
+SRCS(
+ pcre2pire.cpp
+ classes.cpp
+ encoding.cpp
+ fsm.cpp
+ scanner_io.cpp
+ easy.cpp
+ scanners/null.cpp
+ extra/capture.cpp
+ extra/count.cpp
+ extra/glyphs.cpp
+ re_lexer.cpp
+ re_parser.y
+ read_unicode.cpp
+ extraencodings.cpp
+ approx_matching.cpp
+ half_final_fsm.cpp
+ minimize.h
+)
+
+PEERDIR(
+ library/cpp/charset
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/resource/ut/lib/ya.make b/library/cpp/resource/ut/lib/ya.make
new file mode 100644
index 0000000000..a6524b06b8
--- /dev/null
+++ b/library/cpp/resource/ut/lib/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+RESOURCE(
+ data /x
+)
+
+END()
diff --git a/library/cpp/resource/ut/ya.make b/library/cpp/resource/ut/ya.make
new file mode 100644
index 0000000000..a07e24f4d8
--- /dev/null
+++ b/library/cpp/resource/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/resource/ut/lib)
+
+SRCS(
+ resource_ut.cpp
+)
+
+END()
diff --git a/library/cpp/resource/ya.make b/library/cpp/resource/ya.make
new file mode 100644
index 0000000000..e6961d2bb2
--- /dev/null
+++ b/library/cpp/resource/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/blockcodecs/core
+ library/cpp/blockcodecs/codecs/zstd
+)
+
+SRCS(
+ registry.cpp
+ resource.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/retry/protos/ya.make b/library/cpp/retry/protos/ya.make
new file mode 100644
index 0000000000..5530fbfb0d
--- /dev/null
+++ b/library/cpp/retry/protos/ya.make
@@ -0,0 +1,12 @@
+PROTO_LIBRARY()
+
+SRCS(
+ retry_options.proto
+)
+
+PEERDIR()
+
+EXCLUDE_TAGS(GO_PROTO)
+
+END()
+
diff --git a/library/cpp/retry/ut/ya.make b/library/cpp/retry/ut/ya.make
new file mode 100644
index 0000000000..10825edd32
--- /dev/null
+++ b/library/cpp/retry/ut/ya.make
@@ -0,0 +1,8 @@
+UNITTEST_FOR(library/cpp/retry)
+
+SRCS(
+ retry_policy_ut.cpp
+ retry_ut.cpp
+)
+
+END()
diff --git a/library/cpp/retry/ya.make b/library/cpp/retry/ya.make
new file mode 100644
index 0000000000..8f901085b0
--- /dev/null
+++ b/library/cpp/retry/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+ retry.cpp
+ utils.cpp
+)
+
+PEERDIR(
+ library/cpp/retry/protos
+)
+
+END()
+
+RECURSE(
+ protos
+ ut
+)
diff --git a/library/cpp/scheme/tests/fuzz_json/lib/ya.make b/library/cpp/scheme/tests/fuzz_json/lib/ya.make
new file mode 100644
index 0000000000..471f9624d7
--- /dev/null
+++ b/library/cpp/scheme/tests/fuzz_json/lib/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ fuzz_json.cpp
+)
+
+PEERDIR(
+ library/cpp/scheme
+)
+
+END()
diff --git a/library/cpp/scheme/tests/fuzz_json/ya.make b/library/cpp/scheme/tests/fuzz_json/ya.make
new file mode 100644
index 0000000000..1a00d69d57
--- /dev/null
+++ b/library/cpp/scheme/tests/fuzz_json/ya.make
@@ -0,0 +1,13 @@
+FUZZ()
+
+SIZE(MEDIUM)
+
+SRCS(
+ fuzz_json.cpp
+)
+
+PEERDIR(
+ library/cpp/scheme/tests/fuzz_json/lib
+)
+
+END()
diff --git a/library/cpp/scheme/tests/fuzz_ops/lib/ya.make b/library/cpp/scheme/tests/fuzz_ops/lib/ya.make
new file mode 100644
index 0000000000..642e76862c
--- /dev/null
+++ b/library/cpp/scheme/tests/fuzz_ops/lib/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+GENERATE_ENUM_SERIALIZATION(vm_defs.h)
+
+SRCS(
+ fuzz_ops.cpp
+ vm_apply.cpp
+ vm_defs.cpp
+ vm_parse.cpp
+)
+
+PEERDIR(
+ library/cpp/scheme
+)
+
+END()
diff --git a/library/cpp/scheme/tests/fuzz_ops/ut/ya.make b/library/cpp/scheme/tests/fuzz_ops/ut/ya.make
new file mode 100644
index 0000000000..042a103867
--- /dev/null
+++ b/library/cpp/scheme/tests/fuzz_ops/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/testing/unittest
+ library/cpp/scheme
+ library/cpp/scheme/tests/fuzz_ops/lib
+)
+
+SRCS(
+ vm_parse_ut.cpp
+)
+
+END()
diff --git a/library/cpp/scheme/tests/fuzz_ops/ya.make b/library/cpp/scheme/tests/fuzz_ops/ya.make
new file mode 100644
index 0000000000..7f11242f2d
--- /dev/null
+++ b/library/cpp/scheme/tests/fuzz_ops/ya.make
@@ -0,0 +1,11 @@
+FUZZ()
+
+SRCS(
+ fuzz_ops.cpp
+)
+
+PEERDIR(
+ library/cpp/scheme/tests/fuzz_ops/lib
+)
+
+END()
diff --git a/library/cpp/scheme/tests/ut/ya.make b/library/cpp/scheme/tests/ut/ya.make
new file mode 100644
index 0000000000..ceea46500f
--- /dev/null
+++ b/library/cpp/scheme/tests/ut/ya.make
@@ -0,0 +1,22 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/protobuf/util
+ library/cpp/scheme/tests/fuzz_ops/lib
+ library/cpp/scheme/ut_utils
+ library/cpp/string_utils/quote
+ library/cpp/testing/unittest
+)
+
+SRCS(
+ fuzz_ops_found_bugs_ut.cpp
+ scheme_cast_ut.cpp
+ scheme_json_ut.cpp
+ scheme_merge_ut.cpp
+ scheme_path_ut.cpp
+ scheme_proto_ut.cpp
+ scheme_ut.cpp
+ scheme_ut.proto
+)
+
+END()
diff --git a/library/cpp/scheme/tests/ya.make b/library/cpp/scheme/tests/ya.make
new file mode 100644
index 0000000000..4e3d579127
--- /dev/null
+++ b/library/cpp/scheme/tests/ya.make
@@ -0,0 +1,6 @@
+RECURSE(
+ fuzz_json
+ fuzz_ops
+ fuzz_ops/ut
+ ut
+)
diff --git a/library/cpp/scheme/ut_utils/ya.make b/library/cpp/scheme/ut_utils/ya.make
new file mode 100644
index 0000000000..15200afca3
--- /dev/null
+++ b/library/cpp/scheme/ut_utils/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+ scheme_ut_utils.cpp
+)
+
+PEERDIR(
+ library/cpp/colorizer
+ library/cpp/json
+ library/cpp/scheme
+ library/cpp/testing/unittest
+)
+
+END()
diff --git a/library/cpp/scheme/util/ya.make b/library/cpp/scheme/util/ya.make
new file mode 100644
index 0000000000..274c481a99
--- /dev/null
+++ b/library/cpp/scheme/util/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ scheme_holder.cpp
+ utils.cpp
+)
+
+PEERDIR(
+ library/cpp/string_utils/base64
+)
+
+END()
diff --git a/library/cpp/scheme/ya.make b/library/cpp/scheme/ya.make
new file mode 100644
index 0000000000..2b6c79a2e0
--- /dev/null
+++ b/library/cpp/scheme/ya.make
@@ -0,0 +1,29 @@
+LIBRARY()
+
+SRCS(
+ scheme.cpp
+ scheme_cast.h
+ scimpl.h
+ scimpl_defs.h
+ scimpl_private.cpp
+ scimpl_protobuf.cpp
+ scimpl_select.rl6
+ scimpl_json_read.cpp
+ scimpl_json_write.cpp
+)
+
+PEERDIR(
+ contrib/libs/protobuf
+ library/cpp/json
+ library/cpp/string_utils/relaxed_escaper
+)
+
+GENERATE_ENUM_SERIALIZATION(scheme.h)
+
+END()
+
+RECURSE(
+ tests
+ ut_utils
+ util
+)
diff --git a/library/cpp/sighandler/ya.make b/library/cpp/sighandler/ya.make
new file mode 100644
index 0000000000..d303178df4
--- /dev/null
+++ b/library/cpp/sighandler/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ async_signals_handler.cpp
+ async_signals_handler.h
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
diff --git a/library/cpp/sliding_window/ut/ya.make b/library/cpp/sliding_window/ut/ya.make
new file mode 100644
index 0000000000..f38df817a9
--- /dev/null
+++ b/library/cpp/sliding_window/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/sliding_window)
+
+SRCS(
+ sliding_window_ut.cpp
+)
+
+END()
diff --git a/library/cpp/sliding_window/ya.make b/library/cpp/sliding_window/ya.make
new file mode 100644
index 0000000000..3a81e86494
--- /dev/null
+++ b/library/cpp/sliding_window/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ sliding_window.cpp
+ sliding_window.h
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/sse/ut/ya.make b/library/cpp/sse/ut/ya.make
new file mode 100644
index 0000000000..bdcbac1d69
--- /dev/null
+++ b/library/cpp/sse/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST_FOR(library/cpp/sse)
+
+SRCS(
+ test.cpp
+)
+
+IF (ARCH_X86_64)
+ CFLAGS(-msse4.1 -msse4.2)
+ENDIF()
+
+END()
diff --git a/library/cpp/sse/ya.make b/library/cpp/sse/ya.make
new file mode 100644
index 0000000000..15c7cde0c1
--- /dev/null
+++ b/library/cpp/sse/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ sse.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/streams/brotli/ut/ya.make b/library/cpp/streams/brotli/ut/ya.make
new file mode 100644
index 0000000000..ffa9c0748a
--- /dev/null
+++ b/library/cpp/streams/brotli/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/streams/brotli)
+
+SRCS(
+ brotli_ut.cpp
+)
+
+END()
diff --git a/library/cpp/streams/brotli/ya.make b/library/cpp/streams/brotli/ya.make
new file mode 100644
index 0000000000..abc1006372
--- /dev/null
+++ b/library/cpp/streams/brotli/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/brotli/enc
+ contrib/libs/brotli/dec
+)
+
+SRCS(
+ brotli.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/streams/bzip2/ut/ya.make b/library/cpp/streams/bzip2/ut/ya.make
new file mode 100644
index 0000000000..86e36216a4
--- /dev/null
+++ b/library/cpp/streams/bzip2/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/streams/bzip2)
+
+SRCS(
+ bzip2_ut.cpp
+)
+
+END()
diff --git a/library/cpp/streams/bzip2/ya.make b/library/cpp/streams/bzip2/ya.make
new file mode 100644
index 0000000000..bdbc706a86
--- /dev/null
+++ b/library/cpp/streams/bzip2/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/libbz2
+)
+
+SRCS(
+ bzip2.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/streams/lzma/ut/ya.make b/library/cpp/streams/lzma/ut/ya.make
new file mode 100644
index 0000000000..99b7e5e401
--- /dev/null
+++ b/library/cpp/streams/lzma/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/streams/lzma)
+
+SRCS(
+ lzma_ut.cpp
+)
+
+END()
diff --git a/library/cpp/streams/lzma/ya.make b/library/cpp/streams/lzma/ya.make
new file mode 100644
index 0000000000..2b2e352ebd
--- /dev/null
+++ b/library/cpp/streams/lzma/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/lzmasdk
+)
+
+SRCS(
+ lzma.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/streams/zc_memory_input/ya.make b/library/cpp/streams/zc_memory_input/ya.make
new file mode 100644
index 0000000000..3909706ffa
--- /dev/null
+++ b/library/cpp/streams/zc_memory_input/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ zc_memory_input.cpp
+)
+
+END()
diff --git a/library/cpp/streams/zstd/ut/ya.make b/library/cpp/streams/zstd/ut/ya.make
new file mode 100644
index 0000000000..3e490b9bc1
--- /dev/null
+++ b/library/cpp/streams/zstd/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/streams/zstd)
+
+SRCS(
+ zstd_ut.cpp
+)
+
+END()
diff --git a/library/cpp/streams/zstd/ya.make b/library/cpp/streams/zstd/ya.make
new file mode 100644
index 0000000000..e920a0fab4
--- /dev/null
+++ b/library/cpp/streams/zstd/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/zstd
+)
+
+SRCS(
+ zstd.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/string_utils/base64/bench/metrics/ya.make b/library/cpp/string_utils/base64/bench/metrics/ya.make
new file mode 100644
index 0000000000..d941438e1a
--- /dev/null
+++ b/library/cpp/string_utils/base64/bench/metrics/ya.make
@@ -0,0 +1,15 @@
+PY2TEST()
+
+SIZE(LARGE)
+
+TAG(
+ ya:force_sandbox
+ sb:intel_e5_2660v1
+ ya:fat
+)
+
+TEST_SRCS(main.py)
+
+DEPENDS(library/cpp/string_utils/base64/bench)
+
+END()
diff --git a/library/cpp/string_utils/base64/bench/ya.make b/library/cpp/string_utils/base64/bench/ya.make
new file mode 100644
index 0000000000..6e47492f27
--- /dev/null
+++ b/library/cpp/string_utils/base64/bench/ya.make
@@ -0,0 +1,15 @@
+Y_BENCHMARK()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/string_utils/base64
+)
+
+END()
+
+RECURSE(
+ metrics
+)
diff --git a/library/cpp/string_utils/base64/fuzz/generic/ya.make b/library/cpp/string_utils/base64/fuzz/generic/ya.make
new file mode 100644
index 0000000000..42200698ea
--- /dev/null
+++ b/library/cpp/string_utils/base64/fuzz/generic/ya.make
@@ -0,0 +1,7 @@
+FUZZ()
+
+PEERDIR(
+ library/cpp/string_utils/base64/fuzz/lib
+)
+
+END()
diff --git a/library/cpp/string_utils/base64/fuzz/lib/ya.make b/library/cpp/string_utils/base64/fuzz/lib/ya.make
new file mode 100644
index 0000000000..9ce31c3299
--- /dev/null
+++ b/library/cpp/string_utils/base64/fuzz/lib/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/string_utils/base64
+)
+
+END()
diff --git a/library/cpp/string_utils/base64/fuzz/uneven/ya.make b/library/cpp/string_utils/base64/fuzz/uneven/ya.make
new file mode 100644
index 0000000000..b43737fccf
--- /dev/null
+++ b/library/cpp/string_utils/base64/fuzz/uneven/ya.make
@@ -0,0 +1,11 @@
+FUZZ()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/string_utils/base64
+)
+
+END()
diff --git a/library/cpp/string_utils/base64/fuzz/ya.make b/library/cpp/string_utils/base64/fuzz/ya.make
new file mode 100644
index 0000000000..87a10e7ac4
--- /dev/null
+++ b/library/cpp/string_utils/base64/fuzz/ya.make
@@ -0,0 +1,5 @@
+RECURSE(
+ generic
+ lib
+ uneven
+)
diff --git a/library/cpp/string_utils/base64/ut/ya.make b/library/cpp/string_utils/base64/ut/ya.make
new file mode 100644
index 0000000000..bfab185e89
--- /dev/null
+++ b/library/cpp/string_utils/base64/ut/ya.make
@@ -0,0 +1,17 @@
+UNITTEST_FOR(library/cpp/string_utils/base64)
+
+SRCS(
+ base64_ut.cpp
+ base64_decode_uneven_ut.cpp
+)
+
+PEERDIR(
+ contrib/libs/base64/avx2
+ contrib/libs/base64/ssse3
+ contrib/libs/base64/neon32
+ contrib/libs/base64/neon64
+ contrib/libs/base64/plain32
+ contrib/libs/base64/plain64
+)
+
+END()
diff --git a/library/cpp/string_utils/base64/ya.make b/library/cpp/string_utils/base64/ya.make
new file mode 100644
index 0000000000..695da9a14b
--- /dev/null
+++ b/library/cpp/string_utils/base64/ya.make
@@ -0,0 +1,22 @@
+LIBRARY()
+
+SRCS(
+ base64.cpp
+)
+
+PEERDIR(
+ contrib/libs/base64/avx2
+ contrib/libs/base64/ssse3
+ contrib/libs/base64/neon32
+ contrib/libs/base64/neon64
+ contrib/libs/base64/plain32
+ contrib/libs/base64/plain64
+)
+
+END()
+
+RECURSE(
+ bench
+ fuzz
+ ut
+)
diff --git a/library/cpp/string_utils/csv/ya.make b/library/cpp/string_utils/csv/ya.make
new file mode 100644
index 0000000000..16682d40e5
--- /dev/null
+++ b/library/cpp/string_utils/csv/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ csv.cpp
+)
+
+END()
diff --git a/library/cpp/string_utils/indent_text/ya.make b/library/cpp/string_utils/indent_text/ya.make
new file mode 100644
index 0000000000..28a5e77cfe
--- /dev/null
+++ b/library/cpp/string_utils/indent_text/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ indent_text.cpp
+)
+
+END()
diff --git a/library/cpp/string_utils/levenshtein_diff/ut/ya.make b/library/cpp/string_utils/levenshtein_diff/ut/ya.make
new file mode 100644
index 0000000000..30ff29f97b
--- /dev/null
+++ b/library/cpp/string_utils/levenshtein_diff/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/string_utils/levenshtein_diff)
+
+SRCS(
+ levenshtein_diff_ut.cpp
+)
+
+END()
diff --git a/library/cpp/string_utils/levenshtein_diff/ya.make b/library/cpp/string_utils/levenshtein_diff/ya.make
new file mode 100644
index 0000000000..3baf79d7ad
--- /dev/null
+++ b/library/cpp/string_utils/levenshtein_diff/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ levenshtein_diff.cpp
+)
+
+PEERDIR(
+ util/draft
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/string_utils/parse_size/ut/ya.make b/library/cpp/string_utils/parse_size/ut/ya.make
new file mode 100644
index 0000000000..f570c5cfba
--- /dev/null
+++ b/library/cpp/string_utils/parse_size/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/string_utils/parse_size)
+
+SRCS(
+ parse_size_ut.cpp
+)
+
+END()
diff --git a/library/cpp/string_utils/parse_size/ya.make b/library/cpp/string_utils/parse_size/ya.make
new file mode 100644
index 0000000000..d960d156bb
--- /dev/null
+++ b/library/cpp/string_utils/parse_size/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ parse_size.cpp
+ parse_size.h
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/string_utils/quote/ut/ya.make b/library/cpp/string_utils/quote/ut/ya.make
new file mode 100644
index 0000000000..ad951b1ed1
--- /dev/null
+++ b/library/cpp/string_utils/quote/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/string_utils/quote)
+
+SRCS(
+ quote_ut.cpp
+)
+
+END()
diff --git a/library/cpp/string_utils/quote/ya.make b/library/cpp/string_utils/quote/ya.make
new file mode 100644
index 0000000000..109592c235
--- /dev/null
+++ b/library/cpp/string_utils/quote/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ quote.cpp
+ quote.h
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/string_utils/relaxed_escaper/ut/ya.make b/library/cpp/string_utils/relaxed_escaper/ut/ya.make
new file mode 100644
index 0000000000..d437907e5b
--- /dev/null
+++ b/library/cpp/string_utils/relaxed_escaper/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/string_utils/relaxed_escaper)
+
+SRCS(
+ relaxed_escaper_ut.cpp
+)
+
+END()
diff --git a/library/cpp/string_utils/relaxed_escaper/ya.make b/library/cpp/string_utils/relaxed_escaper/ya.make
new file mode 100644
index 0000000000..2f9e92a578
--- /dev/null
+++ b/library/cpp/string_utils/relaxed_escaper/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ relaxed_escaper.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/string_utils/scan/ya.make b/library/cpp/string_utils/scan/ya.make
new file mode 100644
index 0000000000..e90dbf3154
--- /dev/null
+++ b/library/cpp/string_utils/scan/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ scan.cpp
+)
+
+END()
diff --git a/library/cpp/string_utils/url/ut/ya.make b/library/cpp/string_utils/url/ut/ya.make
new file mode 100644
index 0000000000..c876bb2888
--- /dev/null
+++ b/library/cpp/string_utils/url/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/string_utils/url)
+
+SRCS(
+ url_ut.cpp
+)
+
+END()
diff --git a/library/cpp/string_utils/url/ya.make b/library/cpp/string_utils/url/ya.make
new file mode 100644
index 0000000000..bccc1c332b
--- /dev/null
+++ b/library/cpp/string_utils/url/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ url.cpp
+ url.h
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/string_utils/ztstrbuf/ya.make b/library/cpp/string_utils/ztstrbuf/ya.make
new file mode 100644
index 0000000000..019d9e890b
--- /dev/null
+++ b/library/cpp/string_utils/ztstrbuf/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ ztstrbuf.cpp
+)
+
+END()
diff --git a/library/cpp/svnversion/test/ya.make b/library/cpp/svnversion/test/ya.make
new file mode 100644
index 0000000000..e503745261
--- /dev/null
+++ b/library/cpp/svnversion/test/ya.make
@@ -0,0 +1,4 @@
+PROGRAM()
+PEERDIR(library/cpp/svnversion)
+SRCS(main.cpp)
+END()
diff --git a/library/cpp/svnversion/ya.make b/library/cpp/svnversion/ya.make
new file mode 100644
index 0000000000..3789c4b38a
--- /dev/null
+++ b/library/cpp/svnversion/ya.make
@@ -0,0 +1,10 @@
+LIBRARY()
+
+SRCS(
+ svnversion.cpp
+ svn_interface.c
+)
+END()
+RECURSE(
+ test
+)
diff --git a/library/cpp/tdigest/ya.make b/library/cpp/tdigest/ya.make
new file mode 100644
index 0000000000..2546443726
--- /dev/null
+++ b/library/cpp/tdigest/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ tdigest.cpp
+ tdigest.proto
+)
+
+PEERDIR(
+ contrib/libs/protobuf
+)
+
+END()
diff --git a/library/cpp/terminate_handler/sample/exception/ya.make b/library/cpp/terminate_handler/sample/exception/ya.make
new file mode 100644
index 0000000000..c43de8348e
--- /dev/null
+++ b/library/cpp/terminate_handler/sample/exception/ya.make
@@ -0,0 +1,11 @@
+PROGRAM(exception_sample)
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/terminate_handler
+)
+
+END()
diff --git a/library/cpp/terminate_handler/sample/pure-virtual/ya.make b/library/cpp/terminate_handler/sample/pure-virtual/ya.make
new file mode 100644
index 0000000000..ae4a907f40
--- /dev/null
+++ b/library/cpp/terminate_handler/sample/pure-virtual/ya.make
@@ -0,0 +1,11 @@
+PROGRAM()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/terminate_handler
+)
+
+END()
diff --git a/library/cpp/terminate_handler/sample/rethrow/ya.make b/library/cpp/terminate_handler/sample/rethrow/ya.make
new file mode 100644
index 0000000000..ae4a907f40
--- /dev/null
+++ b/library/cpp/terminate_handler/sample/rethrow/ya.make
@@ -0,0 +1,11 @@
+PROGRAM()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/terminate_handler
+)
+
+END()
diff --git a/library/cpp/terminate_handler/sample/segv/ya.make b/library/cpp/terminate_handler/sample/segv/ya.make
new file mode 100644
index 0000000000..ae4a907f40
--- /dev/null
+++ b/library/cpp/terminate_handler/sample/segv/ya.make
@@ -0,0 +1,11 @@
+PROGRAM()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/terminate_handler
+)
+
+END()
diff --git a/library/cpp/terminate_handler/sample/ya.make b/library/cpp/terminate_handler/sample/ya.make
new file mode 100644
index 0000000000..af089abc65
--- /dev/null
+++ b/library/cpp/terminate_handler/sample/ya.make
@@ -0,0 +1,6 @@
+RECURSE(
+ exception
+ pure-virtual
+ rethrow
+ segv
+)
diff --git a/library/cpp/terminate_handler/ya.make b/library/cpp/terminate_handler/ya.make
new file mode 100644
index 0000000000..79ce28968d
--- /dev/null
+++ b/library/cpp/terminate_handler/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ GLOBAL terminate_handler.cpp
+ segv_handler.cpp
+)
+
+END()
+
+RECURSE(
+ sample
+)
diff --git a/library/cpp/testing/benchmark/examples/metrics/ya.make b/library/cpp/testing/benchmark/examples/metrics/ya.make
new file mode 100644
index 0000000000..56eb58fc7f
--- /dev/null
+++ b/library/cpp/testing/benchmark/examples/metrics/ya.make
@@ -0,0 +1,15 @@
+PY2TEST()
+
+SIZE(LARGE)
+
+TAG(
+ ya:force_sandbox
+ sb:intel_e5_2660v1
+ ya:fat
+)
+
+TEST_SRCS(main.py)
+
+DEPENDS(library/cpp/testing/benchmark/examples)
+
+END()
diff --git a/library/cpp/testing/benchmark/examples/ya.make b/library/cpp/testing/benchmark/examples/ya.make
new file mode 100644
index 0000000000..857c43519c
--- /dev/null
+++ b/library/cpp/testing/benchmark/examples/ya.make
@@ -0,0 +1,11 @@
+Y_BENCHMARK()
+
+SRCS(
+ main.cpp
+)
+
+END()
+
+RECURSE(
+ metrics
+)
diff --git a/library/cpp/testing/benchmark/main/ya.make b/library/cpp/testing/benchmark/main/ya.make
new file mode 100644
index 0000000000..684435b94f
--- /dev/null
+++ b/library/cpp/testing/benchmark/main/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ GLOBAL main.cpp
+)
+
+PEERDIR(
+ library/cpp/testing/benchmark
+)
+
+END()
diff --git a/library/cpp/testing/benchmark/ya.make b/library/cpp/testing/benchmark/ya.make
new file mode 100644
index 0000000000..8ded7f4ec2
--- /dev/null
+++ b/library/cpp/testing/benchmark/ya.make
@@ -0,0 +1,22 @@
+LIBRARY()
+
+SRCS(
+ bench.cpp
+ dummy.cpp
+)
+
+PEERDIR(
+ contrib/libs/re2
+ library/cpp/colorizer
+ library/cpp/getopt/small
+ library/cpp/json
+ library/cpp/linear_regression
+ library/cpp/threading/poor_man_openmp
+)
+
+END()
+
+RECURSE(
+ examples
+ main
+)
diff --git a/library/cpp/testing/common/ut/ya.make b/library/cpp/testing/common/ut/ya.make
new file mode 100644
index 0000000000..100c42f835
--- /dev/null
+++ b/library/cpp/testing/common/ut/ya.make
@@ -0,0 +1,12 @@
+GTEST()
+SRCS(
+ env_ut.cpp
+ network_ut.cpp
+ scope_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/testing/common
+)
+
+END()
diff --git a/library/cpp/testing/common/ya.make b/library/cpp/testing/common/ya.make
new file mode 100644
index 0000000000..c0ec98af53
--- /dev/null
+++ b/library/cpp/testing/common/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+ env.cpp
+ network.cpp
+ probe.cpp
+ scope.cpp
+)
+
+PEERDIR(
+ library/cpp/json
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/testing/gbenchmark_main/ya.make b/library/cpp/testing/gbenchmark_main/ya.make
new file mode 100644
index 0000000000..e5fefc54d0
--- /dev/null
+++ b/library/cpp/testing/gbenchmark_main/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ contrib/libs/benchmark
+ library/cpp/testing/hook
+)
+
+END()
diff --git a/library/cpp/testing/gmock_in_unittest/example_ut/ya.make b/library/cpp/testing/gmock_in_unittest/example_ut/ya.make
new file mode 100644
index 0000000000..38d3aae811
--- /dev/null
+++ b/library/cpp/testing/gmock_in_unittest/example_ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/testing/gmock_in_unittest
+)
+
+SRCS(
+ example_ut.cpp
+)
+
+END()
diff --git a/library/cpp/testing/gmock_in_unittest/ya.make b/library/cpp/testing/gmock_in_unittest/ya.make
new file mode 100644
index 0000000000..cd2fa65b48
--- /dev/null
+++ b/library/cpp/testing/gmock_in_unittest/ya.make
@@ -0,0 +1,19 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/restricted/googletest/googlemock
+ contrib/restricted/googletest/googletest
+ library/cpp/testing/gtest_extensions
+ library/cpp/testing/unittest
+)
+
+SRCS(
+ events.cpp
+ GLOBAL registration.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ example_ut
+)
diff --git a/library/cpp/testing/gtest/ut/ya.make b/library/cpp/testing/gtest/ut/ya.make
new file mode 100644
index 0000000000..d06bbefd49
--- /dev/null
+++ b/library/cpp/testing/gtest/ut/ya.make
@@ -0,0 +1,15 @@
+GTEST()
+SRCS(
+ matchers_ut.cpp
+ ut.cpp
+)
+
+DATA(
+ arcadia/library/cpp/testing/gtest/ut/golden
+)
+
+PEERDIR(
+ library/cpp/testing/hook
+)
+
+END()
diff --git a/library/cpp/testing/gtest/ya.make b/library/cpp/testing/gtest/ya.make
new file mode 100644
index 0000000000..74beb1a051
--- /dev/null
+++ b/library/cpp/testing/gtest/ya.make
@@ -0,0 +1,22 @@
+LIBRARY()
+
+PROVIDES(test_framework)
+
+SRCS(
+ gtest.cpp
+ main.cpp
+ matchers.cpp
+)
+
+PEERDIR(
+ contrib/restricted/googletest/googlemock
+ contrib/restricted/googletest/googletest
+ library/cpp/string_utils/relaxed_escaper
+ library/cpp/testing/common
+ library/cpp/testing/gtest_extensions
+ library/cpp/testing/hook
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/testing/gtest_extensions/ut/ya.make b/library/cpp/testing/gtest_extensions/ut/ya.make
new file mode 100644
index 0000000000..61c20583b4
--- /dev/null
+++ b/library/cpp/testing/gtest_extensions/ut/ya.make
@@ -0,0 +1,11 @@
+GTEST()
+SRCS(
+ gtest_extensions_ut.cpp
+ probe_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/testing/gtest_extensions
+)
+
+END()
diff --git a/library/cpp/testing/gtest_extensions/ya.make b/library/cpp/testing/gtest_extensions/ya.make
new file mode 100644
index 0000000000..e954914d78
--- /dev/null
+++ b/library/cpp/testing/gtest_extensions/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+PEERDIR(
+ contrib/restricted/googletest/googlemock
+ contrib/restricted/googletest/googletest
+)
+
+SRCS(
+ assertions.cpp
+ gtest_extensions.cpp
+ matchers.cpp
+ pretty_printers.cpp
+ probe.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/testing/gtest_main/ya.make b/library/cpp/testing/gtest_main/ya.make
new file mode 100644
index 0000000000..e005ab9237
--- /dev/null
+++ b/library/cpp/testing/gtest_main/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/testing/gtest
+)
+
+END()
diff --git a/library/cpp/testing/hook/ya.make b/library/cpp/testing/hook/ya.make
new file mode 100644
index 0000000000..a5935ceb87
--- /dev/null
+++ b/library/cpp/testing/hook/ya.make
@@ -0,0 +1,6 @@
+LIBRARY()
+SRCS(
+ hook.cpp
+)
+
+END()
diff --git a/library/cpp/testing/mock_server/ya.make b/library/cpp/testing/mock_server/ya.make
new file mode 100644
index 0000000000..4b9fc8371d
--- /dev/null
+++ b/library/cpp/testing/mock_server/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/http/misc
+ library/cpp/http/server
+)
+
+SRCS(
+ server.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/testing/unittest/fat/ya.make b/library/cpp/testing/unittest/fat/ya.make
new file mode 100644
index 0000000000..464f26818f
--- /dev/null
+++ b/library/cpp/testing/unittest/fat/ya.make
@@ -0,0 +1,17 @@
+UNITTEST()
+
+SRCS(
+ test_port_manager.cpp
+)
+
+SIZE(LARGE)
+
+# We need to run tests at the same time on the single machine
+FORK_SUBTESTS()
+
+TAG(
+ ya:fat
+ ya:force_sandbox
+)
+
+END()
diff --git a/library/cpp/testing/unittest/pytests/test_subject/ya.make b/library/cpp/testing/unittest/pytests/test_subject/ya.make
new file mode 100644
index 0000000000..c9990b674f
--- /dev/null
+++ b/library/cpp/testing/unittest/pytests/test_subject/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+TAG(ya:manual)
+
+SRCS(
+ tests.cpp
+)
+
+PEERDIR(
+ library/cpp/testing/unittest
+)
+
+END()
diff --git a/library/cpp/testing/unittest/pytests/ya.make b/library/cpp/testing/unittest/pytests/ya.make
new file mode 100644
index 0000000000..bbc1c9dec3
--- /dev/null
+++ b/library/cpp/testing/unittest/pytests/ya.make
@@ -0,0 +1,21 @@
+PY3TEST()
+
+SIZE(MEDIUM)
+
+TEST_SRCS(
+ test_tear_down.py
+)
+
+PEERDIR(
+ library/python/testing/yatest_common
+)
+
+DEPENDS(
+ library/cpp/testing/unittest/pytests/test_subject
+)
+
+END()
+
+RECURSE(
+ test_subject
+)
diff --git a/library/cpp/testing/unittest/ut/ya.make b/library/cpp/testing/unittest/ut/ya.make
new file mode 100644
index 0000000000..86efa0d788
--- /dev/null
+++ b/library/cpp/testing/unittest/ut/ya.make
@@ -0,0 +1,8 @@
+UNITTEST_FOR(library/cpp/testing/unittest)
+
+SRCS(
+ main.cpp
+ registar_ut.cpp
+)
+
+END()
diff --git a/library/cpp/testing/unittest/ya.make b/library/cpp/testing/unittest/ya.make
new file mode 100644
index 0000000000..74bc67e83f
--- /dev/null
+++ b/library/cpp/testing/unittest/ya.make
@@ -0,0 +1,29 @@
+LIBRARY()
+
+PROVIDES(test_framework)
+
+PEERDIR(
+ library/cpp/colorizer
+ library/cpp/dbg_output
+ library/cpp/diff
+ library/cpp/json/writer
+ library/cpp/testing/common
+ library/cpp/testing/hook
+)
+
+SRCS(
+ gtest.cpp
+ checks.cpp
+ plugin.cpp
+ registar.cpp
+ tests_data.cpp
+ utmain.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ fat
+ pytests
+ ut
+)
diff --git a/library/cpp/testing/unittest_main/ya.make b/library/cpp/testing/unittest_main/ya.make
new file mode 100644
index 0000000000..8502296143
--- /dev/null
+++ b/library/cpp/testing/unittest_main/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/testing/unittest
+ library/cpp/terminate_handler
+)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/threading/atomic/ut/ya.make b/library/cpp/threading/atomic/ut/ya.make
new file mode 100644
index 0000000000..fe2a5ac8f9
--- /dev/null
+++ b/library/cpp/threading/atomic/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/threading/atomic)
+
+SRCS(
+ bool_ut.cpp
+)
+
+END()
diff --git a/library/cpp/threading/atomic/ya.make b/library/cpp/threading/atomic/ya.make
new file mode 100644
index 0000000000..e4dd81d9d3
--- /dev/null
+++ b/library/cpp/threading/atomic/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ bool.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/threading/chunk_queue/ut/ya.make b/library/cpp/threading/chunk_queue/ut/ya.make
new file mode 100644
index 0000000000..a58422ce02
--- /dev/null
+++ b/library/cpp/threading/chunk_queue/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/threading/chunk_queue)
+
+SRCS(
+ queue_ut.cpp
+)
+
+END()
diff --git a/library/cpp/threading/chunk_queue/ya.make b/library/cpp/threading/chunk_queue/ya.make
new file mode 100644
index 0000000000..a0d7c556ef
--- /dev/null
+++ b/library/cpp/threading/chunk_queue/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ queue.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/threading/equeue/ut/ya.make b/library/cpp/threading/equeue/ut/ya.make
new file mode 100644
index 0000000000..60bc0aa604
--- /dev/null
+++ b/library/cpp/threading/equeue/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+PEERDIR(
+ ADDINCL library/cpp/threading/equeue
+)
+
+SRCDIR(library/cpp/threading/equeue)
+
+SRCS(
+ equeue_ut.cpp
+)
+
+END()
diff --git a/library/cpp/threading/equeue/ya.make b/library/cpp/threading/equeue/ya.make
new file mode 100644
index 0000000000..445797aa12
--- /dev/null
+++ b/library/cpp/threading/equeue/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+ equeue.h
+ equeue.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/threading/future/mt_ut/ya.make b/library/cpp/threading/future/mt_ut/ya.make
new file mode 100644
index 0000000000..fee088813a
--- /dev/null
+++ b/library/cpp/threading/future/mt_ut/ya.make
@@ -0,0 +1,12 @@
+UNITTEST_FOR(library/cpp/threading/future)
+
+SRCS(
+ future_mt_ut.cpp
+)
+
+IF(SANITIZER_TYPE)
+ SIZE(MEDIUM)
+ENDIF()
+
+
+END()
diff --git a/library/cpp/threading/future/perf/ya.make b/library/cpp/threading/future/perf/ya.make
new file mode 100644
index 0000000000..0677420107
--- /dev/null
+++ b/library/cpp/threading/future/perf/ya.make
@@ -0,0 +1,11 @@
+Y_BENCHMARK(library-threading-future-perf)
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/threading/future
+)
+
+END()
diff --git a/library/cpp/threading/future/ut/ya.make b/library/cpp/threading/future/ut/ya.make
new file mode 100644
index 0000000000..7b18274169
--- /dev/null
+++ b/library/cpp/threading/future/ut/ya.make
@@ -0,0 +1,10 @@
+UNITTEST_FOR(library/cpp/threading/future)
+
+SRCS(
+ async_semaphore_ut.cpp
+ async_ut.cpp
+ future_ut.cpp
+ legacy_future_ut.cpp
+)
+
+END()
diff --git a/library/cpp/threading/future/ya.make b/library/cpp/threading/future/ya.make
new file mode 100644
index 0000000000..32b54ff518
--- /dev/null
+++ b/library/cpp/threading/future/ya.make
@@ -0,0 +1,25 @@
+SUBSCRIBER(
+ swarmer
+)
+
+LIBRARY()
+
+SRCS(
+ async_semaphore.cpp
+ async.cpp
+ core/future.cpp
+ core/fwd.cpp
+ fwd.cpp
+ wait/fwd.cpp
+ wait/wait.cpp
+ wait/wait_group.cpp
+ wait/wait_policy.cpp
+)
+
+END()
+
+RECURSE(
+ mt_ut
+ perf
+ ut
+)
diff --git a/library/cpp/threading/hot_swap/ya.make b/library/cpp/threading/hot_swap/ya.make
new file mode 100644
index 0000000000..82eb6490a4
--- /dev/null
+++ b/library/cpp/threading/hot_swap/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ hot_swap.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
diff --git a/library/cpp/threading/light_rw_lock/bench/ya.make b/library/cpp/threading/light_rw_lock/bench/ya.make
new file mode 100644
index 0000000000..297cfe1d0a
--- /dev/null
+++ b/library/cpp/threading/light_rw_lock/bench/ya.make
@@ -0,0 +1,11 @@
+PROGRAM(lightrwlock_test)
+
+SRCS(
+ lightrwlock_test.cpp
+)
+
+PEERDIR(
+ library/cpp/threading/light_rw_lock
+)
+
+END()
diff --git a/library/cpp/threading/light_rw_lock/ut/ya.make b/library/cpp/threading/light_rw_lock/ut/ya.make
new file mode 100644
index 0000000000..780dd65803
--- /dev/null
+++ b/library/cpp/threading/light_rw_lock/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST_FOR(library/cpp/threading/light_rw_lock)
+
+SRCS(
+ rwlock_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
diff --git a/library/cpp/threading/light_rw_lock/ya.make b/library/cpp/threading/light_rw_lock/ya.make
new file mode 100644
index 0000000000..a2452336c3
--- /dev/null
+++ b/library/cpp/threading/light_rw_lock/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+ lightrwlock.cpp
+ lightrwlock.h
+)
+
+END()
+
+RECURSE(
+ bench
+ ut
+)
diff --git a/library/cpp/threading/local_executor/ut/ya.make b/library/cpp/threading/local_executor/ut/ya.make
new file mode 100644
index 0000000000..c571115f60
--- /dev/null
+++ b/library/cpp/threading/local_executor/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/threading/local_executor)
+
+SRCS(
+ local_executor_ut.cpp
+)
+
+END()
diff --git a/library/cpp/threading/local_executor/ya.make b/library/cpp/threading/local_executor/ya.make
new file mode 100644
index 0000000000..2ccaa3031a
--- /dev/null
+++ b/library/cpp/threading/local_executor/ya.make
@@ -0,0 +1,18 @@
+LIBRARY()
+
+SRCS(
+ local_executor.cpp
+ tbb_local_executor.cpp
+)
+
+PEERDIR(
+ contrib/libs/tbb
+ library/cpp/threading/future
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/threading/mux_event/ya.make b/library/cpp/threading/mux_event/ya.make
new file mode 100644
index 0000000000..0e112b5ef9
--- /dev/null
+++ b/library/cpp/threading/mux_event/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ mux_event.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
diff --git a/library/cpp/threading/poor_man_openmp/ut/ya.make b/library/cpp/threading/poor_man_openmp/ut/ya.make
new file mode 100644
index 0000000000..570b8788f0
--- /dev/null
+++ b/library/cpp/threading/poor_man_openmp/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/threading/poor_man_openmp)
+
+SRCS(
+ thread_helper_ut.cpp
+)
+
+END()
diff --git a/library/cpp/threading/poor_man_openmp/ya.make b/library/cpp/threading/poor_man_openmp/ya.make
new file mode 100644
index 0000000000..976b2b6b3c
--- /dev/null
+++ b/library/cpp/threading/poor_man_openmp/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ thread_helper.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/threading/queue/ut/ya.make b/library/cpp/threading/queue/ut/ya.make
new file mode 100644
index 0000000000..28246305df
--- /dev/null
+++ b/library/cpp/threading/queue/ut/ya.make
@@ -0,0 +1,14 @@
+UNITTEST_FOR(library/cpp/threading/queue)
+
+ALLOCATOR(B)
+
+SRCS(
+ basic_ut.cpp
+ queue_ut.cpp
+ tune_ut.cpp
+ unordered_ut.cpp
+ ut_helpers.cpp
+ ut_helpers.h
+)
+
+END()
diff --git a/library/cpp/threading/queue/ya.make b/library/cpp/threading/queue/ya.make
new file mode 100644
index 0000000000..507c80b072
--- /dev/null
+++ b/library/cpp/threading/queue/ya.make
@@ -0,0 +1,24 @@
+LIBRARY()
+
+SRCS(
+ mpmc_unordered_ring.cpp
+ mpmc_unordered_ring.h
+ mpsc_htswap.cpp
+ mpsc_htswap.h
+ mpsc_intrusive_unordered.cpp
+ mpsc_intrusive_unordered.h
+ mpsc_read_as_filled.cpp
+ mpsc_read_as_filled.h
+ mpsc_vinfarr_obstructive.cpp
+ mpsc_vinfarr_obstructive.h
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/threading/skip_list/perf/ya.make b/library/cpp/threading/skip_list/perf/ya.make
new file mode 100644
index 0000000000..476d2eaff4
--- /dev/null
+++ b/library/cpp/threading/skip_list/perf/ya.make
@@ -0,0 +1,13 @@
+PROGRAM(skiplist-perf)
+
+PEERDIR(
+ library/cpp/charset
+ library/cpp/getopt/small
+ library/cpp/threading/skip_list
+)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/threading/skip_list/ut/ya.make b/library/cpp/threading/skip_list/ut/ya.make
new file mode 100644
index 0000000000..6748e4e43a
--- /dev/null
+++ b/library/cpp/threading/skip_list/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/threading/skip_list)
+
+SRCS(
+ skiplist_ut.cpp
+)
+
+END()
diff --git a/library/cpp/threading/skip_list/ya.make b/library/cpp/threading/skip_list/ya.make
new file mode 100644
index 0000000000..0c3f91046e
--- /dev/null
+++ b/library/cpp/threading/skip_list/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+ skiplist.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE(
+ perf
+ ut
+)
diff --git a/library/cpp/threading/task_scheduler/ut/ya.make b/library/cpp/threading/task_scheduler/ut/ya.make
new file mode 100644
index 0000000000..93e77b8e9a
--- /dev/null
+++ b/library/cpp/threading/task_scheduler/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/threading/task_scheduler)
+
+SRCS(
+ task_scheduler_ut.cpp
+)
+
+END()
diff --git a/library/cpp/threading/task_scheduler/ya.make b/library/cpp/threading/task_scheduler/ya.make
new file mode 100644
index 0000000000..33cb6bba2f
--- /dev/null
+++ b/library/cpp/threading/task_scheduler/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ task_scheduler.cpp
+)
+
+PEERDIR(
+ library/cpp/deprecated/atomic
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/threading/thread_local/ya.make b/library/cpp/threading/thread_local/ya.make
new file mode 100644
index 0000000000..676381ab0f
--- /dev/null
+++ b/library/cpp/threading/thread_local/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/threading/hot_swap
+ library/cpp/threading/skip_list
+)
+
+GENERATE_ENUM_SERIALIZATION(thread_local.h)
+
+SRCS(thread_local.cpp)
+
+END()
diff --git a/library/cpp/time_provider/ya.make b/library/cpp/time_provider/ya.make
new file mode 100644
index 0000000000..3f7f4b3601
--- /dev/null
+++ b/library/cpp/time_provider/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+SRCS(
+ monotonic.cpp
+ time_provider.cpp
+ monotonic_provider.cpp
+)
+
+END()
diff --git a/library/cpp/timezone_conversion/ut/ya.make b/library/cpp/timezone_conversion/ut/ya.make
new file mode 100644
index 0000000000..1c797135bf
--- /dev/null
+++ b/library/cpp/timezone_conversion/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/testing/unittest
+ library/cpp/timezone_conversion
+)
+
+SRCS(
+ convert_ut.cpp
+ civil_ut.cpp
+)
+
+END()
diff --git a/library/cpp/timezone_conversion/ya.make b/library/cpp/timezone_conversion/ya.make
new file mode 100644
index 0000000000..8ccc87db1c
--- /dev/null
+++ b/library/cpp/timezone_conversion/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/cctz/tzdata
+ util/draft
+)
+
+SRCS(
+ convert.cpp
+ civil.cpp
+)
+
+GENERATE_ENUM_SERIALIZATION(civil.h)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/cpp/tld/ut/ya.make b/library/cpp/tld/ut/ya.make
new file mode 100644
index 0000000000..9b2516e259
--- /dev/null
+++ b/library/cpp/tld/ut/ya.make
@@ -0,0 +1,13 @@
+UNITTEST()
+
+PEERDIR(
+ ADDINCL library/cpp/tld
+)
+
+SRCDIR(library/cpp/tld)
+
+SRCS(
+ tld_ut.cpp
+)
+
+END()
diff --git a/library/cpp/tld/ya.make b/library/cpp/tld/ya.make
new file mode 100644
index 0000000000..64815a2a0c
--- /dev/null
+++ b/library/cpp/tld/ya.make
@@ -0,0 +1,21 @@
+LIBRARY()
+
+RUN_PYTHON3(
+ gen_tld.py tlds-alpha-by-domain.txt
+ IN tlds-alpha-by-domain.txt
+ STDOUT tld.inc
+)
+
+SRCS(
+ tld.cpp
+)
+
+PEERDIR(
+ library/cpp/digest/lower_case
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/unicode/normalization/ut/ya.make b/library/cpp/unicode/normalization/ut/ya.make
new file mode 100644
index 0000000000..3cd271e620
--- /dev/null
+++ b/library/cpp/unicode/normalization/ut/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+PEERDIR(
+ library/cpp/unicode/normalization
+)
+
+SRCS(
+ normalization_ut.cpp
+)
+
+END()
diff --git a/library/cpp/unicode/normalization/ya.make b/library/cpp/unicode/normalization/ya.make
new file mode 100644
index 0000000000..0646cfb8b0
--- /dev/null
+++ b/library/cpp/unicode/normalization/ya.make
@@ -0,0 +1,26 @@
+LIBRARY()
+
+NO_UTIL()
+
+SRCS(
+ generated/composition.cpp
+ generated/decomposition.cpp
+ decomposition_table.h
+ normalization.cpp
+)
+
+IF(NOT OPENSOURCE)
+ SRCS(
+ custom_encoder.cpp
+ )
+ PEERDIR(
+ library/cpp/charset
+ )
+ GENERATE_ENUM_SERIALIZATION(normalization.h)
+ENDIF()
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/unicode/punycode/ut/ya.make b/library/cpp/unicode/punycode/ut/ya.make
new file mode 100644
index 0000000000..b242ab48cc
--- /dev/null
+++ b/library/cpp/unicode/punycode/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/unicode/punycode)
+
+SRCS(
+ punycode_ut.cpp
+)
+
+END()
diff --git a/library/cpp/unicode/punycode/ya.make b/library/cpp/unicode/punycode/ya.make
new file mode 100644
index 0000000000..4c5effa07b
--- /dev/null
+++ b/library/cpp/unicode/punycode/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/libidn
+)
+
+SRCS(
+ punycode.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/unicode/set/ya.make b/library/cpp/unicode/set/ya.make
new file mode 100644
index 0000000000..b06845f923
--- /dev/null
+++ b/library/cpp/unicode/set/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+ set.cpp
+ quoted_pair.cpp
+ unicode_set.cpp
+ unicode_set_parser.cpp
+ unicode_set_token.cpp
+ generated/category_ranges.cpp
+ unicode_set_lexer.rl6
+)
+
+GENERATE_ENUM_SERIALIZATION(unicode_set_token.h)
+
+END()
diff --git a/library/cpp/unified_agent_client/examples/ua_grpc_client/ya.make b/library/cpp/unified_agent_client/examples/ua_grpc_client/ya.make
new file mode 100644
index 0000000000..7700d7b49a
--- /dev/null
+++ b/library/cpp/unified_agent_client/examples/ua_grpc_client/ya.make
@@ -0,0 +1,12 @@
+PROGRAM(ua_grpc_client)
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ library/cpp/unified_agent_client
+ library/cpp/getopt
+)
+
+END()
diff --git a/library/cpp/unified_agent_client/examples/ya.make b/library/cpp/unified_agent_client/examples/ya.make
new file mode 100644
index 0000000000..6162b86b84
--- /dev/null
+++ b/library/cpp/unified_agent_client/examples/ya.make
@@ -0,0 +1,3 @@
+RECURSE(
+ ua_grpc_client
+)
diff --git a/library/cpp/unified_agent_client/proto/ya.make b/library/cpp/unified_agent_client/proto/ya.make
new file mode 100644
index 0000000000..fe017da6d5
--- /dev/null
+++ b/library/cpp/unified_agent_client/proto/ya.make
@@ -0,0 +1,13 @@
+PROTO_LIBRARY()
+
+INCLUDE_TAGS(GO_PROTO)
+
+GRPC()
+
+SRCS(
+ unified_agent.proto
+)
+
+GENERATE_ENUM_SERIALIZATION(unified_agent.pb.h)
+
+END()
diff --git a/library/cpp/unified_agent_client/ya.make b/library/cpp/unified_agent_client/ya.make
new file mode 100644
index 0000000000..6771471974
--- /dev/null
+++ b/library/cpp/unified_agent_client/ya.make
@@ -0,0 +1,38 @@
+LIBRARY()
+
+ADDINCL(
+ contrib/libs/grpc
+ contrib/libs/grpc/include
+)
+
+SRCS(
+ backend.cpp
+ backend_creator.cpp
+ client_impl.cpp
+ counters.cpp
+ helpers.cpp
+ grpc_io.cpp
+ grpc_status_code.cpp
+ clock.cpp
+ duration_counter.cpp
+ logger.cpp
+ throttling.cpp
+ proto_weighing.cpp
+ GLOBAL registrar.cpp
+)
+
+PEERDIR(
+ contrib/libs/grpc
+ library/cpp/logger/global
+ library/cpp/threading/future
+ library/cpp/monlib/dynamic_counters
+ library/cpp/unified_agent_client/proto
+)
+
+GENERATE_ENUM_SERIALIZATION(grpc_io.h)
+
+END()
+
+RECURSE(
+ examples
+)
diff --git a/library/cpp/uri/benchmark/ya.make b/library/cpp/uri/benchmark/ya.make
new file mode 100644
index 0000000000..6822537c45
--- /dev/null
+++ b/library/cpp/uri/benchmark/ya.make
@@ -0,0 +1,12 @@
+Y_BENCHMARK()
+
+PEERDIR(
+ library/cpp/testing/benchmark
+ library/cpp/uri
+)
+
+SRCS(
+ main.cpp
+)
+
+END()
diff --git a/library/cpp/uri/ut/ya.make b/library/cpp/uri/ut/ya.make
new file mode 100644
index 0000000000..e990749721
--- /dev/null
+++ b/library/cpp/uri/ut/ya.make
@@ -0,0 +1,17 @@
+UNITTEST_FOR(library/cpp/uri)
+
+NO_OPTIMIZE()
+
+NO_WSHADOW()
+
+PEERDIR(
+ library/cpp/html/entity
+)
+
+SRCS(
+ location_ut.cpp
+ uri-ru_ut.cpp
+ uri_ut.cpp
+)
+
+END()
diff --git a/library/cpp/uri/ya.make b/library/cpp/uri/ya.make
new file mode 100644
index 0000000000..4b75161555
--- /dev/null
+++ b/library/cpp/uri/ya.make
@@ -0,0 +1,27 @@
+LIBRARY()
+
+SRCS(
+ assign.cpp
+ common.cpp
+ encode.cpp
+ http_url.h
+ location.cpp
+ other.cpp
+ parse.cpp
+ qargs.cpp
+ uri.cpp
+ encodefsm.rl6
+ parsefsm.rl6
+)
+
+PEERDIR(
+ contrib/libs/libidn
+ library/cpp/charset
+)
+
+END()
+
+RECURSE(
+ benchmark
+ ut
+)
diff --git a/library/cpp/xml/document/ut/ya.make b/library/cpp/xml/document/ut/ya.make
new file mode 100644
index 0000000000..0ddf387bcb
--- /dev/null
+++ b/library/cpp/xml/document/ut/ya.make
@@ -0,0 +1,9 @@
+UNITTEST_FOR(library/cpp/xml/document)
+
+SRCS(
+ xml-document_ut.cpp
+ xml-textreader_ut.cpp
+ xml-options_ut.cpp
+)
+
+END()
diff --git a/library/cpp/xml/document/ya.make b/library/cpp/xml/document/ya.make
new file mode 100644
index 0000000000..f95e0bbf07
--- /dev/null
+++ b/library/cpp/xml/document/ya.make
@@ -0,0 +1,19 @@
+LIBRARY()
+
+SRCS(
+ xml-document.cpp
+ xml-textreader.cpp
+ xml-options.cpp
+)
+
+PEERDIR(
+ library/cpp/xml/init
+ contrib/libs/libxml
+ library/cpp/string_utils/ztstrbuf
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/xml/init/ya.make b/library/cpp/xml/init/ya.make
new file mode 100644
index 0000000000..1df06392e3
--- /dev/null
+++ b/library/cpp/xml/init/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/libxml
+ library/cpp/charset
+)
+
+SRCS(
+ ptr.cpp
+ init.cpp
+)
+
+END()
diff --git a/library/cpp/yaml/as/ut/ya.make b/library/cpp/yaml/as/ut/ya.make
new file mode 100644
index 0000000000..e254b4c076
--- /dev/null
+++ b/library/cpp/yaml/as/ut/ya.make
@@ -0,0 +1,12 @@
+UNITTEST()
+
+SRCS(
+ tstring_test.cpp
+)
+
+PEERDIR(
+ contrib/libs/yaml-cpp
+ library/cpp/yaml/as
+)
+
+END()
diff --git a/library/cpp/yaml/as/ya.make b/library/cpp/yaml/as/ya.make
new file mode 100644
index 0000000000..3cc3bf754f
--- /dev/null
+++ b/library/cpp/yaml/as/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+PEERDIR(
+ contrib/libs/yaml-cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/yaml/fyamlcpp/ut/ya.make b/library/cpp/yaml/fyamlcpp/ut/ya.make
new file mode 100644
index 0000000000..1ac2b25438
--- /dev/null
+++ b/library/cpp/yaml/fyamlcpp/ut/ya.make
@@ -0,0 +1,9 @@
+UNITTEST_FOR(library/cpp/yaml/fyamlcpp)
+
+SRCS(
+ fyamlcpp_ut.cpp
+ libfyaml_ut.cpp
+)
+
+END()
+
diff --git a/library/cpp/yaml/fyamlcpp/ya.make b/library/cpp/yaml/fyamlcpp/ya.make
new file mode 100644
index 0000000000..06ce8066ee
--- /dev/null
+++ b/library/cpp/yaml/fyamlcpp/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+ fyamlcpp.cpp
+ fyamlcpp.h
+)
+
+PEERDIR(
+ contrib/libs/libfyaml
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/yconf/patcher/ya.make b/library/cpp/yconf/patcher/ya.make
new file mode 100644
index 0000000000..a3888c4f3b
--- /dev/null
+++ b/library/cpp/yconf/patcher/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/json
+ library/cpp/yconf
+)
+
+SRCS(
+ config_patcher.cpp
+ unstrict_config.cpp
+)
+
+END()
diff --git a/library/cpp/yconf/ya.make b/library/cpp/yconf/ya.make
new file mode 100644
index 0000000000..a444e5e057
--- /dev/null
+++ b/library/cpp/yconf/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ conf.cpp
+)
+
+PEERDIR(
+ library/cpp/charset
+ library/cpp/logger
+)
+
+END()
diff --git a/library/cpp/yson/json/ya.make b/library/cpp/yson/json/ya.make
new file mode 100644
index 0000000000..cdf7bd2b10
--- /dev/null
+++ b/library/cpp/yson/json/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+ json_writer.cpp
+ yson2json_adapter.cpp
+)
+
+PEERDIR(
+ library/cpp/json
+)
+
+END()
diff --git a/library/cpp/yson/node/benchmark/ya.make b/library/cpp/yson/node/benchmark/ya.make
new file mode 100644
index 0000000000..dd2035b1fa
--- /dev/null
+++ b/library/cpp/yson/node/benchmark/ya.make
@@ -0,0 +1,13 @@
+G_BENCHMARK()
+
+SRCS(
+ reserve.cpp
+)
+
+PEERDIR(
+ library/cpp/yson/node
+)
+
+SIZE(SMALL)
+
+END()
diff --git a/library/cpp/yson/node/ut/ya.make b/library/cpp/yson/node/ut/ya.make
new file mode 100644
index 0000000000..a3f79f7403
--- /dev/null
+++ b/library/cpp/yson/node/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(library/cpp/yson/node)
+
+SRCS(
+ node_ut.cpp
+)
+
+END()
diff --git a/library/cpp/yson/node/ya.make b/library/cpp/yson/node/ya.make
new file mode 100644
index 0000000000..18fcd10168
--- /dev/null
+++ b/library/cpp/yson/node/ya.make
@@ -0,0 +1,23 @@
+LIBRARY()
+
+GENERATE_ENUM_SERIALIZATION(node.h)
+
+PEERDIR(
+ library/cpp/yson
+ library/cpp/yson/json
+)
+
+SRCS(
+ node.cpp
+ node_io.cpp
+ node_builder.cpp
+ node_visitor.cpp
+ serialize.cpp
+)
+
+END()
+
+RECURSE(
+ benchmark
+ ut
+)
diff --git a/library/cpp/yson/ut/ya.make b/library/cpp/yson/ut/ya.make
new file mode 100644
index 0000000000..489735f772
--- /dev/null
+++ b/library/cpp/yson/ut/ya.make
@@ -0,0 +1,11 @@
+GTEST()
+
+SRCS(
+ yson_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/yson
+)
+
+END()
diff --git a/library/cpp/yson/ya.make b/library/cpp/yson/ya.make
new file mode 100644
index 0000000000..cc973356bd
--- /dev/null
+++ b/library/cpp/yson/ya.make
@@ -0,0 +1,22 @@
+LIBRARY()
+
+PEERDIR(
+ library/cpp/yt/misc
+ library/cpp/yt/yson
+)
+
+SRCS(
+ consumer.cpp
+ lexer.cpp
+ parser.cpp
+ token.cpp
+ tokenizer.cpp
+ varint.cpp
+ writer.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/yson_pull/ut/ya.make b/library/cpp/yson_pull/ut/ya.make
new file mode 100644
index 0000000000..04b6a7e713
--- /dev/null
+++ b/library/cpp/yson_pull/ut/ya.make
@@ -0,0 +1,10 @@
+UNITTEST_FOR(library/cpp/yson_pull)
+
+SRCS(
+ cescape_ut.cpp
+ reader_ut.cpp
+ writer_ut.cpp
+ loop_ut.cpp
+)
+
+END()
diff --git a/library/cpp/yson_pull/ya.make b/library/cpp/yson_pull/ya.make
new file mode 100644
index 0000000000..bbe2f23d03
--- /dev/null
+++ b/library/cpp/yson_pull/ya.make
@@ -0,0 +1,23 @@
+LIBRARY(yson_pull)
+
+SRCS(
+ consumer.cpp
+ event.cpp
+ exceptions.cpp
+ input.cpp
+ output.cpp
+ read_ops.cpp
+ reader.cpp
+ scalar.cpp
+ writer.cpp
+)
+
+GENERATE_ENUM_SERIALIZATION(event.h)
+
+GENERATE_ENUM_SERIALIZATION(scalar.h)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/cpp/yt/assert/ya.make b/library/cpp/yt/assert/ya.make
new file mode 100644
index 0000000000..a9833ab70e
--- /dev/null
+++ b/library/cpp/yt/assert/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ assert.cpp
+)
+
+END()
diff --git a/library/cpp/yt/coding/unittests/ya.make b/library/cpp/yt/coding/unittests/ya.make
new file mode 100644
index 0000000000..ab94ee8796
--- /dev/null
+++ b/library/cpp/yt/coding/unittests/ya.make
@@ -0,0 +1,15 @@
+GTEST()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ zig_zag_ut.cpp
+ varint_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/coding
+ library/cpp/testing/gtest
+)
+
+END()
diff --git a/library/cpp/yt/coding/ya.make b/library/cpp/yt/coding/ya.make
new file mode 100644
index 0000000000..639d94e755
--- /dev/null
+++ b/library/cpp/yt/coding/ya.make
@@ -0,0 +1,22 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+)
+
+PEERDIR(
+ library/cpp/yt/exception
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ unittests
+)
+
+IF (NOT OPENSOURCE)
+ RECURSE(
+ benchmark
+ )
+ENDIF()
diff --git a/library/cpp/yt/containers/ya.make b/library/cpp/yt/containers/ya.make
new file mode 100644
index 0000000000..fbc70dbd7c
--- /dev/null
+++ b/library/cpp/yt/containers/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+)
+
+PEERDIR(
+ library/cpp/yt/assert
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ unittests
+)
diff --git a/library/cpp/yt/cpu_clock/ya.make b/library/cpp/yt/cpu_clock/ya.make
new file mode 100644
index 0000000000..60ea0e940e
--- /dev/null
+++ b/library/cpp/yt/cpu_clock/ya.make
@@ -0,0 +1,21 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ clock.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/assert
+)
+
+END()
+
+RECURSE(
+ benchmark
+)
+
+RECURSE_FOR_TESTS(
+ unittests
+)
diff --git a/library/cpp/yt/exception/ya.make b/library/cpp/yt/exception/ya.make
new file mode 100644
index 0000000000..ff0014adcf
--- /dev/null
+++ b/library/cpp/yt/exception/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ exception.cpp
+)
+
+END()
diff --git a/library/cpp/yt/malloc/ya.make b/library/cpp/yt/malloc/ya.make
new file mode 100644
index 0000000000..252f7f7b3d
--- /dev/null
+++ b/library/cpp/yt/malloc/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ malloc.cpp
+)
+
+END()
diff --git a/library/cpp/yt/memory/unittests/ya.make b/library/cpp/yt/memory/unittests/ya.make
new file mode 100644
index 0000000000..ff0e639819
--- /dev/null
+++ b/library/cpp/yt/memory/unittests/ya.make
@@ -0,0 +1,22 @@
+GTEST(unittester-library-memory)
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+IF (NOT OS_WINDOWS)
+ ALLOCATOR(YT)
+ENDIF()
+
+SRCS(
+ atomic_intrusive_ptr_ut.cpp
+ chunked_memory_pool_ut.cpp
+ chunked_memory_pool_output_ut.cpp
+ intrusive_ptr_ut.cpp
+ weak_ptr_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/testing/gtest
+ library/cpp/yt/memory
+)
+
+END()
diff --git a/library/cpp/yt/memory/ya.make b/library/cpp/yt/memory/ya.make
new file mode 100644
index 0000000000..c83121673d
--- /dev/null
+++ b/library/cpp/yt/memory/ya.make
@@ -0,0 +1,38 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ blob.cpp
+ chunked_input_stream.cpp
+ chunked_memory_allocator.cpp
+ chunked_memory_pool.cpp
+ chunked_memory_pool_output.cpp
+ chunked_output_stream.cpp
+ ref.cpp
+ ref_tracked.cpp
+ shared_range.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/assert
+ library/cpp/yt/misc
+ library/cpp/yt/malloc
+)
+
+CHECK_DEPENDENT_DIRS(
+ ALLOW_ONLY ALL
+ build
+ contrib
+ library
+ util
+ library/cpp/yt/assert
+ library/cpp/yt/misc
+ library/cpp/yt/malloc
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ unittests
+)
diff --git a/library/cpp/yt/misc/unittests/ya.make b/library/cpp/yt/misc/unittests/ya.make
new file mode 100644
index 0000000000..bc985812ed
--- /dev/null
+++ b/library/cpp/yt/misc/unittests/ya.make
@@ -0,0 +1,15 @@
+GTEST(unittester-library-misc)
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ enum_ut.cpp
+ guid_ut.cpp
+ preprocessor_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/misc
+)
+
+END()
diff --git a/library/cpp/yt/misc/ya.make b/library/cpp/yt/misc/ya.make
new file mode 100644
index 0000000000..6b3605f387
--- /dev/null
+++ b/library/cpp/yt/misc/ya.make
@@ -0,0 +1,28 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ guid.cpp
+ source_location.cpp
+ variant.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/exception
+)
+
+CHECK_DEPENDENT_DIRS(
+ ALLOW_ONLY ALL
+ build
+ contrib
+ library
+ util
+ yt/yt/library/small_containers
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ unittests
+)
diff --git a/library/cpp/yt/small_containers/unittests/ya.make b/library/cpp/yt/small_containers/unittests/ya.make
new file mode 100644
index 0000000000..bf3deade90
--- /dev/null
+++ b/library/cpp/yt/small_containers/unittests/ya.make
@@ -0,0 +1,17 @@
+GTEST(unittester-small-containers)
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ compact_flat_map_ut.cpp
+ compact_heap_ut.cpp
+ compact_set_ut.cpp
+ compact_vector_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/small_containers
+ library/cpp/testing/gtest
+)
+
+END()
diff --git a/library/cpp/yt/small_containers/ya.make b/library/cpp/yt/small_containers/ya.make
new file mode 100644
index 0000000000..a8bf8029d0
--- /dev/null
+++ b/library/cpp/yt/small_containers/ya.make
@@ -0,0 +1,22 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+PEERDIR(
+ library/cpp/yt/assert
+ library/cpp/yt/malloc
+)
+
+CHECK_DEPENDENT_DIRS(
+ ALLOW_ONLY ALL
+ build
+ contrib
+ library
+ util
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ unittests
+)
diff --git a/library/cpp/yt/string/unittests/ya.make b/library/cpp/yt/string/unittests/ya.make
new file mode 100644
index 0000000000..8fd64d3662
--- /dev/null
+++ b/library/cpp/yt/string/unittests/ya.make
@@ -0,0 +1,17 @@
+GTEST(unittester-library-string)
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ enum_ut.cpp
+ format_ut.cpp
+ guid_ut.cpp
+ string_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/string
+ library/cpp/testing/gtest
+)
+
+END()
diff --git a/library/cpp/yt/string/ya.make b/library/cpp/yt/string/ya.make
new file mode 100644
index 0000000000..95b07ee0d1
--- /dev/null
+++ b/library/cpp/yt/string/ya.make
@@ -0,0 +1,34 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ enum.cpp
+ guid.cpp
+ string.cpp
+ format.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/assert
+ library/cpp/yt/exception
+ library/cpp/yt/misc
+ library/cpp/yt/small_containers
+)
+
+CHECK_DEPENDENT_DIRS(
+ ALLOW_ONLY ALL
+ build
+ contrib
+ library
+ util
+ library/cpp/yt/assert
+ library/cpp/yt/misc
+ library/cpp/yt/small_containers
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ unittests
+)
diff --git a/library/cpp/yt/system/ya.make b/library/cpp/yt/system/ya.make
new file mode 100644
index 0000000000..22aab5151e
--- /dev/null
+++ b/library/cpp/yt/system/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ thread_id.cpp
+)
+
+END()
diff --git a/library/cpp/yt/threading/ya.make b/library/cpp/yt/threading/ya.make
new file mode 100644
index 0000000000..5c1f3d1408
--- /dev/null
+++ b/library/cpp/yt/threading/ya.make
@@ -0,0 +1,29 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ at_fork.cpp
+ event_count.cpp
+ fork_aware_spin_lock.cpp
+ fork_aware_rw_spin_lock.cpp
+ futex.cpp
+ public.cpp
+ recursive_spin_lock.cpp
+ rw_spin_lock.cpp
+ spin_lock_base.cpp
+ spin_lock.cpp
+ spin_wait.cpp
+ spin_wait_hook.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/assert
+ library/cpp/yt/cpu_clock
+ library/cpp/yt/system
+ library/cpp/yt/memory
+)
+
+END()
+
+RECURSE_FOR_TESTS(unittests)
diff --git a/library/cpp/yt/yson/ya.make b/library/cpp/yt/yson/ya.make
new file mode 100644
index 0000000000..f8bd9fc15d
--- /dev/null
+++ b/library/cpp/yt/yson/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ consumer.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/yson_string
+)
+
+END()
diff --git a/library/cpp/yt/yson_string/unittests/ya.make b/library/cpp/yt/yson_string/unittests/ya.make
new file mode 100644
index 0000000000..f301e5b438
--- /dev/null
+++ b/library/cpp/yt/yson_string/unittests/ya.make
@@ -0,0 +1,15 @@
+GTEST()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ convert_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/yson_string
+ library/cpp/testing/gtest
+ library/cpp/testing/gtest_extensions
+)
+
+END()
diff --git a/library/cpp/yt/yson_string/ya.make b/library/cpp/yt/yson_string/ya.make
new file mode 100644
index 0000000000..ba693760f1
--- /dev/null
+++ b/library/cpp/yt/yson_string/ya.make
@@ -0,0 +1,23 @@
+LIBRARY()
+
+INCLUDE(${ARCADIA_ROOT}/library/cpp/yt/ya_cpp.make.inc)
+
+SRCS(
+ convert.cpp
+ string.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/assert
+ library/cpp/yt/coding
+ library/cpp/yt/exception
+ library/cpp/yt/string
+ library/cpp/yt/memory
+ library/cpp/yt/misc
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ unittests
+)
diff --git a/library/cpp/ytalloc/api/ya.make b/library/cpp/ytalloc/api/ya.make
new file mode 100644
index 0000000000..7e7852df14
--- /dev/null
+++ b/library/cpp/ytalloc/api/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+ fallback.cpp
+)
+
+PEERDIR(
+ library/cpp/yt/misc
+)
+
+END()
diff --git a/library/cpp/ytalloc/impl/ya.make b/library/cpp/ytalloc/impl/ya.make
new file mode 100644
index 0000000000..2c2fb44023
--- /dev/null
+++ b/library/cpp/ytalloc/impl/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+ bridge.cpp
+)
+
+PEERDIR(
+ library/cpp/malloc/api
+ library/cpp/yt/containers
+ library/cpp/yt/threading
+)
+
+END()
diff --git a/library/go/core/buildinfo/ya.make b/library/go/core/buildinfo/ya.make
new file mode 100644
index 0000000000..5b0ae3c638
--- /dev/null
+++ b/library/go/core/buildinfo/ya.make
@@ -0,0 +1,7 @@
+GO_LIBRARY()
+
+SRCS(buildinfo.go)
+
+END()
+
+RECURSE(test)
diff --git a/library/python/archive/ya.make b/library/python/archive/ya.make
new file mode 100644
index 0000000000..daddfcc7bd
--- /dev/null
+++ b/library/python/archive/ya.make
@@ -0,0 +1,14 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+PEERDIR(
+ contrib/python/python-libarchive
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ benchmark
+ test
+)
diff --git a/library/python/certifi/ya.make b/library/python/certifi/ya.make
new file mode 100644
index 0000000000..ba8f150ea0
--- /dev/null
+++ b/library/python/certifi/ya.make
@@ -0,0 +1,16 @@
+PY23_LIBRARY()
+
+RESOURCE_FILES(
+ PREFIX library/python/certifi/
+ .dist-info/METADATA
+ .dist-info/top_level.txt
+)
+
+PY_SRCS(
+ TOP_LEVEL
+ certifi/__init__.py
+ certifi/binary.py
+ certifi/source.py
+)
+
+END()
diff --git a/library/python/cityhash/ya.make b/library/python/cityhash/ya.make
new file mode 100644
index 0000000000..41ba7449fc
--- /dev/null
+++ b/library/python/cityhash/ya.make
@@ -0,0 +1,12 @@
+PY23_LIBRARY()
+
+SRCS(
+ hash.cpp
+)
+
+PY_SRCS(
+ TOP_LEVEL
+ cityhash.pyx
+)
+
+END()
diff --git a/library/python/codecs/ya.make b/library/python/codecs/ya.make
new file mode 100644
index 0000000000..f42d115d5d
--- /dev/null
+++ b/library/python/codecs/ya.make
@@ -0,0 +1,16 @@
+PY23_LIBRARY()
+
+PEERDIR(
+ library/cpp/blockcodecs
+ contrib/python/six
+)
+
+PY_SRCS(
+ __init__.py
+)
+
+BUILDWITH_CYTHON_CPP(__codecs.pyx)
+
+PY_REGISTER(__codecs)
+
+END()
diff --git a/library/python/compress/ya.make b/library/python/compress/ya.make
new file mode 100644
index 0000000000..e0b5dbe9e0
--- /dev/null
+++ b/library/python/compress/ya.make
@@ -0,0 +1,12 @@
+PY23_LIBRARY()
+
+PEERDIR(
+ library/python/codecs
+ library/python/par_apply
+)
+
+PY_SRCS(
+ __init__.py
+)
+
+END()
diff --git a/library/python/cores/ya.make b/library/python/cores/ya.make
new file mode 100644
index 0000000000..0a828cb58b
--- /dev/null
+++ b/library/python/cores/ya.make
@@ -0,0 +1,10 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+PEERDIR(
+ contrib/python/six
+ library/python/reservoir_sampling
+)
+
+END()
diff --git a/library/python/filelock/ya.make b/library/python/filelock/ya.make
new file mode 100644
index 0000000000..00302eb3d8
--- /dev/null
+++ b/library/python/filelock/ya.make
@@ -0,0 +1,9 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+PEERDIR(
+ library/python/windows
+)
+
+END()
diff --git a/library/python/find_root/ya.make b/library/python/find_root/ya.make
new file mode 100644
index 0000000000..3582136180
--- /dev/null
+++ b/library/python/find_root/ya.make
@@ -0,0 +1,5 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+END()
diff --git a/library/python/fs/test/ya.make b/library/python/fs/test/ya.make
new file mode 100644
index 0000000000..e5e1b738b6
--- /dev/null
+++ b/library/python/fs/test/ya.make
@@ -0,0 +1,12 @@
+PY23_TEST()
+
+TEST_SRCS(
+ test_fs.py
+)
+
+PEERDIR(
+ library/python/fs
+ library/python/tmp
+)
+
+END()
diff --git a/library/python/fs/ya.make b/library/python/fs/ya.make
new file mode 100644
index 0000000000..836f49b6d8
--- /dev/null
+++ b/library/python/fs/ya.make
@@ -0,0 +1,21 @@
+PY23_LIBRARY()
+
+PY_SRCS(
+ __init__.py
+)
+
+IF (OS_DARWIN)
+ PY_SRCS(
+ clonefile.pyx
+ )
+ENDIF()
+
+PEERDIR(
+ library/python/func
+ library/python/strings
+ library/python/windows
+)
+
+END()
+
+RECURSE_FOR_TESTS(test)
diff --git a/library/python/func/ut/ya.make b/library/python/func/ut/ya.make
new file mode 100644
index 0000000000..4e8f326de7
--- /dev/null
+++ b/library/python/func/ut/ya.make
@@ -0,0 +1,9 @@
+PY23_TEST()
+
+TEST_SRCS(test_func.py)
+
+PEERDIR(
+ library/python/func
+)
+
+END()
diff --git a/library/python/func/ya.make b/library/python/func/ya.make
new file mode 100644
index 0000000000..47ab634913
--- /dev/null
+++ b/library/python/func/ya.make
@@ -0,0 +1,9 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/python/import_test/ya.make b/library/python/import_test/ya.make
new file mode 100644
index 0000000000..11e098cfe6
--- /dev/null
+++ b/library/python/import_test/ya.make
@@ -0,0 +1,9 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+PEERDIR(
+ library/python/testing/import_test
+)
+
+END()
diff --git a/library/python/json/ya.make b/library/python/json/ya.make
new file mode 100644
index 0000000000..74a82de9d8
--- /dev/null
+++ b/library/python/json/ya.make
@@ -0,0 +1,17 @@
+PY23_LIBRARY()
+
+PEERDIR(
+ contrib/python/simplejson
+ library/cpp/json/fast_sax
+)
+
+PY_SRCS(
+ __init__.py
+ loads.pyx
+)
+
+SRCS(
+ loads.cpp
+)
+
+END()
diff --git a/library/python/par_apply/ya.make b/library/python/par_apply/ya.make
new file mode 100644
index 0000000000..b14592ab79
--- /dev/null
+++ b/library/python/par_apply/ya.make
@@ -0,0 +1,11 @@
+PY23_LIBRARY()
+
+PEERDIR(
+ contrib/python/six
+)
+
+PY_SRCS(
+ __init__.py
+)
+
+END()
diff --git a/library/python/pytest/plugins/ya.make b/library/python/pytest/plugins/ya.make
new file mode 100644
index 0000000000..41e20f6e2f
--- /dev/null
+++ b/library/python/pytest/plugins/ya.make
@@ -0,0 +1,32 @@
+PY23_LIBRARY()
+
+PY_SRCS(
+ ya.py
+ collection.py
+ conftests.py
+ fixtures.py
+ metrics.py
+)
+
+PEERDIR(
+ library/python/filelock
+ library/python/find_root
+ library/python/testing/filter
+ library/python/testing/yatest_common
+)
+
+IF (PYTHON2)
+ PY_SRCS(
+ fakeid_py2.py
+ )
+
+ PEERDIR(
+ contrib/deprecated/python/faulthandler
+ )
+ELSE()
+ PY_SRCS(
+ fakeid_py3.py
+ )
+ENDIF()
+
+END()
diff --git a/library/python/pytest/ut/ya.make b/library/python/pytest/ut/ya.make
new file mode 100644
index 0000000000..bb94c24c70
--- /dev/null
+++ b/library/python/pytest/ut/ya.make
@@ -0,0 +1,14 @@
+PY23_TEST()
+
+TEST_SRCS(
+ test_tools.py
+)
+
+PEERDIR(
+ contrib/python/pytest-mock
+ library/python/pytest
+)
+
+STYLE_PYTHON()
+
+END()
diff --git a/library/python/pytest/ya.make b/library/python/pytest/ya.make
new file mode 100644
index 0000000000..b04788cc47
--- /dev/null
+++ b/library/python/pytest/ya.make
@@ -0,0 +1,36 @@
+PY23_LIBRARY()
+
+PY_SRCS(
+ __init__.py
+ config.py
+ context.py
+ main.py
+ rewrite.py
+ yatest_tools.py
+)
+
+PEERDIR(
+ contrib/python/python-dateutil
+ contrib/python/ipdb
+ contrib/python/py
+ contrib/python/pytest
+ contrib/python/requests
+ library/python/pytest/plugins
+ library/python/testing/yatest_common
+ library/python/testing/yatest_lib
+)
+
+IF (NOT OPENSOURCE)
+ PEERDIR(contrib/tools/gprof2dot)
+ENDIF()
+
+RESOURCE_FILES(
+ PREFIX library/python/pytest/
+ pytest.yatest.ini
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/library/python/reservoir_sampling/ya.make b/library/python/reservoir_sampling/ya.make
new file mode 100644
index 0000000000..3582136180
--- /dev/null
+++ b/library/python/reservoir_sampling/ya.make
@@ -0,0 +1,5 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+END()
diff --git a/library/python/resource/ut/lib/ya.make b/library/python/resource/ut/lib/ya.make
new file mode 100644
index 0000000000..f5e28cad29
--- /dev/null
+++ b/library/python/resource/ut/lib/ya.make
@@ -0,0 +1,15 @@
+PY23_LIBRARY()
+
+TEST_SRCS(test_simple.py)
+
+PEERDIR(
+ library/python/resource
+)
+
+RESOURCE(
+ qw.txt /qw.txt
+ qw.txt /prefix/1.txt
+ qw.txt /prefix/2.txt
+)
+
+END()
diff --git a/library/python/resource/ut/py2/ya.make b/library/python/resource/ut/py2/ya.make
new file mode 100644
index 0000000000..073e4a68ac
--- /dev/null
+++ b/library/python/resource/ut/py2/ya.make
@@ -0,0 +1,7 @@
+PY2TEST()
+
+PEERDIR(
+ library/python/resource/ut/lib
+)
+
+END()
diff --git a/library/python/resource/ut/py3/ya.make b/library/python/resource/ut/py3/ya.make
new file mode 100644
index 0000000000..6525628592
--- /dev/null
+++ b/library/python/resource/ut/py3/ya.make
@@ -0,0 +1,7 @@
+PY3TEST()
+
+PEERDIR(
+ library/python/resource/ut/lib
+)
+
+END()
diff --git a/library/python/resource/ut/ya.make b/library/python/resource/ut/ya.make
new file mode 100644
index 0000000000..4cedc9fb3e
--- /dev/null
+++ b/library/python/resource/ut/ya.make
@@ -0,0 +1,4 @@
+RECURSE(
+ py2
+ py3
+)
diff --git a/library/python/resource/ya.make b/library/python/resource/ya.make
new file mode 100644
index 0000000000..2642f0b42b
--- /dev/null
+++ b/library/python/resource/ya.make
@@ -0,0 +1,11 @@
+PY23_LIBRARY()
+
+PEERDIR(
+ contrib/python/six
+)
+
+PY_SRCS(__init__.py)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/python/retry/ya.make b/library/python/retry/ya.make
new file mode 100644
index 0000000000..3582136180
--- /dev/null
+++ b/library/python/retry/ya.make
@@ -0,0 +1,5 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+END()
diff --git a/library/python/strings/ut/ya.make b/library/python/strings/ut/ya.make
new file mode 100644
index 0000000000..df95e366fa
--- /dev/null
+++ b/library/python/strings/ut/ya.make
@@ -0,0 +1,11 @@
+PY23_TEST()
+
+TEST_SRCS(test_strings.py)
+
+PEERDIR(
+ library/python/strings
+)
+
+STYLE_PYTHON()
+
+END()
diff --git a/library/python/strings/ya.make b/library/python/strings/ya.make
new file mode 100644
index 0000000000..1cd6137b7e
--- /dev/null
+++ b/library/python/strings/ya.make
@@ -0,0 +1,20 @@
+PY23_LIBRARY()
+
+PY_SRCS(
+ __init__.py
+ CYTHONIZE_PY
+ strings.py
+)
+
+PEERDIR(
+ library/python/func
+ contrib/python/six
+)
+
+STYLE_PYTHON()
+
+END()
+
+RECURSE(
+ ut
+)
diff --git a/library/python/svn_version/ya.make b/library/python/svn_version/ya.make
new file mode 100644
index 0000000000..f168ea4a94
--- /dev/null
+++ b/library/python/svn_version/ya.make
@@ -0,0 +1,13 @@
+PY23_LIBRARY()
+
+PEERDIR(
+ library/cpp/svnversion
+ contrib/python/future
+)
+
+PY_SRCS(
+ __init__.py
+ __svn_version.pyx
+)
+
+END()
diff --git a/library/python/symbols/libc/ya.make b/library/python/symbols/libc/ya.make
new file mode 100644
index 0000000000..1aa4d90ac8
--- /dev/null
+++ b/library/python/symbols/libc/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+PEERDIR(
+ library/python/symbols/registry
+)
+
+IF (GCC OR CLANG)
+ CFLAGS(
+ -Wno-deprecated-declarations # For sem_getvalue.
+ )
+ENDIF()
+
+SRCS(
+ GLOBAL syms.cpp
+)
+
+END()
diff --git a/library/python/symbols/module/ya.make b/library/python/symbols/module/ya.make
new file mode 100644
index 0000000000..87bcd72b4a
--- /dev/null
+++ b/library/python/symbols/module/ya.make
@@ -0,0 +1,21 @@
+PY23_LIBRARY()
+
+NO_PYTHON_INCLUDES()
+
+PEERDIR(
+ contrib/libs/python/Include
+)
+
+SRCS(
+ module.cpp
+)
+
+PY_REGISTER(
+ library.python.symbols.module.syms
+)
+
+PY_SRCS(
+ __init__.py
+)
+
+END()
diff --git a/library/python/symbols/python/ut/py2/ya.make b/library/python/symbols/python/ut/py2/ya.make
new file mode 100644
index 0000000000..991cbedf65
--- /dev/null
+++ b/library/python/symbols/python/ut/py2/ya.make
@@ -0,0 +1,7 @@
+PY2TEST()
+
+PEERDIR(
+ library/python/symbols/python/ut
+)
+
+END()
diff --git a/library/python/symbols/python/ut/py3/ya.make b/library/python/symbols/python/ut/py3/ya.make
new file mode 100644
index 0000000000..e5542a6c4e
--- /dev/null
+++ b/library/python/symbols/python/ut/py3/ya.make
@@ -0,0 +1,7 @@
+PY3TEST()
+
+PEERDIR(
+ library/python/symbols/python/ut
+)
+
+END()
diff --git a/library/python/symbols/python/ut/ya.make b/library/python/symbols/python/ut/ya.make
new file mode 100644
index 0000000000..933c81781f
--- /dev/null
+++ b/library/python/symbols/python/ut/ya.make
@@ -0,0 +1,14 @@
+PY23_LIBRARY()
+
+TEST_SRCS(test_ctypes.py)
+
+PEERDIR(
+ library/python/symbols/python
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ py2
+ py3
+)
diff --git a/library/python/symbols/python/ya.make b/library/python/symbols/python/ya.make
new file mode 100644
index 0000000000..e19c591608
--- /dev/null
+++ b/library/python/symbols/python/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+ library/python/symbols/registry
+)
+
+SRCS(
+ GLOBAL syms.cpp
+)
+
+END()
+
+RECURSE_FOR_TESTS(ut)
diff --git a/library/python/symbols/registry/ya.make b/library/python/symbols/registry/ya.make
new file mode 100644
index 0000000000..16cf260372
--- /dev/null
+++ b/library/python/symbols/registry/ya.make
@@ -0,0 +1,7 @@
+LIBRARY()
+
+SRCS(
+ syms.cpp
+)
+
+END()
diff --git a/library/python/symbols/win_unicode_console/ya.make b/library/python/symbols/win_unicode_console/ya.make
new file mode 100644
index 0000000000..f1fe4ad2ce
--- /dev/null
+++ b/library/python/symbols/win_unicode_console/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+PEERDIR(
+ library/python/symbols/registry
+)
+
+SRCS(
+ GLOBAL syms.cpp
+)
+
+END()
diff --git a/library/python/testing/custom_linter_util/ya.make b/library/python/testing/custom_linter_util/ya.make
new file mode 100644
index 0000000000..c761b09afc
--- /dev/null
+++ b/library/python/testing/custom_linter_util/ya.make
@@ -0,0 +1,12 @@
+PY3_LIBRARY()
+
+PY_SRCS(
+ linter_params.py
+ reporter.py
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+ tests
+)
diff --git a/library/python/testing/filter/ya.make b/library/python/testing/filter/ya.make
new file mode 100644
index 0000000000..8703f5dcd2
--- /dev/null
+++ b/library/python/testing/filter/ya.make
@@ -0,0 +1,4 @@
+PY23_LIBRARY()
+PY_SRCS(filter.py)
+
+END()
diff --git a/library/python/testing/import_test/ya.make b/library/python/testing/import_test/ya.make
new file mode 100644
index 0000000000..3f95288f4d
--- /dev/null
+++ b/library/python/testing/import_test/ya.make
@@ -0,0 +1,5 @@
+PY23_LIBRARY()
+
+PY_SRCS(import_test.py)
+
+END()
diff --git a/library/python/testing/recipe/ya.make b/library/python/testing/recipe/ya.make
new file mode 100644
index 0000000000..6e05a5a1ea
--- /dev/null
+++ b/library/python/testing/recipe/ya.make
@@ -0,0 +1,14 @@
+PY23_LIBRARY()
+
+PY_SRCS(
+ __init__.py
+ ports.py
+)
+
+PEERDIR(
+ contrib/python/ipdb
+ library/python/testing/yatest_common
+ library/python/testing/yatest_lib
+)
+
+END()
diff --git a/library/python/testing/yatest_common/ya.make b/library/python/testing/yatest_common/ya.make
new file mode 100644
index 0000000000..2f5aa3bf39
--- /dev/null
+++ b/library/python/testing/yatest_common/ya.make
@@ -0,0 +1,38 @@
+PY23_LIBRARY()
+
+NO_EXTENDED_SOURCE_SEARCH()
+
+PY_SRCS(
+ TOP_LEVEL
+ yatest/__init__.py
+ yatest/common/__init__.py
+ yatest/common/benchmark.py
+ yatest/common/canonical.py
+ yatest/common/environment.py
+ yatest/common/errors.py
+ yatest/common/misc.py
+ yatest/common/network.py
+ yatest/common/path.py
+ yatest/common/process.py
+ yatest/common/runtime.py
+ yatest/common/runtime_java.py
+)
+
+STYLE_PYTHON()
+
+PEERDIR(
+ contrib/python/packaging
+ contrib/python/six
+ library/python/cores
+ library/python/filelock
+ library/python/fs
+ library/python/testing/yatest_lib
+)
+
+IF (NOT CATBOOST_OPENSOURCE)
+ PEERDIR(
+ library/python/coredump_filter
+ )
+ENDIF()
+
+END()
diff --git a/library/python/testing/yatest_common_standalone/ya.make b/library/python/testing/yatest_common_standalone/ya.make
new file mode 100644
index 0000000000..8f2d5f52c3
--- /dev/null
+++ b/library/python/testing/yatest_common_standalone/ya.make
@@ -0,0 +1,15 @@
+PY23_LIBRARY()
+
+PY_SRCS(
+ __init__.py
+)
+
+STYLE_PYTHON()
+
+PEERDIR(
+ library/python/testing/yatest_common
+)
+
+PY_CONSTRUCTOR(library.python.testing.yatest_common_standalone)
+
+END()
diff --git a/library/python/testing/yatest_lib/tests/ya.make b/library/python/testing/yatest_lib/tests/ya.make
new file mode 100644
index 0000000000..fe7b1c7837
--- /dev/null
+++ b/library/python/testing/yatest_lib/tests/ya.make
@@ -0,0 +1,12 @@
+PY23_TEST()
+
+PEERDIR(
+ library/python/testing/yatest_lib
+)
+
+TEST_SRCS(
+ test_external.py
+ test_testsplitter.py
+)
+
+END()
diff --git a/library/python/testing/yatest_lib/ya.make b/library/python/testing/yatest_lib/ya.make
new file mode 100644
index 0000000000..79442b8faf
--- /dev/null
+++ b/library/python/testing/yatest_lib/ya.make
@@ -0,0 +1,24 @@
+PY23_LIBRARY()
+
+PY_SRCS(
+ NAMESPACE
+ yatest_lib
+ external.py
+ test_splitter.py
+ tools.py
+ ya.py
+)
+
+PEERDIR(
+ contrib/python/six
+)
+
+IF(PYTHON2)
+ PEERDIR(
+ contrib/deprecated/python/enum34
+ )
+ENDIF()
+
+END()
+
+RECURSE_FOR_TESTS(tests)
diff --git a/library/python/tmp/ya.make b/library/python/tmp/ya.make
new file mode 100644
index 0000000000..478db75256
--- /dev/null
+++ b/library/python/tmp/ya.make
@@ -0,0 +1,12 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+PEERDIR(
+ library/python/fs
+ library/python/unique_id
+)
+
+END()
+
+RECURSE_FOR_TESTS(test)
diff --git a/library/python/unique_id/ya.make b/library/python/unique_id/ya.make
new file mode 100644
index 0000000000..3582136180
--- /dev/null
+++ b/library/python/unique_id/ya.make
@@ -0,0 +1,5 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+END()
diff --git a/library/python/windows/ya.make b/library/python/windows/ya.make
new file mode 100644
index 0000000000..97c6f48f23
--- /dev/null
+++ b/library/python/windows/ya.make
@@ -0,0 +1,11 @@
+PY23_LIBRARY()
+
+PY_SRCS(__init__.py)
+
+PEERDIR(
+ library/python/func
+ library/python/strings
+ contrib/python/six
+)
+
+END()
diff --git a/library/recipes/common/ya.make b/library/recipes/common/ya.make
new file mode 100644
index 0000000000..bb8569f57d
--- /dev/null
+++ b/library/recipes/common/ya.make
@@ -0,0 +1,11 @@
+PY23_LIBRARY()
+
+PEERDIR(
+ contrib/python/psutil
+)
+
+PY_SRCS(
+ __init__.py
+)
+
+END()