blob: 236ace62532efbf648239b26c29820f8f67e9cee [file] [log] [blame]
#include <test/mock.h>
#include <linux/i2c.h>
DECLARE_STRUCT_CLASS_MOCK_PREREQS(i2c_adapter);
DECLARE_STRUCT_CLASS_MOCK(METHOD(master_xfer), CLASS(i2c_adapter),
RETURNS(int),
PARAMS(struct i2c_adapter *, struct i2c_msg *, int));
DECLARE_STRUCT_CLASS_MOCK(METHOD(smbus_xfer), CLASS(i2c_adapter),
RETURNS(int),
PARAMS(struct i2c_adapter *,
u16,
unsigned short,
char,
u8,
int,
union i2c_smbus_data *));
DECLARE_STRUCT_CLASS_MOCK(METHOD(functionality), CLASS(i2c_adapter),
RETURNS(u32),
PARAMS(struct i2c_adapter *));
DECLARE_STRUCT_CLASS_MOCK_INIT(i2c_adapter);
static inline struct mock_expectation *mock_master_i2c_smbus_read_byte_data(
struct i2c_client *client, struct mock_param_matcher *u8_matcher)
{
struct mock *mock = from_i2c_adapter_to_mock(client->adapter);
struct test *test = mock->test;
return EXPECT_CALL(smbus_xfer(mock, u16_eq(test, client->addr),
ushort_eq(test, client->flags),
char_eq(test, I2C_SMBUS_READ),
u8_matcher,
int_eq(test, I2C_SMBUS_BYTE_DATA),
any(test)));
}
DECLARE_REDIRECT_MOCKABLE(i2c_add_adapter, RETURNS(int), PARAMS(struct i2c_adapter *));
DECLARE_FUNCTION_MOCK(i2c_add_adapter, RETURNS(int), PARAMS(struct i2c_adapter *));
static inline struct i2c_driver *i2c_driver_find(const char *name)
{
struct device_driver *driver;
driver = driver_find(name, &i2c_bus_type);
if (!driver)
return NULL;
return to_i2c_driver(driver);
}