diff options
author | Anton Samokhvalov <pg83@yandex.ru> | 2022-02-10 16:45:17 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:17 +0300 |
commit | d3a398281c6fd1d3672036cb2d63f842d2cb28c5 (patch) | |
tree | dd4bd3ca0f36b817e96812825ffaf10d645803f2 /util/system/atomic_ut.cpp | |
parent | 72cb13b4aff9bc9cf22e49251bc8fd143f82538f (diff) | |
download | ydb-d3a398281c6fd1d3672036cb2d63f842d2cb28c5.tar.gz |
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 2 of 2.
Diffstat (limited to 'util/system/atomic_ut.cpp')
-rw-r--r-- | util/system/atomic_ut.cpp | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/util/system/atomic_ut.cpp b/util/system/atomic_ut.cpp index efe9442fe27..07211ffba73 100644 --- a/util/system/atomic_ut.cpp +++ b/util/system/atomic_ut.cpp @@ -1,45 +1,45 @@ -#include "atomic.h" - +#include "atomic.h" + #include <library/cpp/testing/unittest/registar.h> - -#include <util/generic/ylimits.h> - + +#include <util/generic/ylimits.h> + template <typename TAtomic> class TAtomicTest - : public TTestBase { + : public TTestBase { UNIT_TEST_SUITE(TAtomicTest); - UNIT_TEST(TestAtomicInc1) - UNIT_TEST(TestAtomicInc2) + UNIT_TEST(TestAtomicInc1) + UNIT_TEST(TestAtomicInc2) UNIT_TEST(TestAtomicGetAndInc) - UNIT_TEST(TestAtomicDec) + UNIT_TEST(TestAtomicDec) UNIT_TEST(TestAtomicGetAndDec) - UNIT_TEST(TestAtomicAdd) + UNIT_TEST(TestAtomicAdd) UNIT_TEST(TestAtomicGetAndAdd) - UNIT_TEST(TestAtomicSub) + UNIT_TEST(TestAtomicSub) UNIT_TEST(TestAtomicGetAndSub) - UNIT_TEST(TestAtomicSwap) + UNIT_TEST(TestAtomicSwap) UNIT_TEST(TestAtomicOr) UNIT_TEST(TestAtomicAnd) UNIT_TEST(TestAtomicXor) - UNIT_TEST(TestCAS) + UNIT_TEST(TestCAS) UNIT_TEST(TestGetAndCAS) - UNIT_TEST(TestLockUnlock) + UNIT_TEST(TestLockUnlock) UNIT_TEST_SUITE_END(); - + private: inline void TestLockUnlock() { TAtomic v = 0; - + UNIT_ASSERT(AtomicTryLock(&v)); UNIT_ASSERT(!AtomicTryLock(&v)); UNIT_ASSERT_VALUES_EQUAL(v, 1); AtomicUnlock(&v); UNIT_ASSERT_VALUES_EQUAL(v, 0); } - + inline void TestCAS() { TAtomic v = 0; - + UNIT_ASSERT(AtomicCas(&v, 1, 0)); UNIT_ASSERT(!AtomicCas(&v, 1, 0)); UNIT_ASSERT_VALUES_EQUAL(v, 1); @@ -48,7 +48,7 @@ private: UNIT_ASSERT(AtomicCas(&v, Max<intptr_t>(), 0)); UNIT_ASSERT_VALUES_EQUAL(v, Max<intptr_t>()); } - + inline void TestGetAndCAS() { TAtomic v = 0; @@ -63,22 +63,22 @@ private: inline void TestAtomicInc1() { TAtomic v = 0; - + UNIT_ASSERT(AtomicAdd(v, 1)); UNIT_ASSERT_VALUES_EQUAL(v, 1); UNIT_ASSERT(AtomicAdd(v, 10)); UNIT_ASSERT_VALUES_EQUAL(v, 11); } - + inline void TestAtomicInc2() { TAtomic v = 0; - + UNIT_ASSERT(AtomicIncrement(v)); UNIT_ASSERT_VALUES_EQUAL(v, 1); UNIT_ASSERT(AtomicIncrement(v)); UNIT_ASSERT_VALUES_EQUAL(v, 2); } - + inline void TestAtomicGetAndInc() { TAtomic v = 0; @@ -90,13 +90,13 @@ private: inline void TestAtomicDec() { TAtomic v = 2; - + UNIT_ASSERT(AtomicDecrement(v)); UNIT_ASSERT_VALUES_EQUAL(v, 1); UNIT_ASSERT(!AtomicDecrement(v)); UNIT_ASSERT_VALUES_EQUAL(v, 0); } - + inline void TestAtomicGetAndDec() { TAtomic v = 2; @@ -108,7 +108,7 @@ private: inline void TestAtomicAdd() { TAtomic v = 0; - + UNIT_ASSERT_VALUES_EQUAL(AtomicAdd(v, 1), 1); UNIT_ASSERT_VALUES_EQUAL(AtomicAdd(v, 2), 3); UNIT_ASSERT_VALUES_EQUAL(AtomicAdd(v, -4), -1); @@ -124,15 +124,15 @@ private: UNIT_ASSERT_VALUES_EQUAL(v, -1); } - inline void TestAtomicSub() { + inline void TestAtomicSub() { TAtomic v = 4; - + UNIT_ASSERT_VALUES_EQUAL(AtomicSub(v, 1), 3); UNIT_ASSERT_VALUES_EQUAL(AtomicSub(v, 2), 1); UNIT_ASSERT_VALUES_EQUAL(AtomicSub(v, 3), -2); UNIT_ASSERT_VALUES_EQUAL(v, -2); } - + inline void TestAtomicGetAndSub() { TAtomic v = 4; @@ -144,7 +144,7 @@ private: inline void TestAtomicSwap() { TAtomic v = 0; - + UNIT_ASSERT_VALUES_EQUAL(AtomicSwap(&v, 3), 0); UNIT_ASSERT_VALUES_EQUAL(AtomicSwap(&v, 5), 3); UNIT_ASSERT_VALUES_EQUAL(AtomicSwap(&v, -7), 5); @@ -186,32 +186,32 @@ private: UNIT_ASSERT_VALUES_EQUAL(AtomicSwap(&p, nullptr), &i); UNIT_ASSERT(AtomicCas(&p, &i, nullptr)); } -}; - +}; + UNIT_TEST_SUITE_REGISTRATION(TAtomicTest<TAtomic>); #ifndef _MSC_VER // chooses type *other than* T1 -template <typename T1, typename T2, typename T3> -struct TChooser { +template <typename T1, typename T2, typename T3> +struct TChooser { using TdType = T2; }; - -template <typename T1, typename T2> -struct TChooser<T1, T1, T2> { + +template <typename T1, typename T2> +struct TChooser<T1, T1, T2> { using TdType = T2; }; - -template <typename T1> -struct TChooser<T1, T1, T1> {}; - #if defined(__IOS__) && defined(_32_) -using TAltAtomic = int; - #else +template <typename T1> +struct TChooser<T1, T1, T1> {}; + + #if defined(__IOS__) && defined(_32_) +using TAltAtomic = int; + #else using TAltAtomic = volatile TChooser<TAtomicBase, long, long long>::TdType; - #endif + #endif -class TTTest: public TAtomicTest<TAltAtomic> { +class TTTest: public TAtomicTest<TAltAtomic> { public: TString Name() const noexcept override { return "TAtomicTest<TAltAtomic>"; |