diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index a8970dee88..b7a2b1ef82 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -3,12 +3,21 @@ FROM --platform=linux/amd64 mcr.microsoft.com/devcontainers/cpp:1-ubuntu-22.04 # Install software-properties-common for add-apt-repository RUN apt-get update && apt-get -y install software-properties-common +# Install CMake +ENV CMAKE_VERSION=3.27.7 +RUN add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get -y update && apt-get -y install make && \ + wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz && \ + tar -xvzf cmake-${CMAKE_VERSION}.tar.gz && cd cmake-${CMAKE_VERSION} && \ + ./bootstrap && \ + make -j$(nproc) && \ + make install + # Install C++ tools and libraries -RUN add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get -y update && apt-get -y install \ - git gdb cmake ninja-build libidn11-dev ragel yasm protobuf-compiler \ +RUN apt-get -y update && apt-get -y install \ + git gdb ninja-build libidn11-dev ragel yasm protobuf-compiler \ protobuf-compiler-grpc libprotobuf-dev libgrpc++-dev libgrpc-dev libgrpc++1 libgrpc10 \ rapidjson-dev zlib1g-dev libxxhash-dev libzstd-dev libsnappy-dev libgtest-dev libgmock-dev \ - libbz2-dev libdouble-conversion-dev libstdc++-13-dev liblz4-dev libssl-dev \ + libbz2-dev libdouble-conversion-dev libstdc++-13-dev gcc-13 g++-13 liblz4-dev libssl-dev \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Install LLVM @@ -16,10 +25,14 @@ RUN wget https://apt.llvm.org/llvm.sh && \ chmod u+x llvm.sh && \ ./llvm.sh 16 -# Update alternatives to use clang-16 and clang++-16 by default -RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-16 100 && \ - update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-16 100 && \ - update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-16 100 +# Update alternatives to use clang-16 by default +RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-16 10000 && \ + update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-16 10000 && \ + update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-16 10000 + +# Update alternatives to use gcc-13 by default +RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 10000 && \ + update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 10000 # Install libiconv ENV LIBICONV_VERSION=1.15 diff --git a/.devcontainer/configure.sh b/.devcontainer/configure.sh index 44eff912a8..2fb189822e 100755 --- a/.devcontainer/configure.sh +++ b/.devcontainer/configure.sh @@ -3,7 +3,7 @@ mkdir -p build git submodule update --init --recursive ccache -o cache_dir=/root/.ccache -cmake --preset release-test-with-ccache-basedir -DCMAKE_EXPORT_COMPILE_COMMANDS=1 +cmake --preset release-test-clang if which ydb > /dev/null 2>&1; then ENDPOINT=$(echo ${YDB_CONNECTION_STRING_SECURE:-$YDB_CONNECTION_STRING} | awk -F/ '{print $3}') diff --git a/.github/actions/build/action.yaml b/.github/actions/build/action.yaml index 404fda1888..a8c9e56f97 100644 --- a/.github/actions/build/action.yaml +++ b/.github/actions/build/action.yaml @@ -1,20 +1,26 @@ name: Build description: Build YDB SDK +inputs: + compiler: + description: 'Compiler to use (clang or gcc)' + required: true + default: 'clang' + runs: using: "composite" steps: - name: Configure shell: bash run: | - mkdir -p ../build - rm -rf ../build/* - cmake --preset release-test-with-ccache-basedir + mkdir -p build + rm -rf build/* + cmake --preset release-test-${{ inputs.compiler }} - name: Build shell: bash run: | ccache -z export CCACHE_BASEDIR=`realpath ..` export CCACHE_DIR=~/.ccache - cmake --build --preset release -- -j32 + cmake --build --preset default -- -j$(nproc) ccache -s diff --git a/.github/actions/prepare_vm/action.yaml b/.github/actions/prepare_vm/action.yaml index cd515786fd..7077f4a5ee 100644 --- a/.github/actions/prepare_vm/action.yaml +++ b/.github/actions/prepare_vm/action.yaml @@ -4,20 +4,26 @@ description: Install required packages runs: using: "composite" steps: + - name: Install CMake and Ninja + uses: lukka/get-cmake@v3.27.7 - name: Install dependencies shell: bash run: | sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get -y update - sudo apt-get -y install git cmake ninja-build libidn11-dev ragel yasm protobuf-compiler \ + sudo apt-get -y install git ninja-build libidn11-dev ragel yasm protobuf-compiler \ protobuf-compiler-grpc libprotobuf-dev libgrpc++-dev libgrpc-dev libgrpc++1 libgrpc10 \ rapidjson-dev zlib1g-dev libxxhash-dev libzstd-dev libsnappy-dev libgtest-dev libgmock-dev \ - libbz2-dev libdouble-conversion-dev libstdc++-13-dev + libbz2-dev libdouble-conversion-dev libstdc++-13-dev gcc-13 g++-13 wget https://apt.llvm.org/llvm.sh chmod u+x llvm.sh sudo ./llvm.sh 16 - sudo ln -sf /usr/bin/clang-16 /usr/bin/clang - sudo ln -sf /usr/bin/clang++-16 /usr/bin/clang++ + sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-16 10000 + sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-16 10000 + + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 10000 + sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 10000 + wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz tar -xvzf libiconv-1.15.tar.gz cd libiconv-1.15 diff --git a/.github/workflows/examples.yaml b/.github/workflows/examples.yaml index c53b2f1bb9..41170adfb5 100644 --- a/.github/workflows/examples.yaml +++ b/.github/workflows/examples.yaml @@ -17,7 +17,8 @@ jobs: strategy: fail-fast: false matrix: - ydb-version: [24.1, trunk] + ydb-version: [25.1, trunk] + compiler: [clang, gcc] services: ydb: image: ydbplatform/local-ydb:${{ matrix.ydb-version }} @@ -56,15 +57,17 @@ jobs: uses: actions/cache/restore@v4 with: path: ~/.ccache - key: ubuntu-22.04-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} + key: ubuntu-22.04-ccache-${{ matrix.compiler }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }} restore-keys: | - ubuntu-22.04-ccache- + ubuntu-22.04-ccache-${{ matrix.compiler }}- - name: Build uses: ./.github/actions/build + with: + compiler: ${{ matrix.compiler }} - name: Launch basic example shell: bash run: | - cd ../build + cd build examples/basic_example/basic_example -e localhost:2136 -d /local examples/bulk_upsert_simple/bulk_upsert_simple -e localhost:2136 -d /local -p /local/bulk examples/pagination/pagination -e localhost:2136 -d /local -p /local/pagination diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index fe40c3407e..93b3cb98fc 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -13,10 +13,12 @@ concurrency: jobs: unit: concurrency: - group: unit-${{ github.ref }}-${{ matrix.os }} + group: unit-${{ github.ref }}-${{ matrix.os }}-${{ matrix.compiler }} cancel-in-progress: true strategy: fail-fast: false + matrix: + compiler: [clang, gcc] env: OS: ubuntu-22.04 runs-on: ubuntu-22.04 @@ -44,25 +46,28 @@ jobs: uses: actions/cache/restore@v4 with: path: ~/.ccache - key: ubuntu-22.04-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} + key: ubuntu-22.04-ccache-${{ matrix.compiler }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }} restore-keys: | - ubuntu-22.04-ccache- + ubuntu-22.04-ccache-${{ matrix.compiler }}- - name: Build uses: ./.github/actions/build + with: + compiler: ${{ matrix.compiler }} - name: Test shell: bash run: | - ctest -j32 --preset release-unit + ctest -j$(nproc) --preset unit integration: concurrency: - group: integration-${{ github.ref }}-${{ matrix.ydb-version }} + group: integration-${{ github.ref }}-${{ matrix.ydb-version }}-${{ matrix.compiler }} cancel-in-progress: true runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: - ydb-version: [23.3, 24.1, trunk] + ydb-version: [24.1, 24.2, 24.3, 24.4, 25.1, trunk] + compiler: [clang, gcc] services: ydb: image: ydbplatform/local-ydb:${{ matrix.ydb-version }} @@ -101,12 +106,14 @@ jobs: uses: actions/cache/restore@v4 with: path: ~/.ccache - key: ubuntu-22.04-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} + key: ubuntu-22.04-ccache-${{ matrix.compiler }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }} restore-keys: | - ubuntu-22.04-ccache- + ubuntu-22.04-ccache-${{ matrix.compiler }}- - name: Build uses: ./.github/actions/build + with: + compiler: ${{ matrix.compiler }} - name: Test shell: bash run: | - ctest -j32 --preset release-integration + ctest -j$(nproc) --preset integration diff --git a/.github/workflows/warmup_cache.yaml b/.github/workflows/warmup_cache.yaml index df6bcf1111..04ed1d8ce4 100644 --- a/.github/workflows/warmup_cache.yaml +++ b/.github/workflows/warmup_cache.yaml @@ -9,6 +9,9 @@ jobs: main: name: Build YDB C++ SDK and cache artifacts runs-on: ubuntu-22.04 + strategy: + matrix: + compiler: [clang, gcc] steps: - name: Checkout uses: actions/checkout@v3 @@ -27,8 +30,10 @@ jobs: uses: actions/cache@v4 with: path: ~/.ccache - key: ubuntu-22.04-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} + key: ubuntu-22.04-ccache-${{ matrix.compiler }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }} restore-keys: | - ubuntu-22.04-ccache- + ubuntu-22.04-ccache-${{ matrix.compiler }}- - name: Build uses: ./.github/actions/build + with: + compiler: ${{ matrix.compiler }} diff --git a/.gitignore b/.gitignore index 9529b57eca..4fe80a1acd 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,7 @@ __pycache__/ /compile_commands.json +/build /build_* /build-* diff --git a/CMakeLists.txt b/CMakeLists.txt index a1e8a38f64..9390cc97c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,11 @@ -cmake_minimum_required(VERSION 3.15) -project(YDB-CPP-SDK LANGUAGES C CXX ASM) +cmake_minimum_required(VERSION 3.5) + +file(READ "src/version.h" YDB_SDK_VERSION_FILE_RAW) +string(REGEX MATCH "YDB_SDK_VERSION = \"([0-9]+\\.[0-9]+\\.[0-9]+)\"" _ ${YDB_SDK_VERSION_FILE_RAW}) +set(YDB_SDK_VERSION ${CMAKE_MATCH_1}) +message(STATUS "YDB С++ SDK version: ${YDB_SDK_VERSION}") + +project(YDB-CPP-SDK VERSION ${YDB_SDK_VERSION} LANGUAGES C CXX ASM) option(YDB_SDK_INSTALL "Install YDB C++ SDK" Off) option(YDB_SDK_TESTS "Build YDB C++ SDK tests" Off) @@ -16,10 +22,6 @@ set(YDB_SDK_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(YDB_SDK_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(YDB-CPP-SDK_AVAILABLE_COMPONENTS "" CACHE INTERNAL "") set(YDB-CPP-SDK_COMPONENT_TARGETS "" CACHE INTERNAL "") -file(READ "src/version.h" YDB_SDK_VERSION_FILE_RAW) -string(REGEX MATCH "YDB_SDK_VERSION = \"([0-9]+\\.[0-9]+\\.[0-9]+)\"" _ ${YDB_SDK_VERSION_FILE_RAW}) -set(YDB_SDK_VERSION ${CMAKE_MATCH_1}) -message(STATUS "YDB С++ SDK version: ${YDB_SDK_VERSION}") #[=============================================================================[ NOTE: if `ccache` is used with the environment variable `CCACHE_BASEDIR`, diff --git a/CMakePresets.json b/CMakePresets.json index 7619864d8c..bd0c75cfb1 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -7,19 +7,25 @@ }, "configurePresets": [ { - "name": "ninja-generator", - "hidden": true, - "generator": "Ninja" + "name": "base", + "displayName": "Generic Config", + "cacheVariables": { + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + }, + "generator": "Ninja", + "binaryDir": "${sourceDir}/build" }, { - "name": "release-build", + "name": "release-base", + "inherits": "base", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "Release" } }, { - "name": "debug-build", + "name": "debug-base", + "inherits": "base", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" @@ -28,45 +34,57 @@ { "name": "clang-toolchain", "hidden": true, - "toolchainFile": "${sourceDir}/clang.toolchain" - }, - { - "name": "release", - "inherits": [ - "ninja-generator", - "release-build", - "clang-toolchain" - ], - "displayName": "Default Release Config", - "description": "Default release build configuration using Ninja generator and Clang compiler", - "binaryDir": "${sourceDir}/../build" + "cacheVariables": { + "CMAKE_CXX_COMPILER": "clang++", + "CMAKE_C_COMPILER": "clang", + "CMAKE_EXE_LINKER_FLAGS": "-fuse-ld=lld", + "CMAKE_SHARED_LINKER_FLAGS": "-fuse-ld=lld" + } }, { - "name": "release-test", - "inherits": "release", - "displayName": "Default Release Test Config", - "description": "Default release build configuration with all tests and examples", + "name": "gcc-toolchain", + "hidden": true, "cacheVariables": { - "YDB_SDK_TESTS": "TRUE", - "YDB_SDK_EXAMPLES": "TRUE" + "CMAKE_CXX_COMPILER": "g++", + "CMAKE_C_COMPILER": "gcc" } }, { - "name": "release-test-with-ccache-basedir", - "inherits": "release-test", - "displayName": "Release Test Config CCACHE_BASEDIR Case", - "description": "Only for the case when using CCACHE_BASEDIR", + "name": "test", + "hidden": true, "cacheVariables": { - "ARCADIA_ROOT": "../ydb-cpp-sdk", + "YDB_SDK_TESTS": "TRUE", + "YDB_SDK_EXAMPLES": "TRUE", + "ARCADIA_ROOT": "..", "ARCADIA_BUILD_ROOT": "." } + }, + { + "name": "release-clang", + "inherits": ["release-base", "clang-toolchain"], + "displayName": "Default Release Config (Clang)" + }, + { + "name": "release-gcc", + "inherits": ["release-base", "gcc-toolchain"], + "displayName": "Default Release Config (GCC)" + }, + { + "name": "release-test-clang", + "inherits": ["release-base", "clang-toolchain", "test"], + "displayName": "Default Release Test Config (Clang)" + }, + { + "name": "release-test-gcc", + "inherits": ["release-base", "gcc-toolchain", "test"], + "displayName": "Default Release Test Config (GCC)" } ], "buildPresets": [ { - "name": "release", - "configurePreset": "release", - "displayName": "Default Release Build" + "name": "default", + "displayName": "Default Build", + "configurePreset": "base" } ], "testPresets": [ @@ -81,32 +99,28 @@ } }, { - "name": "release", + "name": "all", "inherits": "common", - "configurePreset": "release-test", - "displayName": "Default Release Tests", - "environment": { - "YDB_ENDPOINT": "localhost:2136", - "YDB_DATABASE": "/local" - } + "displayName": "Run All Tests", + "configurePreset": "base" }, { - "name": "release-unit", + "name": "unit", "inherits": "common", - "configurePreset": "release-test", - "displayName": "Default Unit Release Tests", - "filter" : { + "displayName": "Run Unit Tests", + "configurePreset": "base", + "filter": { "include": { "label": "unit" } } }, { - "name": "release-integration", + "name": "integration", "inherits": "common", - "configurePreset": "release-test", - "displayName": "Default Integration Release Tests", - "filter" : { + "displayName": "Run Integration Tests", + "configurePreset": "base", + "filter": { "include": { "label": "integration" } diff --git a/clang.toolchain b/clang.toolchain deleted file mode 100644 index f3c53e4bed..0000000000 --- a/clang.toolchain +++ /dev/null @@ -1,12 +0,0 @@ -set(CMAKE_C_COMPILER clang) -set(CMAKE_CXX_COMPILER clang++) -set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=lld -rdynamic") -set(CMAKE_SHARED_LINKER_FLAGS "-fuse-ld=lld") -set(CMAKE_C_STANDARD_LIBRARIES "-lc -lm") -set(CMAKE_CXX_STANDARD_LIBRARIES "-lc -lm") - -set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -UNDEBUG" CACHE STRING "C compiler flags") -set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -UNDEBUG" CACHE STRING "C++ compiler flags") - -set(ENV{CC} clang) -set(ENV{CXX} clang++) diff --git a/include/ydb-cpp-sdk/client/CMakeLists.txt b/include/ydb-cpp-sdk/client/CMakeLists.txt index f4ba413366..ea630632fe 100644 --- a/include/ydb-cpp-sdk/client/CMakeLists.txt +++ b/include/ydb-cpp-sdk/client/CMakeLists.txt @@ -1,2 +1,3 @@ add_subdirectory(iam/common) add_subdirectory(iam_private/common) +add_subdirectory(topic) diff --git a/include/ydb-cpp-sdk/client/rate_limiter/rate_limiter.h b/include/ydb-cpp-sdk/client/rate_limiter/rate_limiter.h index ada271cf8f..5e370bcff0 100644 --- a/include/ydb-cpp-sdk/client/rate_limiter/rate_limiter.h +++ b/include/ydb-cpp-sdk/client/rate_limiter/rate_limiter.h @@ -176,6 +176,8 @@ struct TCreateResourceSettings : public TOperationRequestSettings , public THierarchicalDrrSettings { + using TSelf = TCreateResourceSettings; + TCreateResourceSettings() = default; TCreateResourceSettings(const Ydb::RateLimiter::CreateResourceRequest&); @@ -187,6 +189,8 @@ struct TAlterResourceSettings : public TOperationRequestSettings , public THierarchicalDrrSettings { + using TSelf = TAlterResourceSettings; + FLUENT_SETTING_OPTIONAL(TMeteringConfig, MeteringConfig); }; diff --git a/include/ydb-cpp-sdk/client/topic/CMakeLists.txt b/include/ydb-cpp-sdk/client/topic/CMakeLists.txt new file mode 100644 index 0000000000..d8cba6d702 --- /dev/null +++ b/include/ydb-cpp-sdk/client/topic/CMakeLists.txt @@ -0,0 +1,27 @@ +_ydb_sdk_add_library(client-ydb_topic-include) + +target_link_libraries(client-ydb_topic-include + PUBLIC + yutil + api-grpc + api-protos + streams-zstd +) + +generate_enum_serilization(client-ydb_topic-include + ${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/control_plane.h + INCLUDE_HEADERS + include/ydb-cpp-sdk/client/topic/control_plane.h +) + +generate_enum_serilization(client-ydb_topic-include + ${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/read_events.h + INCLUDE_HEADERS + include/ydb-cpp-sdk/client/topic/read_events.h +) + +generate_enum_serilization(client-ydb_topic-include + ${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/write_events.h + INCLUDE_HEADERS + include/ydb-cpp-sdk/client/topic/write_events.h +) diff --git a/src/client/topic/CMakeLists.txt b/src/client/topic/CMakeLists.txt index e18f83ff29..df4fb11ded 100644 --- a/src/client/topic/CMakeLists.txt +++ b/src/client/topic/CMakeLists.txt @@ -11,6 +11,7 @@ target_link_libraries(client-ydb_topic PUBLIC retry client-ydb_topic-common client-ydb_topic-impl + client-ydb_topic-include client-ydb_proto client-ydb_driver api-grpc @@ -20,26 +21,7 @@ target_link_libraries(client-ydb_topic PUBLIC ) target_sources(client-ydb_topic PRIVATE - proto_accessor.cpp out.cpp ) -generate_enum_serilization(client-ydb_topic - ${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/control_plane.h - INCLUDE_HEADERS - include/ydb-cpp-sdk/client/topic/control_plane.h -) - -generate_enum_serilization(client-ydb_topic - ${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/read_events.h - INCLUDE_HEADERS - include/ydb-cpp-sdk/client/topic/read_events.h -) - -generate_enum_serilization(client-ydb_topic - ${YDB_SDK_SOURCE_DIR}/include/ydb-cpp-sdk/client/topic/write_events.h - INCLUDE_HEADERS - include/ydb-cpp-sdk/client/topic/write_events.h -) - _ydb_sdk_make_client_component(Topic client-ydb_topic) diff --git a/src/client/topic/impl/CMakeLists.txt b/src/client/topic/impl/CMakeLists.txt index 415b39d780..227a889941 100644 --- a/src/client/topic/impl/CMakeLists.txt +++ b/src/client/topic/impl/CMakeLists.txt @@ -15,6 +15,7 @@ target_link_libraries(client-ydb_topic-impl PUBLIC client-ydb_topic-common client-ydb_proto client-ydb_topic-codecs + client-ydb_topic-include proto_output ) @@ -29,6 +30,7 @@ target_sources(client-ydb_topic-impl deferred_commit.cpp event_handlers.cpp offsets_collector.cpp + proto_accessor.cpp read_session_event.cpp read_session.cpp topic_impl.cpp diff --git a/src/client/topic/proto_accessor.cpp b/src/client/topic/impl/proto_accessor.cpp similarity index 100% rename from src/client/topic/proto_accessor.cpp rename to src/client/topic/impl/proto_accessor.cpp diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt index 9220b75b74..d942885a04 100644 --- a/util/CMakeLists.txt +++ b/util/CMakeLists.txt @@ -316,6 +316,12 @@ if (YDB_SDK_TESTS) cpp-testing-unittest_main LABELS unit + TEST_ARG + --filter-file filter.txt + ) + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/system/filter.txt + "-TBackTraceTest::TestPrintBackTrace\n" + "-TBackTraceTest::TestSetFormatBackTraceFn" ) add_ydb_test(NAME util-system-unaligned_mem_ut