From 22128de1412caf629d241d87e1ceca0c577503b2 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Mon, 8 May 2017 13:16:29 +0200 Subject: [PATCH] tests: add a test case for misc line flags Test the open drain, open source and kernel flags. Signed-off-by: Bartosz Golaszewski --- tests/unit/tests-line.c | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/unit/tests-line.c b/tests/unit/tests-line.c index 8a389d6..4f430f4 100644 --- a/tests/unit/tests-line.c +++ b/tests/unit/tests-line.c @@ -320,3 +320,47 @@ static void line_active_state(void) GU_DEFINE_TEST(line_active_state, "gpiod_line_active_state() - set & get", GU_LINES_UNNAMED, { 8 }); + +static void line_misc_flags(void) +{ + GU_CLEANUP(gu_close_chip) struct gpiod_chip *chip = NULL; + struct gpiod_line_request_config config; + struct gpiod_line *line; + int status; + + chip = gpiod_chip_open(gu_chip_path(0)); + GU_ASSERT_NOT_NULL(chip); + + line = gpiod_chip_get_line(chip, 2); + GU_ASSERT_NOT_NULL(line); + + GU_ASSERT_FALSE(gpiod_line_is_used_by_kernel(line)); + GU_ASSERT_FALSE(gpiod_line_is_open_drain(line)); + GU_ASSERT_FALSE(gpiod_line_is_open_source(line)); + + config.direction = GPIOD_DIRECTION_INPUT; + config.consumer = "gpiod-unit"; + config.active_state = GPIOD_ACTIVE_STATE_HIGH; + config.flags = GPIOD_REQUEST_OPEN_DRAIN; + + status = gpiod_line_request(line, &config, 0); + GU_ASSERT_RET_OK(status); + + GU_ASSERT(gpiod_line_is_used_by_kernel(line)); + GU_ASSERT(gpiod_line_is_open_drain(line)); + GU_ASSERT_FALSE(gpiod_line_is_open_source(line)); + + gpiod_line_release(line); + + config.flags = GPIOD_REQUEST_OPEN_SOURCE; + + status = gpiod_line_request(line, &config, 0); + GU_ASSERT_RET_OK(status); + + GU_ASSERT(gpiod_line_is_used_by_kernel(line)); + GU_ASSERT_FALSE(gpiod_line_is_open_drain(line)); + GU_ASSERT(gpiod_line_is_open_source(line)); +} +GU_DEFINE_TEST(line_misc_flags, + "gpiod_line - misc flags", + GU_LINES_UNNAMED, { 8 }); -- 2.30.2