tests: gpioset: test the --active-low flag
authorBartosz Golaszewski <bartekgola@gmail.com>
Tue, 13 Jun 2017 14:29:41 +0000 (16:29 +0200)
committerBartosz Golaszewski <bartekgola@gmail.com>
Tue, 13 Jun 2017 14:29:41 +0000 (16:29 +0200)
Duplicate the basic exit mode test but use the --active-low flag and
verify that the values are inverted.

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
tests/tests-gpioset.c

index bd69dca131ffddc1d42b54e3c0dd7593f36d76bb..013fe421b14b04dd46dd51a76f5a188908e9e91c 100644 (file)
@@ -54,6 +54,47 @@ TEST_DEFINE(gpioset_set_lines_and_exit,
            "tools: gpioset - set lines and exit",
            0, { 8, 8, 8 });
 
+static void gpioset_set_lines_and_exit_active_low(void)
+{
+       unsigned int offsets[8];
+       int rv, values[8];
+
+       test_tool_run("gpioset", "--active-low", "gpiochip2",
+                     "0=0", "1=0", "2=1", "3=1",
+                     "4=1", "5=1", "6=0", "7=1", (char *)NULL);
+       test_tool_wait();
+
+       TEST_ASSERT(test_tool_exited());
+       TEST_ASSERT_RET_OK(test_tool_exit_status());
+       TEST_ASSERT_NULL(test_tool_stdout());
+       TEST_ASSERT_NULL(test_tool_stderr());
+
+       offsets[0] = 0;
+       offsets[1] = 1;
+       offsets[2] = 2;
+       offsets[3] = 3;
+       offsets[4] = 4;
+       offsets[5] = 5;
+       offsets[6] = 6;
+       offsets[7] = 7;
+
+       rv = gpiod_simple_get_value_multiple(TEST_CONSUMER, test_chip_name(2),
+                                            offsets, values, 8, false);
+       TEST_ASSERT_RET_OK(rv);
+
+       TEST_ASSERT_EQ(values[0], 1);
+       TEST_ASSERT_EQ(values[1], 1);
+       TEST_ASSERT_EQ(values[2], 0);
+       TEST_ASSERT_EQ(values[3], 0);
+       TEST_ASSERT_EQ(values[4], 0);
+       TEST_ASSERT_EQ(values[5], 0);
+       TEST_ASSERT_EQ(values[6], 1);
+       TEST_ASSERT_EQ(values[7], 0);
+}
+TEST_DEFINE(gpioset_set_lines_and_exit_active_low,
+           "tools: gpioset - set lines and exit (active-low)",
+           0, { 8, 8, 8 });
+
 static void gpioset_set_lines_and_exit_explicit_mode(void)
 {
        unsigned int offsets[8];