Skip to content

Commit d0d8158

Browse files
pdgendtfabiobaltieri
authored andcommitted
tests: drivers: regulator: Test not implemented APIs with dummies
Instead of writing to existing fake APIs, use dummy devices with empty APIs. This allows us to place APIs in ROM. Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
1 parent 8413113 commit d0d8158

File tree

1 file changed

+26
-91
lines changed
  • tests/drivers/regulator/api/src

1 file changed

+26
-91
lines changed

tests/drivers/regulator/api/src/main.c

Lines changed: 26 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,22 @@ static const struct device *const reg4 = DEVICE_DT_GET(DT_NODELABEL(reg4));
2323
/* REG5: regulator-boot-off and is_enabled */
2424
static const struct device *const reg5 = DEVICE_DT_GET(DT_NODELABEL(reg5));
2525

26+
static DEVICE_API(regulator, dummy_regulator_api);
27+
static DEVICE_API(regulator_parent, dummy_regulator_parent_api);
28+
29+
DEVICE_DEFINE(dummy_regulator, "dummy_regulator", NULL, NULL, NULL, NULL, POST_KERNEL,
30+
CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &dummy_regulator_api);
31+
DEVICE_DEFINE(dummy_regulator_parent, "dummy_regulator_parent", NULL, NULL, NULL, NULL, POST_KERNEL,
32+
CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &dummy_regulator_parent_api);
33+
34+
/* Dummy regulator: empty API */
35+
static const struct device *const dummy_reg = DEVICE_GET(dummy_regulator);
36+
/* Dummy parent regulator: empty API */
37+
static const struct device *const dummy_parent = DEVICE_GET(dummy_regulator_parent);
38+
2639
ZTEST(regulator_api, test_parent_dvs_state_set_not_implemented)
2740
{
28-
int ret;
29-
struct regulator_parent_driver_api *api = (struct regulator_parent_driver_api *)parent->api;
30-
regulator_dvs_state_set_t dvs_state_set = api->dvs_state_set;
31-
32-
api->dvs_state_set = NULL;
33-
ret = regulator_parent_dvs_state_set(parent, 0);
34-
api->dvs_state_set = dvs_state_set;
41+
int ret = regulator_parent_dvs_state_set(dummy_parent, 0);
3542

3643
zassert_equal(ret, -ENOSYS);
3744
}
@@ -62,13 +69,7 @@ ZTEST(regulator_api, test_parent_dvs_state_set_fail)
6269

6370
ZTEST(regulator_api, test_parent_ship_mode_not_implemented)
6471
{
65-
int ret;
66-
struct regulator_parent_driver_api *api = (struct regulator_parent_driver_api *)parent->api;
67-
regulator_ship_mode_t ship_mode = api->ship_mode;
68-
69-
api->ship_mode = NULL;
70-
ret = regulator_parent_ship_mode(parent);
71-
api->ship_mode = ship_mode;
72+
int ret = regulator_parent_ship_mode(dummy_parent);
7273

7374
zassert_equal(ret, -ENOSYS);
7475
}
@@ -188,13 +189,7 @@ ZTEST(regulator_api, test_enable_disable)
188189

189190
ZTEST(regulator_api, test_count_voltages_not_implemented)
190191
{
191-
unsigned int count;
192-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
193-
regulator_count_voltages_t count_voltages = api->count_voltages;
194-
195-
api->count_voltages = NULL;
196-
count = regulator_count_voltages(reg0);
197-
api->count_voltages = count_voltages;
192+
unsigned int count = regulator_count_voltages(dummy_reg);
198193

199194
zassert_equal(count, 0U);
200195
}
@@ -212,13 +207,7 @@ ZTEST(regulator_api, test_count_voltages)
212207

213208
ZTEST(regulator_api, test_list_voltage_not_implemented)
214209
{
215-
int ret;
216-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
217-
regulator_list_voltage_t list_voltage = api->list_voltage;
218-
219-
api->list_voltage = NULL;
220-
ret = regulator_list_voltage(reg0, 0, NULL);
221-
api->list_voltage = list_voltage;
210+
int ret = regulator_list_voltage(dummy_reg, 0, NULL);
222211

223212
zassert_equal(ret, -EINVAL);
224213
}
@@ -339,13 +328,7 @@ ZTEST(regulator_api, test_is_supported_voltage_dt_limit)
339328

340329
ZTEST(regulator_api, test_set_voltage_not_implemented)
341330
{
342-
int ret;
343-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
344-
regulator_set_voltage_t set_voltage = api->set_voltage;
345-
346-
api->set_voltage = NULL;
347-
ret = regulator_set_voltage(reg0, 0, 0);
348-
api->set_voltage = set_voltage;
331+
int ret = regulator_set_voltage(dummy_reg, 0, 0);
349332

350333
zassert_equal(ret, -ENOSYS);
351334
}
@@ -388,13 +371,7 @@ ZTEST(regulator_api, test_set_voltage_dt_limit)
388371

