268 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			268 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /**
 | |
|  * Copyright (c) 2021 OceanBase
 | |
|  * OceanBase CE is licensed under Mulan PubL v2.
 | |
|  * You can use this software according to the terms and conditions of the Mulan PubL v2.
 | |
|  * You may obtain a copy of Mulan PubL v2 at:
 | |
|  *          http://license.coscl.org.cn/MulanPubL-2.0
 | |
|  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 | |
|  * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 | |
|  * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 | |
|  * See the Mulan PubL v2 for more details.
 | |
|  */
 | |
| 
 | |
| #ifndef OCEANBASE_UNITTEST_MOCK_LOG_ENGINE_H_
 | |
| #define OCEANBASE_UNITTEST_MOCK_LOG_ENGINE_H_
 | |
| #include "clog/ob_i_log_engine.h"
 | |
| #include "mock_log_reader.h"
 | |
| #include "clog_mock_container/mock_log_engine.h"
 | |
| namespace oceanbase {
 | |
| namespace clog {
 | |
| class MockLogEngine : public MockObLogEngine {
 | |
| public:
 | |
|   MockLogEngine()
 | |
|   {}
 | |
|   virtual ~MockLogEngine()
 | |
|   {}
 | |
|   virtual ObIRawLogIterator* alloc_raw_log_iterator(const bool is_sys, const uint64_t file_id, const int64_t timeout)
 | |
|   {
 | |
|     UNUSED(is_sys);
 | |
|     UNUSED(file_id);
 | |
|     UNUSED(timeout);
 | |
|     MockRawLogIterator* ptr =
 | |
|         static_cast<MockRawLogIterator*>(common::ob_malloc(sizeof(MockRawLogIterator), common::ObModIds::OB_UPS_LOG));
 | |
|     ptr->init();
 | |
|     return ptr;
 | |
|   }
 | |
|   virtual void revert_raw_log_iterator(ObIRawLogIterator* iter)
 | |
|   {
 | |
|     common::ob_free(iter);
 | |
|   }
 | |
|   virtual int read_log_by_location(const bool is_sys, const clog::ObReadParam& param, ObLogEntry& entry)
 | |
|   {
 | |
|     UNUSED(is_sys);
 | |
|     UNUSED(param);
 | |
|     UNUSED(entry);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int read_log_by_id(const clog::ObReadParam& param, ObLogEntry& entry)
 | |
|   {
 | |
|     UNUSED(param);
 | |
|     UNUSED(entry);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int submit_flush_task(FlushTask* task)
 | |
|   {
 | |
|     ObLogCursor log_cursor;
 | |
|     task->after_consume(common::OB_SUCCESS, &log_cursor);
 | |
|     return common::OB_SUCCESS;
 | |
|   };
 | |
|   virtual int post_log(const common::ObAddr& server, const common::ObPartitionKey& key, const char* buf, int64_t len,
 | |
|       common::ObProposalID propose_id)
 | |
|   {
 | |
|     UNUSED(server);
 | |
|     UNUSED(key);
 | |
|     UNUSED(buf);
 | |
|     UNUSED(len);
 | |
|     UNUSED(propose_id);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int submit_net_task(
 | |
|       const common::ObMemberList& mem_list, const common::ObPartitionKey& key, ObILogNetTask* task)
 | |
|   {
 | |
|     UNUSED(mem_list);
 | |
|     UNUSED(key);
 | |
|     UNUSED(task);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int submit_log_ack(const common::ObAddr& server, const common::ObPartitionKey& key, const uint64_t log_id,
 | |
|       const common::ObProposalID propose_id, ObLogType type)
 | |
|   {
 | |
|     UNUSED(server);
 | |
|     UNUSED(key);
 | |
|     UNUSED(log_id);
 | |
|     UNUSED(propose_id);
 | |
|     UNUSED(type);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int fetch_log_from_all_follower(const common::ObMemberList& mem_list, const common::ObPartitionKey& key,
 | |
|       const uint64_t start_id, const uint64_t end_id, const common::ObProposalID propose_id)
 | |
|   {
 | |
|     UNUSED(mem_list);
 | |
|     UNUSED(key);
 | |
|     UNUSED(start_id);
 | |
|     UNUSED(end_id);
 | |
|     UNUSED(propose_id);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int fetch_log_from_leader(const common::ObAddr& server, const common::ObPartitionKey& key,
 | |
|       const uint64_t start_id, const uint64_t end_id, const common::ObProposalID propose_id)
 | |
|   {
 | |
|     UNUSED(server);
 | |
|     UNUSED(key);
 | |
|     UNUSED(start_id);
 | |
|     UNUSED(end_id);
 | |
|     UNUSED(propose_id);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int submit_prepare_rqst(
 | |
|       const common::ObMemberList& mem_list, const common::ObPartitionKey& key, const common::ObProposalID propose_id)
 | |
|   {
 | |
|     UNUSED(mem_list);
 | |
|     UNUSED(key);
 | |
|     UNUSED(propose_id);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int broadcast_mc_log_to_members(const common::ObPartitionKey& partition_key,
 | |
|       const common::ObMemberList& sendout_member_list, const char* buff, const int64_t buff_len)
 | |
|   {
 | |
|     UNUSED(partition_key);
 | |
|     UNUSED(sendout_member_list);
 | |
|     UNUSED(buff);
 | |
|     UNUSED(buff_len);
 | |
|     int ret = common::OB_SUCCESS;
 | |
|     return ret;
 | |
|   }
 | |
|   virtual int fetch_latest_mc_log(const common::ObPartitionKey& partition_key, const common::ObAddr& leader)
 | |
|   {
 | |
|     UNUSED(partition_key);
 | |
|     UNUSED(leader);
 | |
|     int ret = common::OB_SUCCESS;
 | |
|     return ret;
 | |
|   }
 | |
|   virtual int ack_mc_log_to_leader(const common::ObPartitionKey& partition_key, const common::ObAddr& leader,
 | |
|       const common::ObAddr& server, const int64_t mc_timestamp, const common::ObProposalID proposal_id)
 | |
|   {
 | |
|     UNUSED(partition_key);
 | |
|     UNUSED(leader);
 | |
|     UNUSED(server);
 | |
|     UNUSED(mc_timestamp);
 | |
|     UNUSED(proposal_id);
 | |
|     int ret = common::OB_SUCCESS;
 | |
|     return ret;
 | |
|   }
 | |
|   virtual int prepare_response(const common::ObAddr& server, const common::ObPartitionKey& partition_key,
 | |
|       const uint64_t max_log_id, const common::ObProposalID propose_id)
 | |
|   {
 | |
|     UNUSED(server);
 | |
|     UNUSED(partition_key);
 | |
|     UNUSED(max_log_id);
 | |
|     UNUSED(propose_id);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int get_current_cursor(uint64_t& file_id, int64_t& offset)
 | |
|   {
 | |
|     UNUSED(file_id);
 | |
|     UNUSED(offset);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int get_search_min_fid(const oceanbase::clog::ObReadParam& a, uint64_t& b)
 | |
|   {
 | |
|     UNUSED(a);
 | |
|     UNUSED(b);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int submit_fetch_log_resp(const oceanbase::common::ObMemberList& a,
 | |
|       const oceanbase::common::ObPartitionKey& b, oceanbase::clog::ObILogNetTask* c)
 | |
|   {
 | |
|     UNUSED(a);
 | |
|     UNUSED(b);
 | |
|     UNUSED(c);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int get_cur_min_fid(uint64_t& file_id)
 | |
|   {
 | |
|     UNUSED(file_id);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int get_cur_max_fid(uint64_t& file_id)
 | |
|   {
 | |
|     UNUSED(file_id);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual ObILogPartitionMetaReader* alloc_partition_meta_reader()
 | |
|   {
 | |
|     return NULL;
 | |
|   }
 | |
|   virtual void revert_partition_meta_reader(ObILogPartitionMetaReader* reader)
 | |
|   {
 | |
|     UNUSED(reader);
 | |
|     return;
 | |
|   }
 | |
|   int get_remote_membership_timestamp(
 | |
|       const common::ObAddr& server, const common::ObPartitionKey& partition_key, int64_t& timestamp)
 | |
|   {
 | |
|     UNUSED(server);
 | |
|     UNUSED(partition_key);
 | |
|     UNUSED(timestamp);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   ObIndexInfoBlockHandler& get_flying_ilog_info_handler(const bool is_sys)
 | |
|   {
 | |
|     UNUSED(is_sys);
 | |
|     return fake_handler_;
 | |
|   }
 | |
|   void revert_flying_ilog_info_handler(ObIndexInfoBlockHandler* handler)
 | |
|   {
 | |
|     UNUSED(handler);
 | |
|   }
 | |
|   int get_clog_info_handler(const bool is_sys, const file_id_t file_id, ObCommitInfoBlockHandler& handler)
 | |
|   {
 | |
|     UNUSED(is_sys);
 | |
|     UNUSED(file_id);
 | |
|     UNUSED(handler);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   int get_ilog_info_handler(const bool is_sys, const file_id_t file_id, ObIndexInfoBlockHandler& handler)
 | |
|   {
 | |
|     UNUSED(is_sys);
 | |
|     UNUSED(file_id);
 | |
|     UNUSED(handler);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   int update_ilog_info(const bool is_sys, const common::ObVersion& version)
 | |
|   {
 | |
|     UNUSED(is_sys);
 | |
|     UNUSED(version);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
| 
 | |
|   file_id_t get_flying_ilog_file_id(const bool is_sys)
 | |
|   {
 | |
|     UNUSED(is_sys);
 | |
|     return common::OB_INVALID_FILE_ID;
 | |
|   }
 | |
|   file_id_t get_flying_clog_file_id(const bool is_sys)
 | |
|   {
 | |
|     UNUSED(is_sys);
 | |
|     return common::OB_INVALID_FILE_ID;
 | |
|   }
 | |
|   virtual int add_to_black_list(const common::ObAddr& server)
 | |
|   {
 | |
|     UNUSED(server);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual int remove_from_black_list(const common::ObAddr& server)
 | |
|   {
 | |
|     UNUSED(server);
 | |
|     return common::OB_SUCCESS;
 | |
|   }
 | |
|   virtual void set_all_scan_finish()
 | |
|   {}
 | |
|   virtual int broadcast_info(const common::ObMemberList& mem_list, const common::ObPartitionKey& key,
 | |
|       const common::ObReplicaType& replica_type, const uint64_t max_confirmed_log_id)
 | |
|   {
 | |
|     UNUSED(mem_list);
 | |
|     UNUSED(key);
 | |
|     UNUSED(replica_type);
 | |
|     UNUSED(max_confirmed_log_id);
 | |
|     return 0;
 | |
|   }
 | |
| 
 | |
| private:
 | |
|   ObIndexInfoBlockHandler fake_handler_;
 | |
| };
 | |
| }  // namespace clog
 | |
| }  // namespace oceanbase
 | |
| 
 | |
| #endif  // OCEANBASE_UNITTEST_MOCK_LOG_ENGINE_H_
 | 
