From: Kent Gibson Date: Wed, 26 Jun 2024 05:38:06 +0000 (+0800) Subject: bindings: python: tests: extend reconfiguration tests X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=40db20eec045b026fb76089fbf46417bae20026b;p=qemu-gpiodev%2Flibgpiod.git bindings: python: tests: extend reconfiguration tests A number of the corner cases for reconfiguration are untested, including - using None for default settings - missing settings for some lines - jumbled line ordering relative to the request - extra settings for non-requested lines Add tests for these corner cases. Signed-off-by: Kent Gibson Link: https://lore.kernel.org/r/20240626053808.179457-2-warthog618@gmail.com Signed-off-by: Bartosz Golaszewski --- diff --git a/bindings/python/tests/tests_line_request.py b/bindings/python/tests/tests_line_request.py index f99b93d..2f375d6 100644 --- a/bindings/python/tests/tests_line_request.py +++ b/bindings/python/tests/tests_line_request.py @@ -490,6 +490,56 @@ class ReconfigureRequestedLines(TestCase): info = self.chip.get_line_info(2) self.assertEqual(info.direction, Direction.INPUT) + def test_reconfigure_by_misordered_offsets(self): + info = self.chip.get_line_info(2) + self.assertEqual(info.direction, Direction.OUTPUT) + self.req.reconfigure_lines( + {(6, 0, 3, 2): gpiod.LineSettings(direction=Direction.INPUT)} + ) + info = self.chip.get_line_info(2) + self.assertEqual(info.direction, Direction.INPUT) + + def test_reconfigure_by_misordered_names(self): + info = self.chip.get_line_info(2) + self.assertEqual(info.direction, Direction.OUTPUT) + self.req.reconfigure_lines( + {(0, "baz", 2, "foo"): gpiod.LineSettings(direction=Direction.INPUT)} + ) + info = self.chip.get_line_info(2) + self.assertEqual(info.direction, Direction.INPUT) + + def test_reconfigure_with_default(self): + info = self.chip.get_line_info(2) + self.assertEqual(info.direction, Direction.OUTPUT) + self.req.reconfigure_lines({ + 0: gpiod.LineSettings(direction=Direction.INPUT), + 2: None, + ("baz", "foo"): gpiod.LineSettings(direction=Direction.INPUT) + }) + info = self.chip.get_line_info(0) + self.assertEqual(info.direction, Direction.INPUT) + info = self.chip.get_line_info(2) + self.assertEqual(info.direction, Direction.OUTPUT) + + def test_reconfigure_missing_offsets(self): + info = self.chip.get_line_info(2) + self.assertEqual(info.direction, Direction.OUTPUT) + self.req.reconfigure_lines( + {(6, 0): gpiod.LineSettings(direction=Direction.INPUT)} + ) + info = self.chip.get_line_info(0) + self.assertEqual(info.direction, Direction.INPUT) + info = self.chip.get_line_info(2) + self.assertEqual(info.direction, Direction.OUTPUT) + + def test_reconfigure_extra_offsets(self): + info = self.chip.get_line_info(2) + self.assertEqual(info.direction, Direction.OUTPUT) + self.req.reconfigure_lines( + {(0, 2, 3, 6, 5): gpiod.LineSettings(direction=Direction.INPUT)} + ) + info = self.chip.get_line_info(2) + self.assertEqual(info.direction, Direction.INPUT) class ReleasedLineRequestCannotBeUsed(TestCase): def test_using_released_line_request(self):