diff options
author | bulatman <bulatman@yandex-team.ru> | 2022-02-10 16:45:50 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:50 +0300 |
commit | 2f6ca198245aeffd5e2d82b65927c2465b68b4f5 (patch) | |
tree | 9142afc54d335ea52910662635b898e79e192e49 /library/cpp/testing/common/scope.h | |
parent | 6560e4993b14d193f8c879e33a3de5e5eba6e21d (diff) | |
download | ydb-2f6ca198245aeffd5e2d82b65927c2465b68b4f5.tar.gz |
Restoring authorship annotation for <bulatman@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/testing/common/scope.h')
-rw-r--r-- | library/cpp/testing/common/scope.h | 78 |
1 files changed, 39 insertions, 39 deletions
diff --git a/library/cpp/testing/common/scope.h b/library/cpp/testing/common/scope.h index af12bda3c4..a2ca0e77e4 100644 --- a/library/cpp/testing/common/scope.h +++ b/library/cpp/testing/common/scope.h @@ -1,39 +1,39 @@ -#pragma once - -#include <util/generic/string.h> -#include <util/generic/vector.h> -#include <util/system/env.h> - -#include <utility> - -namespace NTesting { - // @brief Assigns new values to the given environment variables and restores old values upon destruction. - // @note if there was no env variable with given name, it will be set to empty string upon destruction IGNIETFERRO-1486 - struct TScopedEnvironment { - TScopedEnvironment(const TString& name, const TString& value) - : PreviousState{1, {name, ::GetEnv(name)}} - { - ::SetEnv(name, value); - } - - TScopedEnvironment(const TVector<std::pair<TString, TString>>& vars) - : PreviousState(Reserve(vars.size())) - { - for (const auto& [k, v] : vars) { - PreviousState.emplace_back(k, ::GetEnv(k)); - ::SetEnv(k, v); - } - } - - ~TScopedEnvironment() { - for (const auto& [k, v] : PreviousState) { - ::SetEnv(k, v); - } - } - - TScopedEnvironment(const TScopedEnvironment&) = delete; - TScopedEnvironment& operator=(const TScopedEnvironment&) = delete; - private: - TVector<std::pair<TString, TString>> PreviousState; - }; -} +#pragma once + +#include <util/generic/string.h> +#include <util/generic/vector.h> +#include <util/system/env.h> + +#include <utility> + +namespace NTesting { + // @brief Assigns new values to the given environment variables and restores old values upon destruction. + // @note if there was no env variable with given name, it will be set to empty string upon destruction IGNIETFERRO-1486 + struct TScopedEnvironment { + TScopedEnvironment(const TString& name, const TString& value) + : PreviousState{1, {name, ::GetEnv(name)}} + { + ::SetEnv(name, value); + } + + TScopedEnvironment(const TVector<std::pair<TString, TString>>& vars) + : PreviousState(Reserve(vars.size())) + { + for (const auto& [k, v] : vars) { + PreviousState.emplace_back(k, ::GetEnv(k)); + ::SetEnv(k, v); + } + } + + ~TScopedEnvironment() { + for (const auto& [k, v] : PreviousState) { + ::SetEnv(k, v); + } + } + + TScopedEnvironment(const TScopedEnvironment&) = delete; + TScopedEnvironment& operator=(const TScopedEnvironment&) = delete; + private: + TVector<std::pair<TString, TString>> PreviousState; + }; +} |