X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=folly%2Ftest%2FSynchronizedTest.cpp;h=fb77721eeb0975167871c80148723dd258dfb428;hb=382372728d0f77c8d430577ea4cf77b53a56a4de;hp=d89b9f448e1fc7a06b24f09083042e84113f64f2;hpb=6b66499c48ba83883c6922326cd5d618e7e3a05d;p=folly.git diff --git a/folly/test/SynchronizedTest.cpp b/folly/test/SynchronizedTest.cpp index d89b9f44..fb77721e 100644 --- a/folly/test/SynchronizedTest.cpp +++ b/folly/test/SynchronizedTest.cpp @@ -59,10 +59,30 @@ TYPED_TEST(SynchronizedTest, Basic) { testBasic(); } +TYPED_TEST(SynchronizedTest, WithLock) { + testWithLock(); +} + +TYPED_TEST(SynchronizedTest, Unlock) { + testUnlock(); +} + +TYPED_TEST(SynchronizedTest, Deprecated) { + testDeprecated(); +} + TYPED_TEST(SynchronizedTest, Concurrency) { testConcurrency(); } +TYPED_TEST(SynchronizedTest, AcquireLocked) { + testAcquireLocked(); +} + +TYPED_TEST(SynchronizedTest, AcquireLockedWithConst) { + testAcquireLockedWithConst(); +} + TYPED_TEST(SynchronizedTest, DualLocking) { testDualLocking(); } @@ -94,6 +114,10 @@ using SynchronizedTimedTestTypes = testing::Types< folly::SharedMutexWritePriority>; TYPED_TEST_CASE(SynchronizedTimedTest, SynchronizedTimedTestTypes); +TYPED_TEST(SynchronizedTimedTest, Timed) { + testTimed(); +} + TYPED_TEST(SynchronizedTimedTest, TimedSynchronized) { testTimedSynchronized(); } @@ -114,6 +138,10 @@ using SynchronizedTimedWithConstTestTypes = testing::Types< TYPED_TEST_CASE( SynchronizedTimedWithConstTest, SynchronizedTimedWithConstTestTypes); +TYPED_TEST(SynchronizedTimedWithConstTest, TimedShared) { + testTimedShared(); +} + TYPED_TEST(SynchronizedTimedWithConstTest, TimedSynchronizeWithConst) { testTimedSynchronizedWithConst(); } @@ -179,7 +207,7 @@ TEST_F(SynchronizedLockTest, SyncUnSync) { EXPECT_EQ((CountPair{2, 2}), FakeMutex::getLockUnlockCount()); } -// Nested SYNCHRONIZED UNSYNCHRONIZED test, 2 levels for each are used here +// Nested SYNCHRONIZED UNSYNCHRONIZED test, 2 levels of synchronization TEST_F(SynchronizedLockTest, NestedSyncUnSync) { folly::Synchronized, FakeMutex> obj; EXPECT_EQ((CountPair{0, 0}), FakeMutex::getLockUnlockCount()); @@ -187,12 +215,15 @@ TEST_F(SynchronizedLockTest, NestedSyncUnSync) { EXPECT_EQ((CountPair{1, 0}), FakeMutex::getLockUnlockCount()); SYNCHRONIZED(obj) { EXPECT_EQ((CountPair{2, 0}), FakeMutex::getLockUnlockCount()); + // Note: UNSYNCHRONIZED has always been kind of broken here. + // The input parameter is ignored (other than to overwrite what the input + // variable name refers to), and it unlocks the most object acquired in + // the most recent SYNCHRONIZED scope. UNSYNCHRONIZED(obj) { EXPECT_EQ((CountPair{2, 1}), FakeMutex::getLockUnlockCount()); - UNSYNCHRONIZED(obj) { - EXPECT_EQ((CountPair{2, 2}), - FakeMutex::getLockUnlockCount()); - } + } + EXPECT_EQ((CountPair{3, 1}), FakeMutex::getLockUnlockCount()); + UNSYNCHRONIZED(obj) { EXPECT_EQ((CountPair{3, 2}), FakeMutex::getLockUnlockCount()); } EXPECT_EQ((CountPair{4, 2}), FakeMutex::getLockUnlockCount()); @@ -202,7 +233,7 @@ TEST_F(SynchronizedLockTest, NestedSyncUnSync) { EXPECT_EQ((CountPair{4, 4}), FakeMutex::getLockUnlockCount()); } -// Different nesting behavior, UNSYNCHRONIZED called on differen depth of +// Different nesting behavior, UNSYNCHRONIZED called on different depth of // SYNCHRONIZED TEST_F(SynchronizedLockTest, NestedSyncUnSync2) { folly::Synchronized, FakeMutex> obj;