Skip to content

Commit

Permalink
tests/event_source: add test for event sources
Browse files Browse the repository at this point in the history
  • Loading branch information
benpicco committed Jan 19, 2023
1 parent 035d9eb commit 2a53db5
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 0 deletions.
6 changes: 6 additions & 0 deletions tests/event_source/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
include ../Makefile.tests_common

USEMODULE += event_callback
USEMODULE += event_thread

include $(RIOTBASE)/Makefile.include
3 changes: 3 additions & 0 deletions tests/event_source/Makefile.ci
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
BOARD_INSUFFICIENT_MEMORY := \
nucleo-l011k4 \
#
56 changes: 56 additions & 0 deletions tests/event_source/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
* Copyright (C) 2022 ML!PA Consulting GmbH
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*/

/**
* @ingroup tests
* @{
*
* @file
* @brief Event Source test application
*
* @author Benjamin Valentin <benjamin.valentin@ml-pa.com>
*
* @}
*/

#include <stdio.h>

#include "event/callback.h"
#include "event/source.h"
#include "event/thread.h"

static void _event_cb(void *ctx)
{
puts(ctx);
}

int main(void)
{
event_source_t source = EVENT_SOURCE_INIT;
event_callback_t a, b, c;

event_source_subscriber_t ba = EVENT_SOURCE_SUBSCRIBER_INIT(&a, EVENT_PRIO_MEDIUM);
event_source_subscriber_t bb = EVENT_SOURCE_SUBSCRIBER_INIT(&b, EVENT_PRIO_MEDIUM);
event_source_subscriber_t bc = EVENT_SOURCE_SUBSCRIBER_INIT(&c, EVENT_PRIO_MEDIUM);

event_callback_init(&a, _event_cb, "event A");
event_callback_init(&b, _event_cb, "event B");
event_callback_init(&c, _event_cb, "event C");

puts("empty event source");
event_source_trigger(&source);

event_source_attach(&source, &ba);
event_source_attach(&source, &bb);
event_source_attach(&source, &bc);

puts("occupied event source");
event_source_trigger(&source);

return 0;
}
16 changes: 16 additions & 0 deletions tests/event_source/tests/01-run.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env python3

import sys
from testrunner import run


def testfunc(child):
child.expect_exact("empty event source")
child.expect_exact("occupied event source")
child.expect_exact("event C")
child.expect_exact("event B")
child.expect_exact("event A")


if __name__ == "__main__":
sys.exit(run(testfunc))

0 comments on commit 2a53db5

Please # to comment.