389372
ZTEST(regulator_api, test_get_voltage_not_implemented)
390373
{
391-
int ret;
392-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
393-
regulator_get_voltage_t get_voltage = api->get_voltage;
394-
395-
api->get_voltage = NULL;
396-
ret = regulator_get_voltage(reg0, NULL);
397-
api->get_voltage = get_voltage;
374+
int ret = regulator_get_voltage(dummy_reg, NULL);
398375

399376
zassert_equal(ret, -ENOSYS);
400377
}
@@ -445,13 +422,7 @@ ZTEST(regulator_api, test_get_voltage_error)
445422

446423
ZTEST(regulator_api, test_set_current_limit_not_implemented)
447424
{
448-
int ret;
449-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
450-
regulator_set_current_limit_t set_current_limit = api->set_current_limit;
451-
452-
api->set_current_limit = NULL;
453-
ret = regulator_set_current_limit(reg0, 0, 0);
454-
api->set_current_limit = set_current_limit;
425+
int ret = regulator_set_current_limit(dummy_reg, 0, 0);
455426

456427
zassert_equal(ret, -ENOSYS);
457428
}
@@ -494,13 +465,7 @@ ZTEST(regulator_api, test_set_current_limit_dt_limit)
494465

495466
ZTEST(regulator_api, test_get_current_limit_not_implemented)
496467
{
497-
int ret;
498-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
499-
regulator_get_current_limit_t get_current_limit = api->get_current_limit;
500-
501-
api->get_current_limit = NULL;
502-
ret = regulator_get_current_limit(reg0, NULL);
503-
api->get_current_limit = get_current_limit;
468+
int ret = regulator_get_current_limit(dummy_reg, NULL);
504469

505470
zassert_equal(ret, -ENOSYS);
506471
}
@@ -551,13 +516,7 @@ ZTEST(regulator_api, test_get_current_limit_error)
551516

552517
ZTEST(regulator_api, test_set_mode_not_implemented)
553518
{
554-
int ret;
555-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
556-
regulator_set_mode_t set_mode = api->set_mode;
557-
558-
api->set_mode = NULL;
559-
ret = regulator_set_mode(reg0, 0);
560-
api->set_mode = set_mode;
519+
int ret = regulator_set_mode(dummy_reg, 0);
561520

562521
zassert_equal(ret, -ENOSYS);
563522
}
@@ -600,26 +559,14 @@ ZTEST(regulator_api, test_set_mode_dt_limit)
600559

601560
ZTEST(regulator_api, test_get_mode_not_implemented)
602561
{
603-
int ret;
604-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
605-
regulator_get_mode_t get_mode = api->get_mode;
606-
607-
api->get_mode = NULL;
608-
ret = regulator_get_mode(reg0, NULL);
609-
api->get_mode = get_mode;
562+
int ret = regulator_get_mode(dummy_reg, NULL);
610563

611564
zassert_equal(ret, -ENOSYS);
612565
}
613566

614567
ZTEST(regulator_api, test_set_active_discharge_not_implemented)
615568
{
616-
int ret;
617-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
618-
regulator_set_active_discharge_t set_active_discharge = api->set_active_discharge;
619-
620-
api->set_active_discharge = NULL;
621-
ret = regulator_set_active_discharge(reg0, false);
622-
api->set_active_discharge = set_active_discharge;
569+
int ret = regulator_set_active_discharge(dummy_reg, false);
623570

624571
zassert_equal(ret, -ENOSYS);
625572
}
@@ -650,13 +597,7 @@ ZTEST(regulator_api, test_get_active_discharge_ok)
650597

651598
ZTEST(regulator_api, test_get_active_discharge_not_implemented)
652599
{
653-
int ret;
654-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
655-
regulator_get_active_discharge_t get_active_discharge = api->get_active_discharge;
656-
657-
api->get_active_discharge = NULL;
658-
ret = regulator_get_active_discharge(reg0, NULL);
659-
api->get_active_discharge = get_active_discharge;
600+
int ret = regulator_get_active_discharge(dummy_reg, NULL);
660601

661602
zassert_equal(ret, -ENOSYS);
662603
}
@@ -707,13 +648,7 @@ ZTEST(regulator_api, test_get_mode_error)
707648

708649
ZTEST(regulator_api, test_get_error_flags_not_implemented)
709650
{
710-
int ret;
711-
struct regulator_driver_api *api = (struct regulator_driver_api *)reg0->api;
712-
regulator_get_error_flags_t get_error_flags = api->get_error_flags;
713-
714-
api->get_error_flags = NULL;
715-
ret = regulator_get_error_flags(reg0, NULL);
716-
api->get_error_flags = get_error_flags;
651+
int ret = regulator_get_error_flags(dummy_reg, NULL);
717652

718653
zassert_equal(ret, -ENOSYS);
719654
}

0 commit comments

Comments
 (0)