diff options
author | rp-1 <[email protected]> | 2025-10-03 14:27:04 +0300 |
---|---|---|
committer | rp-1 <[email protected]> | 2025-10-03 15:13:39 +0300 |
commit | c1ffdb950536fb476f714704061d8714536db34a (patch) | |
tree | 726f9fee445b2ffeb60c8a3475b09de5c6b4a7a8 | |
parent | 71330c140e37851e7d801ac0148e636346997036 (diff) |
Move NYT::Initialize to separate "weak" hook
Move BEFORE_INIT hook to the beginning
commit_hash:9cbf1d95bf1cda4bcce0d3ab9207debcab65391b
-rw-r--r-- | library/cpp/testing/gbenchmark/main.cpp | 2 | ||||
-rw-r--r-- | library/cpp/testing/gtest/main.cpp | 3 | ||||
-rw-r--r-- | library/cpp/testing/hook/yt_initialize_hook.h | 6 | ||||
-rw-r--r-- | library/cpp/testing/unittest/utmain.cpp | 3 |
4 files changed, 14 insertions, 0 deletions
diff --git a/library/cpp/testing/gbenchmark/main.cpp b/library/cpp/testing/gbenchmark/main.cpp index 523d18901a0..a0b30bb7094 100644 --- a/library/cpp/testing/gbenchmark/main.cpp +++ b/library/cpp/testing/gbenchmark/main.cpp @@ -1,9 +1,11 @@ #include <benchmark/benchmark.h> #include <library/cpp/testing/hook/hook.h> +#include <library/cpp/testing/hook/yt_initialize_hook.h> #include <util/generic/scope.h> int main(int argc, char** argv) { + InitializeYt(argc, argv); NTesting::THook::CallBeforeInit(); ::benchmark::Initialize(&argc, argv); if (::benchmark::ReportUnrecognizedArguments(argc, argv)) { diff --git a/library/cpp/testing/gtest/main.cpp b/library/cpp/testing/gtest/main.cpp index 38504b56904..89ad6bfb1dc 100644 --- a/library/cpp/testing/gtest/main.cpp +++ b/library/cpp/testing/gtest/main.cpp @@ -4,6 +4,7 @@ #include <library/cpp/string_utils/relaxed_escaper/relaxed_escaper.h> #include <library/cpp/testing/common/env.h> #include <library/cpp/testing/hook/hook.h> +#include <library/cpp/testing/hook/yt_initialize_hook.h> #include <util/generic/scope.h> #include <util/string/join.h> #include <util/system/src_root.h> @@ -241,6 +242,8 @@ namespace { } int NGTest::Main(int argc, char** argv) { + InitializeYt(argc, argv); + auto flags = ParseFlags(argc, argv); ::testing::GTEST_FLAG(filter) = flags.Filter; diff --git a/library/cpp/testing/hook/yt_initialize_hook.h b/library/cpp/testing/hook/yt_initialize_hook.h new file mode 100644 index 00000000000..646015c1d61 --- /dev/null +++ b/library/cpp/testing/hook/yt_initialize_hook.h @@ -0,0 +1,6 @@ +#pragma once + +// Since we need to call NYT::Initialize immediately on starting the program, we separate it from other BEFORE_INIT hooks. +// This weak function is overriden in C++ client (see yt/cpp/mapreduce/tests/yt_initialize_hook/yt_hook.cpp). +__attribute__((weak)) void InitializeYt(int, char**) { +} diff --git a/library/cpp/testing/unittest/utmain.cpp b/library/cpp/testing/unittest/utmain.cpp index 6ecfc3a64f3..113547bf855 100644 --- a/library/cpp/testing/unittest/utmain.cpp +++ b/library/cpp/testing/unittest/utmain.cpp @@ -9,6 +9,7 @@ #include <library/cpp/json/writer/json_value.h> #include <library/cpp/testing/common/env.h> #include <library/cpp/testing/hook/hook.h> +#include <library/cpp/testing/hook/yt_initialize_hook.h> #include <util/datetime/base.h> @@ -709,6 +710,8 @@ int NUnitTest::RunMain(int argc, char** argv) { Y_ABORT_UNLESS(!sigaction(SIGUSR2, &sa, nullptr)); } #endif + InitializeYt(argc, argv); + NTesting::THook::CallBeforeInit(); InitNetworkSubSystem(); Singleton<::NPrivate::TTestEnv>(); |