1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-07-28 20:02:00 +03:00

Add a method to disable BF aborts for transaction

This commit is contained in:
Teemu Ollakka
2024-03-20 19:05:36 +02:00
parent 7d108eb870
commit 06b07fe940
5 changed files with 98 additions and 1 deletions

View File

@ -1267,6 +1267,49 @@ BOOST_FIXTURE_TEST_CASE_TEMPLATE(transaction_keep_error_bf_after_after_command_b
BOOST_REQUIRE(cc.current_error() == wsrep::e_success);
}
BOOST_FIXTURE_TEST_CASE(transaction_disable_bf_abort,
replicating_client_fixture_sync_rm)
{
cc.start_transaction(wsrep::transaction_id(1));
BOOST_REQUIRE_EQUAL(cc.disable_bf_abort(), 0);
BOOST_REQUIRE(tc.state() == wsrep::transaction::s_executing);
BOOST_REQUIRE_EQUAL(cc.before_prepare(), 1);
BOOST_REQUIRE_EQUAL(cc.before_commit(), 1);
cc.before_rollback();
cc.after_rollback();
cc.after_statement();
}
BOOST_FIXTURE_TEST_CASE(transaction_disable_bf_abort_bf_aborted,
replicating_client_fixture_sync_rm)
{
cc.start_transaction(wsrep::transaction_id(1));
wsrep_test::bf_abort_unordered(cc);
BOOST_REQUIRE_EQUAL(cc.disable_bf_abort(), 1);
cc.before_rollback();
cc.after_rollback();
cc.after_statement();
}
BOOST_FIXTURE_TEST_CASE(transaction_disable_bf_abort_key_appended,
replicating_client_fixture_sync_rm)
{
cc.start_transaction(wsrep::transaction_id(1));
int vals[3] = {1, 2, 3};
wsrep::key key(wsrep::key::exclusive);
for (int i(0); i < 3; ++i)
{
key.append_key_part(&vals[i], sizeof(vals[i]));
}
BOOST_REQUIRE_EQUAL(cc.append_key(key), 0);
BOOST_REQUIRE_EQUAL(cc.disable_bf_abort(), 1);
cc.before_rollback();
cc.after_rollback();
cc.after_statement();
}
BOOST_FIXTURE_TEST_CASE(transaction_1pc_applying,
applying_client_fixture)
{