diff options
author | Andrew McRae <amcrae@google.com> | 2022-02-14 12:44:25 +1100 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2022-02-14 18:39:11 +0000 |
commit | 5e637375cb05e97ec281234ea00d69af60400ea6 (patch) | |
tree | b32f5296b8c4ee3ccdc9de6cd47d9718cb009901 | |
parent | b8461a22517a68fa33fa2c16d052d36cd940bdf4 (diff) | |
download | chrome-ec-5e637375cb05e97ec281234ea00d69af60400ea6.tar.gz |
zephyr: Restore legacy GPIO tests
To ensure full coverage, restore tests of
legacy GPIO API.
BUG=b:219368141
TEST=zmake configure --test test/drivers
BRANCH=none
Signed-off-by: Andrew McRae <amcrae@google.com>
Change-Id: I819d63612b12054bc12acc89e851e22ac1eb0833
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3460763
Reviewed-by: Jeremy Bettis <jbettis@chromium.org>
-rw-r--r-- | zephyr/test/drivers/src/gpio.c | 67 |
1 files changed, 66 insertions, 1 deletions
diff --git a/zephyr/test/drivers/src/gpio.c b/zephyr/test/drivers/src/gpio.c index c81bcd8e84..f0053b9560 100644 --- a/zephyr/test/drivers/src/gpio.c +++ b/zephyr/test/drivers/src/gpio.c @@ -24,6 +24,7 @@ #include "util.h" #include "test_state.h" +extern bool gpio_test_interrupt_triggered; /** * @brief TestPurpose: Verify Zephyr to EC GPIO bitmask conversion. * @@ -121,6 +122,71 @@ ZTEST(gpio, test_signal_is_gpio) } /** + * @brief TestPurpose: Verify legacy API GPIO set/get level. + * + * @details + * Validate set/get level for legacy API + * This tests the legacy API, though no Zepyhr + * based code should use it. + * + * Expected Results + * - Success + */ +ZTEST(gpio, test_legacy_gpio_get_set_level) +{ + enum gpio_signal signal = GPIO_SIGNAL(DT_NODELABEL(gpio_test)); + int level; + /* Test invalid signal */ + gpio_set_level(GPIO_COUNT, 0); + zassert_equal(0, gpio_get_level(GPIO_COUNT), "Expected level==0"); + /* Test valid signal */ + gpio_set_level(signal, 0); + zassert_equal(0, gpio_get_level(signal), "Expected level==0"); + gpio_set_level(signal, 1); + zassert_equal(1, gpio_get_level(signal), "Expected level==1"); + level = gpio_get_ternary(signal); + gpio_set_level_verbose(CC_CHIPSET, signal, 0); + zassert_equal(0, gpio_get_level(signal), "Expected level==0"); +} + +/** + * @brief TestPurpose: Verify legacy GPIO enable/disable interrupt. + * + * @details + * Validate gpio_enable_interrupt/gpio_disable_interrupt + * Uses the legacy API. No Zephyr code should use this API. + * + * Expected Results + * - Success + */ + +ZTEST(gpio, test_legacy_gpio_enable_interrupt) +{ + enum gpio_signal signal = GPIO_SIGNAL(DT_NODELABEL(gpio_test)); + + gpio_test_interrupt_triggered = false; + + /* Test invalid signal */ + zassert_not_equal(EC_SUCCESS, gpio_disable_interrupt(GPIO_COUNT), NULL); + zassert_not_equal(EC_SUCCESS, gpio_enable_interrupt(GPIO_COUNT), NULL); + zassert_false(gpio_test_interrupt_triggered, NULL); + + /* Test valid signal */ + zassert_ok(gpio_disable_interrupt(signal), NULL); + gpio_set_level(signal, 0); + zassert_false(gpio_test_interrupt_triggered, NULL); + gpio_set_level(signal, 1); + zassert_false(gpio_test_interrupt_triggered, NULL); + + zassert_ok(gpio_enable_interrupt(signal), NULL); + gpio_set_level(signal, 0); + zassert_true(gpio_test_interrupt_triggered, NULL); + gpio_test_interrupt_triggered = false; + gpio_set_level(signal, 1); + zassert_true(gpio_test_interrupt_triggered, NULL); +} + +/** * @brief TestPurpose: Verify GPIO set/get level. * * @details @@ -317,7 +383,6 @@ ZTEST(gpio, test_gpio_reset) * Expected Results * - Success */ -extern bool gpio_test_interrupt_triggered; ZTEST(gpio, test_gpio_enable_dt_interrupt) { const struct gpio_dt_spec *gp = GPIO_DT_FROM_NODELABEL(gpio_test); |