From: Bartosz Golaszewski Date: Tue, 2 May 2017 21:51:17 +0000 (+0200) Subject: tests: add a test case for gpiod_simple_event_loop() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=5a240e365aaab99923beec9a810874edc3e4e6ab;p=qemu-gpiodev%2Flibgpiod.git tests: add a test case for gpiod_simple_event_loop() Test a very simple use case: wait for a single event of any type. Signed-off-by: Bartosz Golaszewski --- diff --git a/tests/unit/tests-simple-api.c b/tests/unit/tests-simple-api.c index 9efca8f..e8d8727 100644 --- a/tests/unit/tests-simple-api.c +++ b/tests/unit/tests-simple-api.c @@ -114,3 +114,36 @@ static void simple_set_value_multiple_max_lines(void) GU_DEFINE_TEST(simple_set_value_multiple_max_lines, "gpiod_simple_set_value_multiple() exceed max lines", GU_LINES_UNNAMED, { 128 }); + +struct simple_event_data { + bool got_event; +}; + +static int simple_event_cb(int evtype GU_UNUSED, + const struct timespec *ts GU_UNUSED, + void *data) +{ + struct simple_event_data *evdata = data; + + evdata->got_event = true; + + return GPIOD_EVENT_CB_STOP; +} + +static void simple_event_loop(void) +{ + struct simple_event_data evdata = { false }; + struct timespec ts = { 1, 0 }; + int status; + + gu_set_event(0, 3, GU_EVENT_ALTERNATING, 100); + + status = gpiod_simple_event_loop("gpiod-unit", gu_chip_name(0), 3, + false, &ts, simple_event_cb, &evdata); + + GU_ASSERT_RET_OK(status); + GU_ASSERT(evdata.got_event); +} +GU_DEFINE_TEST(simple_event_loop, + "gpiod_simple_event_loop() - single event", + GU_LINES_UNNAMED, { 8 });