1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-04-19 21:02:17 +03:00
wsrep-lib/test/test_utils.hpp
Teemu Ollakka 19eaed587c Fix total order BF abort
Streaming rollback for total order BF abort used regular
BF abort codepath, which was not correct because the streaming
rollback must fully complete before total order operation executes.
Fixed this by adjusting bf_aborted_in_total_order_
before streaming_rollback() gets called.
2023-03-02 08:37:12 +02:00

56 lines
1.7 KiB
C++

/*
* Copyright (C) 2018 Codership Oy <info@codership.com>
*
* This file is part of wsrep-lib.
*
* Wsrep-lib is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Wsrep-lib is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with wsrep-lib. If not, see <https://www.gnu.org/licenses/>.
*/
// Forward declarations
namespace wsrep
{
class client_state;
class mock_server_state;
}
#include "wsrep/transaction.hpp"
#include "wsrep/provider.hpp"
//
// Utility functions
//
namespace wsrep_test
{
// Simple BF abort method to BF abort unordered transasctions
void bf_abort_unordered(wsrep::client_state& cc);
// Simple BF abort method to BF abort unordered transasctions
void bf_abort_ordered(wsrep::client_state& cc);
// BF abort method to abort transactions via provider
void bf_abort_provider(wsrep::mock_server_state& sc,
const wsrep::transaction& tc,
wsrep::seqno bf_seqno);
// BF abort in total order
void bf_abort_in_total_order(wsrep::client_state&);
// Terminate streaming applier by applying rollback fragment.
void terminate_streaming_applier(
wsrep::mock_server_state& sc,
const wsrep::id& server_id,
wsrep::transaction_id transaction_id);
}