1 /*
2 * Copyright (c) 2024 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7 #include <zephyr/drivers/comparator/fake_comp.h>
8
9 #ifdef CONFIG_ZTEST
10 #include <zephyr/ztest.h>
11 #endif
12
13 #define DT_DRV_COMPAT zephyr_fake_comp
14
15 DEFINE_FAKE_VALUE_FUNC(int,
16 comp_fake_comp_get_output,
17 const struct device *);
18
19 DEFINE_FAKE_VALUE_FUNC(int,
20 comp_fake_comp_set_trigger,
21 const struct device *,
22 enum comparator_trigger);
23
24 DEFINE_FAKE_VALUE_FUNC(int,
25 comp_fake_comp_set_trigger_callback,
26 const struct device *,
27 comparator_callback_t,
28 void *);
29
30 DEFINE_FAKE_VALUE_FUNC(int,
31 comp_fake_comp_trigger_is_pending,
32 const struct device *);
33
34 static DEVICE_API(comparator, fake_comp_api) = {
35 .get_output = comp_fake_comp_get_output,
36 .set_trigger = comp_fake_comp_set_trigger,
37 .set_trigger_callback = comp_fake_comp_set_trigger_callback,
38 .trigger_is_pending = comp_fake_comp_trigger_is_pending,
39 };
40
41 #ifdef CONFIG_ZTEST
fake_comp_reset_rule_before(const struct ztest_unit_test * test,void * fixture)42 static void fake_comp_reset_rule_before(const struct ztest_unit_test *test, void *fixture)
43 {
44 ARG_UNUSED(test);
45 ARG_UNUSED(fixture);
46
47 RESET_FAKE(comp_fake_comp_get_output);
48 RESET_FAKE(comp_fake_comp_set_trigger);
49 RESET_FAKE(comp_fake_comp_set_trigger_callback);
50 RESET_FAKE(comp_fake_comp_trigger_is_pending);
51 }
52
53 ZTEST_RULE(comp_fake_comp_reset_rule, fake_comp_reset_rule_before, NULL);
54 #endif
55
56 DEVICE_DT_INST_DEFINE(
57 0,
58 NULL,
59 NULL,
60 NULL,
61 NULL,
62 POST_KERNEL,
63 CONFIG_COMPARATOR_INIT_PRIORITY,
64 &fake_comp_api
65 );
66