tests: provide test_trigger_event()
authorBartosz Golaszewski <bgolaszewski@baylibre.com>
Mon, 3 Jun 2019 16:18:38 +0000 (18:18 +0200)
committerBartosz Golaszewski <bgolaszewski@baylibre.com>
Wed, 5 Jun 2019 10:06:47 +0000 (12:06 +0200)
We use a separate thread to trigger line events for library test cases
but if we're testing tools which are separate processes, we can generate
the events from the main thread. Add a simple helper for that.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
tests/gpiod-test.c
tests/gpiod-test.h

index e00f4bfd6a179f4cc98380f04007a0c614c7b240..621d837b86d13f0bf84b7d98dc684dfc3cb96041 100644 (file)
@@ -1014,6 +1014,20 @@ void test_set_event(unsigned int chip_index,
        event_unlock();
 }
 
+void test_trigger_event(unsigned int chip_index, unsigned int line_offset)
+{
+       int val, rv;
+
+       val = gpio_mockup_get_value(globals.mockup, chip_index, line_offset);
+       if (val < 0)
+               die_perr("error reading GPIO value from debugfs");
+
+       rv = gpio_mockup_set_pull(globals.mockup, chip_index,
+                                 line_offset, val ? 0 : 1);
+       if (rv)
+               die_perr("error setting GPIO line pull over debugfs");
+}
+
 bool test_regex_match(const char *str, const char *pattern)
 {
        char errbuf[128];
index c3ca0b198d9c03e6f739ecf5c6137919f09d7096..1815c6513cce72f45014401ec8735a7eea9320e4 100644 (file)
@@ -102,6 +102,8 @@ void test_debugfs_set_value(unsigned int chip_index,
 void test_set_event(unsigned int chip_index,
                    unsigned int line_offset, unsigned int freq);
 
+void test_trigger_event(unsigned int chip_index, unsigned int line_offset);
+
 void test_tool_run(char *tool, ...);
 void test_tool_wait(void);
 const char *test_tool_stdout(void);