tests: drivers: gpio: direction: use new ztest api
Adjust suite to use new ztest API.
Signed-off-by: Christopher Friedt <cfriedt@fb.com>
diff --git a/tests/drivers/gpio/gpio_get_direction/prj.conf b/tests/drivers/gpio/gpio_get_direction/prj.conf
index 11186ae..3d3a27c 100644
--- a/tests/drivers/gpio/gpio_get_direction/prj.conf
+++ b/tests/drivers/gpio/gpio_get_direction/prj.conf
@@ -1,3 +1,4 @@
CONFIG_ZTEST=y
+CONFIG_ZTEST_NEW_API=y
CONFIG_GPIO=y
CONFIG_GPIO_GET_DIRECTION=y
diff --git a/tests/drivers/gpio/gpio_get_direction/src/main.c b/tests/drivers/gpio/gpio_get_direction/src/main.c
index 73dd416..4b241ee 100644
--- a/tests/drivers/gpio/gpio_get_direction/src/main.c
+++ b/tests/drivers/gpio/gpio_get_direction/src/main.c
@@ -6,25 +6,50 @@
#include "test_gpio_get_direction.h"
-static void test_disconnect(void)
+struct gpio_get_direction_fixture {
+ const struct device *port;
+ gpio_pin_t pin;
+ gpio_flags_t flags;
+};
+
+static void *gpio_get_direction_setup(void)
+{
+ static struct gpio_get_direction_fixture fixture;
+
+ fixture.pin = TEST_PIN;
+ fixture.port = device_get_binding(TEST_DEV);
+
+ return &fixture;
+}
+
+static void gpio_get_direction_before(void *arg)
+{
+ struct gpio_get_direction_fixture *fixture = (struct gpio_get_direction_fixture *)arg;
+
+ zassert_not_null(fixture->port, "device " TEST_DEV " not found");
+}
+
+static void common(struct gpio_get_direction_fixture *fixture)
{
int rv;
- const struct device *port;
- gpio_pin_t pin = TEST_PIN;
- gpio_flags_t flags = GPIO_DISCONNECTED;
- port = device_get_binding(TEST_DEV);
- zassert_not_null(port, "device " TEST_DEV " not found");
-
- rv = gpio_pin_configure(port, pin, flags);
+ rv = gpio_pin_configure(fixture->port, fixture->pin, fixture->flags);
if (rv == -ENOTSUP) {
- /* some drivers / gpio hw do not support disconnect */
+ /* some drivers / hw might not support e.g. input-output or disconnect */
ztest_test_skip();
}
- zassert_equal(0, rv, "gpio_pin_configure() failed: %d", rv);
+ zassert_ok(rv, "gpio_pin_configure() failed: %d", rv);
+}
- rv = gpio_pin_is_input(port, pin);
+ZTEST_F(gpio_get_direction, test_disconnect)
+{
+ int rv;
+
+ fixture->flags = GPIO_DISCONNECTED;
+ common(fixture);
+
+ rv = gpio_pin_is_input(fixture->port, fixture->pin);
if (rv == -ENOSYS) {
/* gpio_pin_direction() is not supported in the driver */
ztest_test_skip();
@@ -32,24 +57,18 @@
zassert_equal(false, rv, "gpio_pin_is_input() failed: %d", rv);
- rv = gpio_pin_is_output(port, pin);
+ rv = gpio_pin_is_output(fixture->port, fixture->pin);
zassert_equal(false, rv, "gpio_pin_is_output() failed: %d", rv);
}
-static void test_input(void)
+ZTEST_F(gpio_get_direction, test_input)
{
int rv;
- const struct device *port;
- gpio_pin_t pin = TEST_PIN;
- gpio_flags_t flags = GPIO_INPUT;
+ fixture->flags = GPIO_INPUT;
- port = device_get_binding(TEST_DEV);
- zassert_not_null(port, "device " TEST_DEV " not found");
+ common(fixture);
- rv = gpio_pin_configure(port, pin, flags);
- zassert_equal(0, rv, "gpio_pin_configure() failed: %d", rv);
-
- rv = gpio_pin_is_input(port, pin);
+ rv = gpio_pin_is_input(fixture->port, fixture->pin);
if (rv == -ENOSYS) {
/* gpio_pin_direction() is not supported in the driver */
ztest_test_skip();
@@ -57,24 +76,18 @@
zassert_equal(true, rv, "gpio_pin_is_input() failed: %d", rv);
- rv = gpio_pin_is_output(port, pin);
+ rv = gpio_pin_is_output(fixture->port, fixture->pin);
zassert_equal(false, rv, "gpio_pin_is_output() failed: %d", rv);
}
-static void test_output(void)
+ZTEST_F(gpio_get_direction, test_output)
{
int rv;
- const struct device *port;
- gpio_pin_t pin = TEST_PIN;
- gpio_flags_t flags = GPIO_OUTPUT | GPIO_OUTPUT_INIT_LOW;
+ fixture->flags = GPIO_OUTPUT | GPIO_OUTPUT_INIT_LOW;
- port = device_get_binding(TEST_DEV);
- zassert_not_null(port, "device " TEST_DEV " not found");
+ common(fixture);
- rv = gpio_pin_configure(port, pin, flags);
- zassert_equal(0, rv, "gpio_pin_configure() failed: %d", rv);
-
- rv = gpio_pin_is_input(port, pin);
+ rv = gpio_pin_is_input(fixture->port, fixture->pin);
if (rv == -ENOSYS) {
/* gpio_pin_direction() is not supported in the driver */
ztest_test_skip();
@@ -82,45 +95,28 @@
zassert_equal(false, rv, "gpio_pin_is_input() failed: %d", rv);
- rv = gpio_pin_is_output(port, pin);
+ rv = gpio_pin_is_output(fixture->port, fixture->pin);
zassert_equal(true, rv, "gpio_pin_is_output() failed: %d", rv);
}
-static void test_input_output(void)
+ZTEST_F(gpio_get_direction, test_input_output)
{
int rv;
- const struct device *port;
- gpio_pin_t pin = TEST_PIN;
- gpio_flags_t flags = GPIO_INPUT | GPIO_OUTPUT | GPIO_OUTPUT_INIT_LOW;
+ fixture->flags = GPIO_INPUT | GPIO_OUTPUT | GPIO_OUTPUT_INIT_LOW;
- port = device_get_binding(TEST_DEV);
- zassert_not_null(port, "device " TEST_DEV " not found");
+ common(fixture);
- rv = gpio_pin_configure(port, pin, flags);
- if (rv == -ENOTSUP) {
+ rv = gpio_pin_is_input(fixture->port, fixture->pin);
+ if (rv == -ENOSYS) {
/* some drivers / gpio hw do not support input-output mode */
ztest_test_skip();
}
- zassert_equal(0, rv, "gpio_pin_configure() failed: %d", rv);
-
- rv = gpio_pin_is_input(port, pin);
- if (rv == -ENOSYS) {
- ztest_test_skip();
- }
-
zassert_equal(true, rv, "gpio_pin_is_input() failed: %d", rv);
- rv = gpio_pin_is_output(port, pin);
+ rv = gpio_pin_is_output(fixture->port, fixture->pin);
zassert_equal(true, rv, "gpio_pin_is_output() failed: %d", rv);
}
-void test_main(void)
-{
- ztest_test_suite(gpio_get_direction,
- ztest_unit_test(test_disconnect),
- ztest_unit_test(test_input),
- ztest_unit_test(test_output),
- ztest_unit_test(test_input_output));
- ztest_run_test_suite(gpio_get_direction);
-}
+ZTEST_SUITE(gpio_get_direction, NULL, gpio_get_direction_setup, gpio_get_direction_before, NULL,
+ NULL);