Skip to content

Commit e0163ed

Browse files
authored
chore: more info for lock number incorrect (#569)
Signed-off-by: Alex Chi <[email protected]>
1 parent 48422af commit e0163ed

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

test/concurrency/lock_manager_test.cpp

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,15 @@ void CheckAborted(Transaction *txn) { EXPECT_EQ(txn->GetState(), TransactionStat
2929
void CheckCommitted(Transaction *txn) { EXPECT_EQ(txn->GetState(), TransactionState::COMMITTED); }
3030

3131
void CheckTxnRowLockSize(Transaction *txn, table_oid_t oid, size_t shared_size, size_t exclusive_size) {
32-
EXPECT_EQ((*(txn->GetSharedRowLockSet()))[oid].size(), shared_size);
33-
EXPECT_EQ((*(txn->GetExclusiveRowLockSet()))[oid].size(), exclusive_size);
32+
bool correct = true;
33+
correct = correct && (*txn->GetSharedRowLockSet())[oid].size() == shared_size;
34+
correct = correct && (*txn->GetExclusiveRowLockSet())[oid].size() == exclusive_size;
35+
if (!correct) {
36+
fmt::print("row lock size incorrect for txn={} oid={}: expected (S={} X={}), actual (S={} X={})\n",
37+
txn->GetTransactionId(), oid, shared_size, exclusive_size, (*txn->GetSharedRowLockSet())[oid].size(),
38+
(*txn->GetExclusiveRowLockSet())[oid].size());
39+
}
40+
EXPECT_TRUE(correct);
3441
}
3542

3643
int GetTxnTableLockSize(Transaction *txn, LockManager::LockMode lock_mode) {
@@ -52,11 +59,22 @@ int GetTxnTableLockSize(Transaction *txn, LockManager::LockMode lock_mode) {
5259

5360
void CheckTableLockSizes(Transaction *txn, size_t s_size, size_t x_size, size_t is_size, size_t ix_size,
5461
size_t six_size) {
55-
EXPECT_EQ(s_size, txn->GetSharedTableLockSet()->size());
56-
EXPECT_EQ(x_size, txn->GetExclusiveTableLockSet()->size());
57-
EXPECT_EQ(is_size, txn->GetIntentionSharedTableLockSet()->size());
58-
EXPECT_EQ(ix_size, txn->GetIntentionExclusiveTableLockSet()->size());
59-
EXPECT_EQ(six_size, txn->GetSharedIntentionExclusiveTableLockSet()->size());
62+
bool correct = true;
63+
correct = correct && s_size == txn->GetSharedTableLockSet()->size();
64+
correct = correct && x_size == txn->GetExclusiveTableLockSet()->size();
65+
correct = correct && is_size == txn->GetIntentionSharedTableLockSet()->size();
66+
correct = correct && ix_size == txn->GetIntentionExclusiveTableLockSet()->size();
67+
correct = correct && six_size == txn->GetSharedIntentionExclusiveTableLockSet()->size();
68+
if (!correct) {
69+
fmt::print(
70+
"table lock size incorrect for txn={}: expected (S={} X={}, IS={}, IX={}, SIX={}), actual (S={} X={}, IS={}, "
71+
"IX={}, "
72+
"SIX={})\n",
73+
txn->GetTransactionId(), s_size, x_size, is_size, ix_size, six_size, txn->GetSharedTableLockSet()->size(),
74+
txn->GetExclusiveTableLockSet()->size(), txn->GetIntentionSharedTableLockSet()->size(),
75+
txn->GetIntentionExclusiveTableLockSet()->size(), txn->GetSharedIntentionExclusiveTableLockSet()->size());
76+
}
77+
EXPECT_TRUE(correct);
6078
}
6179

6280
void TableLockTest1() {

0 commit comments

Comments
 (0)