aboutsummaryrefslogtreecommitdiffstats
path: root/util/system/context_ut.cpp
diff options
context:
space:
mode:
authorAnton Samokhvalov <pg83@yandex.ru>2022-02-10 16:45:15 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:15 +0300
commit72cb13b4aff9bc9cf22e49251bc8fd143f82538f (patch)
treeda2c34829458c7d4e74bdfbdf85dff449e9e7fb8 /util/system/context_ut.cpp
parent778e51ba091dc39e7b7fcab2b9cf4dbedfb6f2b5 (diff)
downloadydb-72cb13b4aff9bc9cf22e49251bc8fd143f82538f.tar.gz
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 1 of 2.
Diffstat (limited to 'util/system/context_ut.cpp')
-rw-r--r--util/system/context_ut.cpp122
1 files changed, 61 insertions, 61 deletions
diff --git a/util/system/context_ut.cpp b/util/system/context_ut.cpp
index 45cb0249f7..8c0eb2cbaa 100644
--- a/util/system/context_ut.cpp
+++ b/util/system/context_ut.cpp
@@ -1,71 +1,71 @@
-#include "context.h"
-
+#include "context.h"
+
#include <library/cpp/testing/unittest/registar.h>
-
-#include <util/generic/deque.h>
+
+#include <util/generic/deque.h>
#include <util/generic/yexception.h>
-
+
Y_UNIT_TEST_SUITE(TestContext) {
- template <class F>
- static TContClosure Wrap(F& f) {
- struct TW: public ITrampoLine {
- inline TW(F* ff) noexcept
- : F_(ff)
- {
- }
-
- void DoRun() override {
- (*F_)();
- }
-
- F* F_;
- char Buf[1000000];
- };
-
+ template <class F>
+ static TContClosure Wrap(F& f) {
+ struct TW: public ITrampoLine {
+ inline TW(F* ff) noexcept
+ : F_(ff)
+ {
+ }
+
+ void DoRun() override {
+ (*F_)();
+ }
+
+ F* F_;
+ char Buf[1000000];
+ };
+
static TDeque<TW> w;
-
- auto& tw = w.emplace_back(&f);
-
+
+ auto& tw = w.emplace_back(&f);
+
return {&tw, TArrayRef(tw.Buf, sizeof(tw.Buf))};
- }
-
+ }
+
Y_UNIT_TEST(TestExceptionSafety) {
- TExceptionSafeContext main;
- TExceptionSafeContext* volatile nextPtr = nullptr;
-
+ TExceptionSafeContext main;
+ TExceptionSafeContext* volatile nextPtr = nullptr;
+
bool hasUncaught = true;
-
+
auto func = [&]() {
hasUncaught = UncaughtException();
- nextPtr->SwitchTo(&main);
- };
-
- auto closure = Wrap(func);
-
- TExceptionSafeContext next(closure);
-
- nextPtr = &next;
-
- struct THelper {
- inline ~THelper() {
- M->SwitchTo(N);
- }
-
- TExceptionSafeContext* M;
- TExceptionSafeContext* N;
- };
-
- bool throwed = false;
-
- try {
- THelper helper{&main, &next};
-
- throw 1;
- } catch (...) {
- throwed = true;
- }
-
- UNIT_ASSERT(throwed);
+ nextPtr->SwitchTo(&main);
+ };
+
+ auto closure = Wrap(func);
+
+ TExceptionSafeContext next(closure);
+
+ nextPtr = &next;
+
+ struct THelper {
+ inline ~THelper() {
+ M->SwitchTo(N);
+ }
+
+ TExceptionSafeContext* M;
+ TExceptionSafeContext* N;
+ };
+
+ bool throwed = false;
+
+ try {
+ THelper helper{&main, &next};
+
+ throw 1;
+ } catch (...) {
+ throwed = true;
+ }
+
+ UNIT_ASSERT(throwed);
UNIT_ASSERT(!hasUncaught);
- }
-}
+ }
+}