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_
 |