#include #include using namespace XCEngine::Threading; namespace { TEST(Threading_Mutex, LockUnlock) { Mutex mutex; mutex.Lock(); mutex.Unlock(); } TEST(Threading_Mutex, TryLock_Success) { Mutex mutex; bool result = mutex.TryLock(); EXPECT_TRUE(result); mutex.Unlock(); } TEST(Threading_Mutex, TryLock_AlreadyLocked) { Mutex mutex; mutex.Lock(); bool result = mutex.TryLock(); EXPECT_FALSE(result); mutex.Unlock(); } TEST(Threading_Mutex, MultipleLockUnlock) { Mutex mutex; for (int i = 0; i < 10; ++i) { mutex.Lock(); mutex.Unlock(); } } } // namespace