summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrp-1 <[email protected]>2025-10-03 14:27:04 +0300
committerrp-1 <[email protected]>2025-10-03 15:13:39 +0300
commitc1ffdb950536fb476f714704061d8714536db34a (patch)
tree726f9fee445b2ffeb60c8a3475b09de5c6b4a7a8
parent71330c140e37851e7d801ac0148e636346997036 (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.cpp2
-rw-r--r--library/cpp/testing/gtest/main.cpp3
-rw-r--r--library/cpp/testing/hook/yt_initialize_hook.h6
-rw-r--r--library/cpp/testing/unittest/utmain.cpp3
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>();