unittest/syncd/MockableSaiInterface.h (188 lines of code) (raw):
#pragma once
#include <functional>
#include "DummySaiInterface.h"
class MockableSaiInterface: public saimeta::DummySaiInterface
{
public:
MockableSaiInterface();
virtual ~MockableSaiInterface();
public:
virtual sai_status_t apiInitialize(
_In_ uint64_t flags,
_In_ const sai_service_method_table_t *service_method_table) override;
virtual sai_status_t apiUninitialize(void) override;
public: // SAI interface overrides
virtual sai_status_t create(
_In_ sai_object_type_t objectType,
_Out_ sai_object_id_t* objectId,
_In_ sai_object_id_t switchId,
_In_ uint32_t attr_count,
_In_ const sai_attribute_t *attr_list) override;
std::function<sai_status_t(sai_object_type_t, _Out_ sai_object_id_t*, sai_object_id_t, uint32_t, const sai_attribute_t*)> mock_create;
virtual sai_status_t remove(
_In_ sai_object_type_t objectType,
_In_ sai_object_id_t objectId) override;
std::function<sai_status_t(sai_object_type_t, sai_object_id_t)> mock_remove;
virtual sai_status_t set(
_In_ sai_object_type_t objectType,
_In_ sai_object_id_t objectId,
_In_ const sai_attribute_t *attr) override;
std::function<sai_status_t(sai_object_type_t, sai_object_id_t, const sai_attribute_t *)> mock_set;
virtual sai_status_t get(
_In_ sai_object_type_t objectType,
_In_ sai_object_id_t objectId,
_In_ uint32_t attr_count,
_Inout_ sai_attribute_t *attr_list) override;
std::function<sai_status_t(sai_object_type_t, sai_object_id_t, uint32_t, sai_attribute_t *)> mock_get;
public: // bulk QUAD oid
virtual sai_status_t bulkCreate(
_In_ sai_object_type_t object_type,
_In_ sai_object_id_t switch_id,
_In_ uint32_t object_count,
_In_ const uint32_t *attr_count,
_In_ const sai_attribute_t **attr_list,
_In_ sai_bulk_op_error_mode_t mode,
_Out_ sai_object_id_t *object_id,
_Out_ sai_status_t *object_statuses) override;
std::function<sai_status_t(sai_object_type_t, sai_object_id_t, uint32_t, const uint32_t *, const sai_attribute_t **, sai_bulk_op_error_mode_t, sai_object_id_t *, sai_status_t*)> mock_bulkCreate;
virtual sai_status_t bulkRemove(
_In_ sai_object_type_t object_type,
_In_ uint32_t object_count,
_In_ const sai_object_id_t *object_id,
_In_ sai_bulk_op_error_mode_t mode,
_Out_ sai_status_t *object_statuses) override;
std::function<sai_status_t(sai_object_type_t, uint32_t, const sai_object_id_t *, sai_bulk_op_error_mode_t, sai_status_t *)> mock_bulkRemove;
virtual sai_status_t bulkSet(
_In_ sai_object_type_t object_type,
_In_ uint32_t object_count,
_In_ const sai_object_id_t *object_id,
_In_ const sai_attribute_t *attr_list,
_In_ sai_bulk_op_error_mode_t mode,
_Out_ sai_status_t *object_statuses) override;
std::function<sai_status_t(sai_object_type_t, uint32_t, const sai_object_id_t *, const sai_attribute_t *, sai_bulk_op_error_mode_t, sai_status_t *)> mock_bulkSet;
virtual sai_status_t bulkGet(
_In_ sai_object_type_t object_type,
_In_ uint32_t object_count,
_In_ const sai_object_id_t *object_id,
_In_ const uint32_t *attr_count,
_Inout_ sai_attribute_t **attr_list,
_In_ sai_bulk_op_error_mode_t mode,
_Out_ sai_status_t *object_statuses) override;
public: // stats API
virtual sai_status_t getStats(
_In_ sai_object_type_t object_type,
_In_ sai_object_id_t object_id,
_In_ uint32_t number_of_counters,
_In_ const sai_stat_id_t *counter_ids,
_Out_ uint64_t *counters) override;
std::function<sai_status_t(sai_object_type_t, sai_object_id_t, uint32_t, const sai_stat_id_t *, uint64_t *)> mock_getStats;
virtual sai_status_t queryStatsCapability(
_In_ sai_object_id_t switch_id,
_In_ sai_object_type_t object_type,
_Inout_ sai_stat_capability_list_t *stats_capability) override;
std::function<sai_status_t(sai_object_id_t, sai_object_type_t, sai_stat_capability_list_t *)> mock_queryStatsCapability;
virtual sai_status_t queryStatsStCapability(
_In_ sai_object_id_t switch_id,
_In_ sai_object_type_t object_type,
_Inout_ sai_stat_st_capability_list_t *stats_capability) override;
std::function<sai_status_t(sai_object_id_t, sai_object_type_t, sai_stat_st_capability_list_t *)> mock_queryStatsStCapability;
virtual sai_status_t getStatsExt(
_In_ sai_object_type_t object_type,
_In_ sai_object_id_t object_id,
_In_ uint32_t number_of_counters,
_In_ const sai_stat_id_t *counter_ids,
_In_ sai_stats_mode_t mode,
_Out_ uint64_t *counters) override;
std::function<sai_status_t(sai_object_type_t, sai_object_id_t, uint32_t, const sai_stat_id_t *, sai_stats_mode_t, uint64_t *)> mock_getStatsExt;
virtual sai_status_t clearStats(
_In_ sai_object_type_t object_type,
_In_ sai_object_id_t object_id,
_In_ uint32_t number_of_counters,
_In_ const sai_stat_id_t *counter_ids) override;
std::function<sai_status_t(sai_object_type_t, sai_object_id_t, uint32_t, const sai_stat_id_t *)> mock_clearStats;
virtual sai_status_t bulkGetStats(
_In_ sai_object_id_t switchId,
_In_ sai_object_type_t object_type,
_In_ uint32_t object_count,
_In_ const sai_object_key_t *object_key,
_In_ uint32_t number_of_counters,
_In_ const sai_stat_id_t *counter_ids,
_In_ sai_stats_mode_t mode,
_Inout_ sai_status_t *object_statuses,
_Out_ uint64_t *counters) override;
std::function<sai_status_t(sai_object_id_t, sai_object_type_t, uint32_t, const sai_object_key_t *, uint32_t, const sai_stat_id_t *, sai_stats_mode_t, sai_status_t *, uint64_t *)> mock_bulkGetStats;
virtual sai_status_t bulkClearStats(
_In_ sai_object_id_t switchId,
_In_ sai_object_type_t object_type,
_In_ uint32_t object_count,
_In_ const sai_object_key_t *object_key,
_In_ uint32_t number_of_counters,
_In_ const sai_stat_id_t *counter_ids,
_In_ sai_stats_mode_t mode,
_Inout_ sai_status_t *object_statuses) override;
std::function<sai_status_t(sai_object_id_t, sai_object_type_t, uint32_t, const sai_object_key_t *, uint32_t, const sai_stat_id_t *, sai_stats_mode_t, sai_status_t *)> mock_bulkClearStats;
public: // non QUAD API
virtual sai_status_t flushFdbEntries(
_In_ sai_object_id_t switchId,
_In_ uint32_t attrCount,
_In_ const sai_attribute_t *attrList) override;
std::function<sai_status_t(sai_object_id_t, uint32_t, const sai_attribute_t *)> mock_flushFdbEntries;
virtual sai_status_t switchMdioRead(
_In_ sai_object_id_t switchId,
_In_ uint32_t device_addr,
_In_ uint32_t start_reg_addr,
_In_ uint32_t number_of_registers,
_Out_ uint32_t *reg_val) override;
std::function<sai_status_t(sai_object_id_t, uint32_t, uint32_t, uint32_t, uint32_t *)> mock_switchMdioRead;
virtual sai_status_t switchMdioWrite(
_In_ sai_object_id_t switchId,
_In_ uint32_t device_addr,
_In_ uint32_t start_reg_addr,
_In_ uint32_t number_of_registers,
_In_ const uint32_t *reg_val) override;
std::function<sai_status_t(sai_object_id_t, uint32_t, uint32_t, uint32_t, const uint32_t *)> mock_switchMdioWrite;
virtual sai_status_t switchMdioCl22Read(
_In_ sai_object_id_t switchId,
_In_ uint32_t device_addr,
_In_ uint32_t start_reg_addr,
_In_ uint32_t number_of_registers,
_Out_ uint32_t *reg_val) override;
std::function<sai_status_t(sai_object_id_t, uint32_t, uint32_t, uint32_t, uint32_t *)> mock_switchMdioCl22Read;
virtual sai_status_t switchMdioCl22Write(
_In_ sai_object_id_t switchId,
_In_ uint32_t device_addr,
_In_ uint32_t start_reg_addr,
_In_ uint32_t number_of_registers,
_In_ const uint32_t *reg_val) override;
std::function<sai_status_t(sai_object_id_t, uint32_t, uint32_t, uint32_t, const uint32_t *)> mock_switchMdioCl22Write;
public: // SAI API
virtual sai_status_t objectTypeGetAvailability(
_In_ sai_object_id_t switchId,
_In_ sai_object_type_t objectType,
_In_ uint32_t attrCount,
_In_ const sai_attribute_t *attrList,
_Out_ uint64_t *count) override;
std::function<sai_status_t(sai_object_id_t, sai_object_type_t, uint32_t, const sai_attribute_t *, uint64_t *)> mock_objectTypeGetAvailability;
virtual sai_status_t queryAttributeCapability(
_In_ sai_object_id_t switch_id,
_In_ sai_object_type_t object_type,
_In_ sai_attr_id_t attr_id,
_Out_ sai_attr_capability_t *capability) override;
std::function<sai_status_t(sai_object_id_t, sai_object_type_t, sai_attr_id_t, sai_attr_capability_t *)> mock_queryAttributeCapability;
virtual sai_status_t queryAttributeEnumValuesCapability(
_In_ sai_object_id_t switch_id,
_In_ sai_object_type_t object_type,
_In_ sai_attr_id_t attr_id,
_Inout_ sai_s32_list_t *enum_values_capability) override;
std::function<sai_status_t(sai_object_id_t, sai_object_type_t, sai_attr_id_t, sai_s32_list_t *)> mock_queryAttributeEnumValuesCapability;
virtual sai_object_type_t objectTypeQuery(
_In_ sai_object_id_t objectId) override;
std::function<sai_object_type_t(sai_object_id_t)> mock_objectTypeQuery;
virtual sai_object_id_t switchIdQuery(
_In_ sai_object_id_t objectId) override;
std::function<sai_object_id_t(sai_object_id_t)> mock_switchIdQuery;
virtual sai_status_t logSet(
_In_ sai_api_t api,
_In_ sai_log_level_t log_level) override;
std::function<sai_status_t(sai_api_t, sai_log_level_t)> mock_logSet;
};