aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/testing/common
diff options
context:
space:
mode:
authorAleksandr <ivansduck@gmail.com>2022-02-10 16:47:52 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:52 +0300
commitb05913d1c3c02a773578bceb7285084d2933ae86 (patch)
treec0748b5dcbade83af788c0abfa89c0383d6b779c /library/cpp/testing/common
parentea6c5b7f172becca389cacaff7d5f45f6adccbe6 (diff)
downloadydb-b05913d1c3c02a773578bceb7285084d2933ae86.tar.gz
Restoring authorship annotation for Aleksandr <ivansduck@gmail.com>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/testing/common')
-rw-r--r--library/cpp/testing/common/env.cpp198
-rw-r--r--library/cpp/testing/common/env.h54
-rw-r--r--library/cpp/testing/common/ut/env_ut.cpp128
3 files changed, 190 insertions, 190 deletions
diff --git a/library/cpp/testing/common/env.cpp b/library/cpp/testing/common/env.cpp
index 436af91845..fa3a47fe16 100644
--- a/library/cpp/testing/common/env.cpp
+++ b/library/cpp/testing/common/env.cpp
@@ -3,19 +3,19 @@
#include <build/scripts/c_templates/svnversion.h>
#include <util/folder/dirut.h>
-#include <util/folder/path.h>
-#include <util/generic/singleton.h>
+#include <util/folder/path.h>
+#include <util/generic/singleton.h>
#include <util/stream/file.h>
-#include <util/stream/fwd.h>
-#include <util/system/env.h>
-#include <util/system/file.h>
-#include <util/system/file_lock.h>
-#include <util/system/guard.h>
-
+#include <util/stream/fwd.h>
+#include <util/system/env.h>
+#include <util/system/file.h>
+#include <util/system/file_lock.h>
+#include <util/system/guard.h>
+
#include <library/cpp/json/json_reader.h>
#include <library/cpp/json/json_value.h>
-#include <library/cpp/json/json_writer.h>
-
+#include <library/cpp/json/json_writer.h>
+
TString ArcadiaSourceRoot() {
if (const auto& sourceRoot = NPrivate::GetTestEnv().SourceRoot) {
return sourceRoot;
@@ -63,89 +63,89 @@ TString GetArcadiaTestsData() {
return {};
}
-
+
TString GetWorkPath() {
TString workPath = NPrivate::GetTestEnv().WorkPath;
if (workPath) {
return workPath;
- }
+ }
return NPrivate::GetCwd();
-}
-
+}
+
TFsPath GetOutputPath() {
return GetWorkPath() + "/testing_out_stuff";
}
-const TString& GetRamDrivePath() {
+const TString& GetRamDrivePath() {
return NPrivate::GetTestEnv().RamDrivePath;
-}
-
+}
+
const TString& GetYtHddPath() {
return NPrivate::GetTestEnv().YtHddPath;
}
-const TString& GetOutputRamDrivePath() {
+const TString& GetOutputRamDrivePath() {
return NPrivate::GetTestEnv().TestOutputRamDrivePath;
-}
-
-const TString& GdbPath() {
- return NPrivate::GetTestEnv().GdbPath;
-}
-
-const TString& GetTestParam(TStringBuf name) {
- const static TString def = "";
- return GetTestParam(name, def);
-}
-
-const TString& GetTestParam(TStringBuf name, const TString& def) {
- auto& testParameters = NPrivate::GetTestEnv().TestParameters;
- auto it = testParameters.find(name.data());
- if (it != testParameters.end()) {
- return it->second;
- }
- return def;
-}
-
-void AddEntryToCoreSearchFile(const TString& filename, TStringBuf cmd, int pid, const TFsPath& binaryPath = TFsPath(), const TFsPath& cwd = TFsPath()) {
- auto lock = TFileLock(filename);
- TGuard<TFileLock> guard(lock);
-
- TOFStream output(TFile(filename, WrOnly | ForAppend | OpenAlways));
-
- NJson::TJsonWriter writer(&output, false);
- writer.OpenMap();
- writer.Write("cmd", cmd);
- writer.Write("pid", pid);
- if (binaryPath) {
- writer.Write("binary_path", binaryPath);
- }
- if (cwd) {
- writer.Write("cwd", cwd);
- }
- writer.CloseMap();
- writer.Flush();
-
- output.Write("\n");
-}
-
-void WatchProcessCore(int pid, const TFsPath& binaryPath, const TFsPath& cwd) {
- auto& filename = NPrivate::GetTestEnv().CoreSearchFile;
- if (filename) {
- AddEntryToCoreSearchFile(filename, "add", pid, binaryPath, cwd);
- }
-}
-
-void StopProcessCoreWatching(int pid) {
- auto& filename = NPrivate::GetTestEnv().CoreSearchFile;
- if (filename) {
- AddEntryToCoreSearchFile(filename, "drop", pid);
- }
-}
-
+}
+
+const TString& GdbPath() {
+ return NPrivate::GetTestEnv().GdbPath;
+}
+
+const TString& GetTestParam(TStringBuf name) {
+ const static TString def = "";
+ return GetTestParam(name, def);
+}
+
+const TString& GetTestParam(TStringBuf name, const TString& def) {
+ auto& testParameters = NPrivate::GetTestEnv().TestParameters;
+ auto it = testParameters.find(name.data());
+ if (it != testParameters.end()) {
+ return it->second;
+ }
+ return def;
+}
+
+void AddEntryToCoreSearchFile(const TString& filename, TStringBuf cmd, int pid, const TFsPath& binaryPath = TFsPath(), const TFsPath& cwd = TFsPath()) {
+ auto lock = TFileLock(filename);
+ TGuard<TFileLock> guard(lock);
+
+ TOFStream output(TFile(filename, WrOnly | ForAppend | OpenAlways));
+
+ NJson::TJsonWriter writer(&output, false);
+ writer.OpenMap();
+ writer.Write("cmd", cmd);
+ writer.Write("pid", pid);
+ if (binaryPath) {
+ writer.Write("binary_path", binaryPath);
+ }
+ if (cwd) {
+ writer.Write("cwd", cwd);
+ }
+ writer.CloseMap();
+ writer.Flush();
+
+ output.Write("\n");
+}
+
+void WatchProcessCore(int pid, const TFsPath& binaryPath, const TFsPath& cwd) {
+ auto& filename = NPrivate::GetTestEnv().CoreSearchFile;
+ if (filename) {
+ AddEntryToCoreSearchFile(filename, "add", pid, binaryPath, cwd);
+ }
+}
+
+void StopProcessCoreWatching(int pid) {
+ auto& filename = NPrivate::GetTestEnv().CoreSearchFile;
+ if (filename) {
+ AddEntryToCoreSearchFile(filename, "drop", pid);
+ }
+}
+
bool FromYaTest() {
return NPrivate::GetTestEnv().IsRunningFromTest;
-}
+}
namespace NPrivate {
TTestEnv::TTestEnv() {
@@ -161,9 +161,9 @@ namespace NPrivate {
RamDrivePath = "";
YtHddPath = "";
TestOutputRamDrivePath = "";
- GdbPath = "";
- CoreSearchFile = "";
- TestParameters.clear();
+ GdbPath = "";
+ CoreSearchFile = "";
+ TestParameters.clear();
const TString contextFilename = GetEnv("YA_TEST_CONTEXT_FILE");
if (contextFilename) {
@@ -206,23 +206,23 @@ namespace NPrivate {
if (value) {
TestOutputRamDrivePath = value->GetStringSafe("");
}
-
- value = context.GetValueByPath("runtime.gdb_bin");
- if (value) {
- GdbPath = value->GetStringSafe("");
- }
-
- value = context.GetValueByPath("runtime.test_params");
- if (value) {
- for (const auto& entry : context.GetValueByPath("runtime.test_params")->GetMap()) {
- TestParameters[entry.first] = entry.second.GetStringSafe("");
- }
- }
-
- value = context.GetValueByPath("internal.core_search_file");
- if (value) {
- CoreSearchFile = value->GetStringSafe("");
- }
+
+ value = context.GetValueByPath("runtime.gdb_bin");
+ if (value) {
+ GdbPath = value->GetStringSafe("");
+ }
+
+ value = context.GetValueByPath("runtime.test_params");
+ if (value) {
+ for (const auto& entry : context.GetValueByPath("runtime.test_params")->GetMap()) {
+ TestParameters[entry.first] = entry.second.GetStringSafe("");
+ }
+ }
+
+ value = context.GetValueByPath("internal.core_search_file");
+ if (value) {
+ CoreSearchFile = value->GetStringSafe("");
+ }
}
if (!YtHddPath) {
@@ -257,10 +257,10 @@ namespace NPrivate {
IsRunningFromTest = (fromEnv == "1");
}
- void TTestEnv::AddTestParam(TStringBuf name, TStringBuf value) {
- TestParameters[TString{name}] = value;
- }
-
+ void TTestEnv::AddTestParam(TStringBuf name, TStringBuf value) {
+ TestParameters[TString{name}] = value;
+ }
+
TString GetCwd() {
try {
return NFs::CurrentWorkingDirectory();
diff --git a/library/cpp/testing/common/env.h b/library/cpp/testing/common/env.h
index 9f405145f1..7b89aa1bed 100644
--- a/library/cpp/testing/common/env.h
+++ b/library/cpp/testing/common/env.h
@@ -1,7 +1,7 @@
#pragma once
-#include <unordered_map>
-
+#include <unordered_map>
+
#include <util/folder/path.h>
#include <util/generic/string.h>
#include <util/generic/strbuf.h>
@@ -14,7 +14,7 @@ TString ArcadiaSourceRoot();
// for the instance: there is 2 files in folder test example_ut.cpp and example.data, so full path to test/example.data can be obtained
// from example_ut.cpp as ArcadiaFromCurrentLocation(__SOURCE_FILE__, "example.data")
TString ArcadiaFromCurrentLocation(TStringBuf where, TStringBuf path);
-
+
// @brief return build folder path
TString BuildRoot();
@@ -34,26 +34,26 @@ TString GetWorkPath();
TFsPath GetOutputPath();
// @brief return path from env:YA_TEST_RAM_DRIVE_PATH
-const TString& GetRamDrivePath();
-
+const TString& GetRamDrivePath();
+
// @brief return path from env:YA_TEST_OUTPUT_RAM_DRIVE_PATH
-const TString& GetOutputRamDrivePath();
-
-// @brief return test parameter by name. If not exists, return an empty string
-const TString& GetTestParam(TStringBuf name);
-
-// @brief return test parameter by name. If not exists, return specified default value
-const TString& GetTestParam(TStringBuf name, const TString& def);
-
-// @brief return path to the gdb
-const TString& GdbPath();
-
-// @brief register the process. Test suite will be marked as failed if the process is terminated with a core dump file after testing
-void WatchProcessCore(int pid, const TFsPath& binaryPath, const TFsPath& cwd = TFsPath());
-
-// @brief mark the process as successfully completed - a test machinery won't try to recover core dump file for the process
-void StopProcessCoreWatching(int pid);
-
+const TString& GetOutputRamDrivePath();
+
+// @brief return test parameter by name. If not exists, return an empty string
+const TString& GetTestParam(TStringBuf name);
+
+// @brief return test parameter by name. If not exists, return specified default value
+const TString& GetTestParam(TStringBuf name, const TString& def);
+
+// @brief return path to the gdb
+const TString& GdbPath();
+
+// @brief register the process. Test suite will be marked as failed if the process is terminated with a core dump file after testing
+void WatchProcessCore(int pid, const TFsPath& binaryPath, const TFsPath& cwd = TFsPath());
+
+// @brief mark the process as successfully completed - a test machinery won't try to recover core dump file for the process
+void StopProcessCoreWatching(int pid);
+
#define SRC_(path) ArcadiaFromCurrentLocation(__SOURCE_FILE__, path)
namespace NPrivate {
@@ -63,8 +63,8 @@ namespace NPrivate {
void ReInitialize();
- void AddTestParam(TStringBuf name, TStringBuf value);
-
+ void AddTestParam(TStringBuf name, TStringBuf value);
+
bool IsRunningFromTest;
TString ArcadiaTestsDataDir;
TString SourceRoot;
@@ -73,9 +73,9 @@ namespace NPrivate {
TString RamDrivePath;
TString YtHddPath;
TString TestOutputRamDrivePath;
- TString GdbPath;
- TString CoreSearchFile;
- std::unordered_map<TString, TString> TestParameters;
+ TString GdbPath;
+ TString CoreSearchFile;
+ std::unordered_map<TString, TString> TestParameters;
};
TString GetCwd();
diff --git a/library/cpp/testing/common/ut/env_ut.cpp b/library/cpp/testing/common/ut/env_ut.cpp
index 408661d84d..2aed1e4a25 100644
--- a/library/cpp/testing/common/ut/env_ut.cpp
+++ b/library/cpp/testing/common/ut/env_ut.cpp
@@ -1,12 +1,12 @@
#include <library/cpp/testing/common/env.h>
#include <library/cpp/testing/common/scope.h>
-#include <library/cpp/testing/gtest/gtest.h>
+#include <library/cpp/testing/gtest/gtest.h>
#include <util/folder/dirut.h>
-#include <util/stream/file.h>
+#include <util/stream/file.h>
#include <util/system/env.h>
#include <util/system/execpath.h>
-#include <util/system/fs.h>
+#include <util/system/fs.h>
TEST(Runtime, ArcadiaSourceRoot) {
@@ -99,64 +99,64 @@ TEST(Runtime, GetOutputRamDrivePath) {
Singleton<NPrivate::TTestEnv>()->ReInitialize();
EXPECT_EQ(tmpDir, GetOutputRamDrivePath());
}
-
-#ifdef _linux_
-TEST(Runtime, GdbPath) {
- Singleton<NPrivate::TTestEnv>()->ReInitialize();
- EXPECT_TRUE(NFs::Exists(::GdbPath()));
-}
-#endif
-
-TString ReInitializeContext(TStringBuf data) {
- auto tmpDir = ::GetSystemTempDir();
- auto filename = tmpDir + "/context.json";
- TOFStream stream(filename);
- stream.Write(data.data(), data.size());
- stream.Finish();
-
- NTesting::TScopedEnvironment contextGuard("YA_TEST_CONTEXT_FILE", filename);
- Singleton<NPrivate::TTestEnv>()->ReInitialize();
-
- return filename;
-}
-
-TEST(Runtime, GetTestParam) {
- TString context = R"json({
- "runtime": {
- "test_params": {
- "a": "b",
- "c": "d"
- }
- }
- })json";
- auto filename = ReInitializeContext(context);
-
- EXPECT_EQ("b", GetTestParam("a"));
- EXPECT_EQ("d", GetTestParam("c"));
- EXPECT_EQ("", GetTestParam("e"));
- EXPECT_EQ("w", GetTestParam("e", "w"));
-
- Singleton<NPrivate::TTestEnv>()->AddTestParam("e", "e");
- EXPECT_EQ("e", GetTestParam("e"));
-}
-
-TEST(Runtime, WatchProcessCore) {
- TString context = R"json({
- "internal": {
- "core_search_file": "watch_core.txt"
- }
- })json";
- auto filename = ReInitializeContext(context);
-
- WatchProcessCore(1, "bin1", "pwd");
- WatchProcessCore(2, "bin1");
- StopProcessCoreWatching(2);
-
- TIFStream file("watch_core.txt");
- auto data = file.ReadAll();
- TString expected = R"json({"cmd":"add","pid":1,"binary_path":"bin1","cwd":"pwd"}
-{"cmd":"add","pid":2,"binary_path":"bin1"}
-{"cmd":"drop","pid":2}
-)json";
- EXPECT_EQ(expected, data);
-}
+
+#ifdef _linux_
+TEST(Runtime, GdbPath) {
+ Singleton<NPrivate::TTestEnv>()->ReInitialize();
+ EXPECT_TRUE(NFs::Exists(::GdbPath()));
+}
+#endif
+
+TString ReInitializeContext(TStringBuf data) {
+ auto tmpDir = ::GetSystemTempDir();
+ auto filename = tmpDir + "/context.json";
+ TOFStream stream(filename);
+ stream.Write(data.data(), data.size());
+ stream.Finish();
+
+ NTesting::TScopedEnvironment contextGuard("YA_TEST_CONTEXT_FILE", filename);
+ Singleton<NPrivate::TTestEnv>()->ReInitialize();
+
+ return filename;
+}
+
+TEST(Runtime, GetTestParam) {
+ TString context = R"json({
+ "runtime": {
+ "test_params": {
+ "a": "b",
+ "c": "d"
+ }
+ }
+ })json";
+ auto filename = ReInitializeContext(context);
+
+ EXPECT_EQ("b", GetTestParam("a"));
+ EXPECT_EQ("d", GetTestParam("c"));
+ EXPECT_EQ("", GetTestParam("e"));
+ EXPECT_EQ("w", GetTestParam("e", "w"));
+
+ Singleton<NPrivate::TTestEnv>()->AddTestParam("e", "e");
+ EXPECT_EQ("e", GetTestParam("e"));
+}
+
+TEST(Runtime, WatchProcessCore) {
+ TString context = R"json({
+ "internal": {
+ "core_search_file": "watch_core.txt"
+ }
+ })json";
+ auto filename = ReInitializeContext(context);
+
+ WatchProcessCore(1, "bin1", "pwd");
+ WatchProcessCore(2, "bin1");
+ StopProcessCoreWatching(2);
+
+ TIFStream file("watch_core.txt");
+ auto data = file.ReadAll();
+ TString expected = R"json({"cmd":"add","pid":1,"binary_path":"bin1","cwd":"pwd"}
+{"cmd":"add","pid":2,"binary_path":"bin1"}
+{"cmd":"drop","pid":2}
+)json";
+ EXPECT_EQ(expected, data);
+}