diff options
Diffstat (limited to 'absl/synchronization/mutex_test.cc')
-rw-r--r-- | absl/synchronization/mutex_test.cc | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/absl/synchronization/mutex_test.cc b/absl/synchronization/mutex_test.cc index f3d60852..34751cb1 100644 --- a/absl/synchronization/mutex_test.cc +++ b/absl/synchronization/mutex_test.cc @@ -1730,95 +1730,4 @@ TEST(Mutex, SignalExitedThread) { for (auto &th : top) th.join(); } -#ifdef _MSC_VER - -// Declare classes of the various MSVC inheritance types. -class __single_inheritance SingleInheritance{}; -class __multiple_inheritance MultipleInheritance; -class __virtual_inheritance VirtualInheritance; -class UnknownInheritance; - -TEST(ConditionTest, MicrosoftMethodPointerSize) { - // This test verifies expectations about sizes of MSVC pointers to methods. - // Pointers to methods are distinguished by whether their class hierachies - // contain single inheritance, multiple inheritance, or virtual inheritence. - void (SingleInheritance::*single_inheritance)(); - void (MultipleInheritance::*multiple_inheritance)(); - void (VirtualInheritance::*virtual_inheritance)(); - void (UnknownInheritance::*unknown_inheritance)(); - -#if defined(_M_IX86) || defined(_M_ARM) - static_assert(sizeof(single_inheritance) == 4, - "Unexpected sizeof(single_inheritance)."); - static_assert(sizeof(multiple_inheritance) == 8, - "Unexpected sizeof(multiple_inheritance)."); - static_assert(sizeof(virtual_inheritance) == 12, - "Unexpected sizeof(virtual_inheritance)."); -#elif defined(_M_X64) || defined(__aarch64__) - static_assert(sizeof(single_inheritance) == 8, - "Unexpected sizeof(single_inheritance)."); - static_assert(sizeof(multiple_inheritance) == 16, - "Unexpected sizeof(multiple_inheritance)."); - static_assert(sizeof(virtual_inheritance) == 16, - "Unexpected sizeof(virtual_inheritance)."); -#endif - static_assert(sizeof(unknown_inheritance) >= sizeof(virtual_inheritance), - "Failed invariant: sizeof(unknown_inheritance) >= " - "sizeof(virtual_inheritance)!"); -} - -class Callback { - bool x = true; - - public: - Callback() {} - bool method() { - x = !x; - return x; - } -}; - -class M2 { - bool x = true; - - public: - M2() {} - bool method2() { - x = !x; - return x; - } -}; - -class MultipleInheritance : public Callback, public M2 {}; - -TEST(ConditionTest, ConditionWithMultipleInheritanceMethod) { - // This test ensures that Condition can deal with method pointers from classes - // with multiple inheritance. - MultipleInheritance object = MultipleInheritance(); - absl::Condition condition(&object, &MultipleInheritance::method); - EXPECT_FALSE(condition.Eval()); - EXPECT_TRUE(condition.Eval()); -} - -class __virtual_inheritance VirtualInheritance : virtual public Callback { - bool x = false; - - public: - VirtualInheritance() {} - bool method() { - x = !x; - return x; - } -}; - -TEST(ConditionTest, ConditionWithVirtualInheritanceMethod) { - // This test ensures that Condition can deal with method pointers from classes - // with virtual inheritance. - VirtualInheritance object = VirtualInheritance(); - absl::Condition condition(&object, &VirtualInheritance::method); - EXPECT_TRUE(condition.Eval()); - EXPECT_FALSE(condition.Eval()); -} -#endif - } // namespace |