From eb94ac65dbe15f19611b8fc9624952400e0d8ea4 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Mon, 23 Oct 2017 23:32:33 +0200 Subject: [PATCH] tests: event: new test case Add a test case which verifies that we can't request line events for a set of lines if one of them has already been requested for values. Signed-off-by: Bartosz Golaszewski --- tests/tests-event.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/tests-event.c b/tests/tests-event.c index b4e3419..a5bb28b 100644 --- a/tests/tests-event.c +++ b/tests/tests-event.c @@ -228,3 +228,33 @@ static void event_get_fd_when_values_requested(void) TEST_DEFINE(event_get_fd_when_values_requested, "events - gpiod_line_event_get_fd(): line requested for values", 0, { 8 }); + +static void event_request_bulk_fail(void) +{ + TEST_CLEANUP(test_close_chip) struct gpiod_chip *chip = NULL; + struct gpiod_line_bulk bulk = GPIOD_LINE_BULK_INITIALIZER; + struct gpiod_line *line; + int rv, i; + + chip = gpiod_chip_open(test_chip_path(0)); + TEST_ASSERT_NOT_NULL(chip); + + line = gpiod_chip_get_line(chip, 5); + TEST_ASSERT_NOT_NULL(line); + + rv = gpiod_line_request_input(line, TEST_CONSUMER); + TEST_ASSERT_RET_OK(rv); + + for (i = 0; i < 8; i++) { + line = gpiod_chip_get_line(chip, i); + TEST_ASSERT_NOT_NULL(line); + gpiod_line_bulk_add(&bulk, line); + } + + rv = gpiod_line_request_bulk_both_edges_events(&bulk, TEST_CONSUMER); + TEST_ASSERT_EQ(rv, -1); + TEST_ASSERT_ERRNO_IS(EBUSY); +} +TEST_DEFINE(event_request_bulk_fail, + "events - failed bulk request (test reversed release)", + 0, { 8 }); -- 2.30.2