patch 4.0
This commit is contained in:
@ -16,8 +16,10 @@
|
||||
#define private public
|
||||
#include "lib/lock/ob_bucket_lock.h"
|
||||
|
||||
namespace oceanbase {
|
||||
namespace common {
|
||||
namespace oceanbase
|
||||
{
|
||||
namespace common
|
||||
{
|
||||
|
||||
TEST(ObBucketLock, succeed_wrlock_all)
|
||||
{
|
||||
@ -130,7 +132,7 @@ TEST(ObBucketLock, wlock_multi_buckets)
|
||||
lock.init(1024);
|
||||
|
||||
{
|
||||
ObMultiBucketLockGuard guard(lock, true /*is_write_lock*/);
|
||||
ObMultiBucketLockGuard guard(lock, true/*is_write_lock*/);
|
||||
ObArray<uint64_t> hash_array;
|
||||
ASSERT_EQ(OB_SUCCESS, hash_array.push_back(1));
|
||||
ASSERT_EQ(OB_SUCCESS, bucket_array.push_back(1 % lock.get_bucket_count()));
|
||||
@ -141,7 +143,7 @@ TEST(ObBucketLock, wlock_multi_buckets)
|
||||
ASSERT_EQ(OB_SUCCESS, hash_array.push_back(301));
|
||||
ASSERT_EQ(OB_SUCCESS, bucket_array.push_back(301 % lock.get_bucket_count()));
|
||||
ASSERT_EQ(OB_SUCCESS, guard.lock_multi_buckets(hash_array));
|
||||
for (int64_t i = 0; i < bucket_array.count(); ++i) {
|
||||
for (int64_t i = 0; i < bucket_array.count(); ++i) {
|
||||
ASSERT_EQ(OB_EAGAIN, lock.try_rdlock(bucket_array.at(i)));
|
||||
}
|
||||
}
|
||||
@ -161,7 +163,7 @@ TEST(ObBucketLock, rlock_multi_buckets)
|
||||
lock.init(1024);
|
||||
|
||||
{
|
||||
ObMultiBucketLockGuard guard(lock, false /*is_write_lock*/);
|
||||
ObMultiBucketLockGuard guard(lock, false/*is_write_lock*/);
|
||||
ObArray<uint64_t> hash_array;
|
||||
ASSERT_EQ(OB_SUCCESS, hash_array.push_back(1));
|
||||
ASSERT_EQ(OB_SUCCESS, bucket_array.push_back(1 % lock.get_bucket_count()));
|
||||
@ -172,10 +174,10 @@ TEST(ObBucketLock, rlock_multi_buckets)
|
||||
ASSERT_EQ(OB_SUCCESS, hash_array.push_back(301));
|
||||
ASSERT_EQ(OB_SUCCESS, bucket_array.push_back(301 % lock.get_bucket_count()));
|
||||
ASSERT_EQ(OB_SUCCESS, guard.lock_multi_buckets(hash_array));
|
||||
for (int64_t i = 0; i < bucket_array.count(); ++i) {
|
||||
for (int64_t i = 0; i < bucket_array.count(); ++i) {
|
||||
ASSERT_EQ(OB_EAGAIN, lock.try_wrlock(bucket_array.at(i)));
|
||||
}
|
||||
for (int64_t i = 0; i < bucket_array.count(); ++i) {
|
||||
for (int64_t i = 0; i < bucket_array.count(); ++i) {
|
||||
ASSERT_EQ(OB_SUCCESS, lock.try_rdlock(bucket_array.at(i)));
|
||||
ASSERT_EQ(OB_SUCCESS, lock.unlock(bucket_array.at(i)));
|
||||
}
|
||||
@ -188,6 +190,7 @@ TEST(ObBucketLock, rlock_multi_buckets)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TEST(ObBucketLock, hash_rlock)
|
||||
{
|
||||
ObBucketLock lock;
|
||||
@ -206,6 +209,7 @@ TEST(ObBucketLock, hash_rlock)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TEST(ObBucketLock, hash_wlock)
|
||||
{
|
||||
ObBucketLock lock;
|
||||
@ -223,10 +227,10 @@ TEST(ObBucketLock, hash_wlock)
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace common
|
||||
} // namespace oceanbase
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
oceanbase::common::ObLogger::get_logger().set_log_level("INFO");
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
|
||||
Reference in New Issue
Block a user