diff options
-rw-r--r-- | zephyr/emul/emul_isl923x.c | 25 | ||||
-rw-r--r-- | zephyr/include/emul/emul_isl923x.h | 2 | ||||
-rw-r--r-- | zephyr/test/drivers/src/isl923x.c | 14 |
3 files changed, 32 insertions, 9 deletions
diff --git a/zephyr/emul/emul_isl923x.c b/zephyr/emul/emul_isl923x.c index 399bf167a5..f0a3e67bd0 100644 --- a/zephyr/emul/emul_isl923x.c +++ b/zephyr/emul/emul_isl923x.c @@ -11,6 +11,7 @@ #include <drivers/emul.h> #include <errno.h> #include <sys/__assert.h> +#include <ztest.h> #include "driver/charger/isl923x.h" #include "driver/charger/isl923x_public.h" @@ -129,7 +130,13 @@ struct i2c_emul *isl923x_emul_get_i2c_emul(const struct emul *emulator) return &(data->common.emul); } -void isl923x_emul_reset(const struct emul *emulator) +static void isl923x_emul_reset(struct isl923x_emul_data *data) +{ + data->common.write_fail_reg = I2C_COMMON_EMUL_NO_FAIL_REG; + data->common.read_fail_reg = I2C_COMMON_EMUL_NO_FAIL_REG; +} + +void isl923x_emul_reset_registers(const struct emul *emulator) { struct isl923x_emul_data *data = emulator->data; struct i2c_common_emul_data common_backup = data->common; @@ -425,3 +432,19 @@ static int emul_isl923x_init(const struct emul *emul, &isl923x_emul_data_##n) DT_INST_FOREACH_STATUS_OKAY(INIT_ISL923X) + +#ifdef CONFIG_ZTEST_NEW_API + +#define ISL923X_EMUL_RESET_RULE_AFTER(n) \ + isl923x_emul_reset(&isl923x_emul_data_##n) + +static void emul_isl923x_reset_before(const struct ztest_unit_test *test, + void *data) +{ + ARG_UNUSED(test); + ARG_UNUSED(data); + + DT_INST_FOREACH_STATUS_OKAY(ISL923X_EMUL_RESET_RULE_AFTER); +} +ZTEST_RULE(emul_isl923x_reset, emul_isl923x_reset_before, NULL); +#endif /* CONFIG_ZTEST_NEW_API */ diff --git a/zephyr/include/emul/emul_isl923x.h b/zephyr/include/emul/emul_isl923x.h index 93a29a9c09..b2cc97e83c 100644 --- a/zephyr/include/emul/emul_isl923x.h +++ b/zephyr/include/emul/emul_isl923x.h @@ -33,7 +33,7 @@ struct i2c_emul *isl923x_emul_get_i2c_emul(const struct emul *emulator); * * @param emulator The emulator to modify */ -void isl923x_emul_reset(const struct emul *emulator); +void isl923x_emul_reset_registers(const struct emul *emulator); /** * @brief Set the manufacturer ID diff --git a/zephyr/test/drivers/src/isl923x.c b/zephyr/test/drivers/src/isl923x.c index 05737a9af0..bbfc3cb920 100644 --- a/zephyr/test/drivers/src/isl923x.c +++ b/zephyr/test/drivers/src/isl923x.c @@ -583,7 +583,7 @@ ZTEST(isl923x, test_init) int input_current; /* Test failed CTRL2 register read (prochot debounce) */ - isl923x_emul_reset(isl923x_emul); + isl923x_emul_reset_registers(isl923x_emul); i2c_common_emul_set_read_fail_reg(i2c_emul, ISL923X_REG_CONTROL2); isl923x_drv.init(CHARGER_NUM); i2c_common_emul_set_read_fail_reg(i2c_emul, @@ -595,7 +595,7 @@ ZTEST(isl923x, test_init) "Expected input current 0mV but got %dmV", input_current); /* Test failed CTRL2 register write */ - isl923x_emul_reset(isl923x_emul); + isl923x_emul_reset_registers(isl923x_emul); i2c_common_emul_set_write_fail_reg(i2c_emul, ISL923X_REG_CONTROL2); isl923x_drv.init(CHARGER_NUM); i2c_common_emul_set_write_fail_reg(i2c_emul, @@ -607,7 +607,7 @@ ZTEST(isl923x, test_init) "Expected input current 0mV but got %dmV", input_current); /* Test failed CTRL 0 read */ - isl923x_emul_reset(isl923x_emul); + isl923x_emul_reset_registers(isl923x_emul); i2c_common_emul_set_read_fail_reg(i2c_emul, ISL923X_REG_CONTROL0); isl923x_drv.init(CHARGER_NUM); i2c_common_emul_set_read_fail_reg(i2c_emul, @@ -619,7 +619,7 @@ ZTEST(isl923x, test_init) "Expected input current 0mV but got %dmV", input_current); /* Test failed CTRL 0 write */ - isl923x_emul_reset(isl923x_emul); + isl923x_emul_reset_registers(isl923x_emul); i2c_common_emul_set_write_fail_reg(i2c_emul, ISL923X_REG_CONTROL0); isl923x_drv.init(CHARGER_NUM); i2c_common_emul_set_write_fail_reg(i2c_emul, @@ -631,7 +631,7 @@ ZTEST(isl923x, test_init) "Expected input current 0mV but got %dmV", input_current); /* Test failed CTRL 3 read */ - isl923x_emul_reset(isl923x_emul); + isl923x_emul_reset_registers(isl923x_emul); i2c_common_emul_set_read_fail_reg(i2c_emul, ISL9238_REG_CONTROL3); isl923x_drv.init(CHARGER_NUM); i2c_common_emul_set_read_fail_reg(i2c_emul, @@ -643,7 +643,7 @@ ZTEST(isl923x, test_init) "Expected input current 0mV but got %dmV", input_current); /* Test failed CTRL 3 write */ - isl923x_emul_reset(isl923x_emul); + isl923x_emul_reset_registers(isl923x_emul); i2c_common_emul_set_write_fail_reg(i2c_emul, ISL9238_REG_CONTROL3); isl923x_drv.init(CHARGER_NUM); i2c_common_emul_set_write_fail_reg(i2c_emul, @@ -655,7 +655,7 @@ ZTEST(isl923x, test_init) "Expected input current 0mV but got %dmV", input_current); /* Test failed write adapter current limit */ - isl923x_emul_reset(isl923x_emul); + isl923x_emul_reset_registers(isl923x_emul); i2c_common_emul_set_write_fail_reg(i2c_emul, ISL923X_REG_ADAPTER_CURRENT_LIMIT1); isl923x_drv.init(CHARGER_NUM); |