From 37041b810fbd10aab0834a33ae1dbd9edbb8bcb9 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 9 Nov 2022 16:28:19 +1100 Subject: Add so many tests i am going to die --- src/drivers/test/test_gpio_expander.cpp | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/drivers/test/test_gpio_expander.cpp (limited to 'src/drivers/test/test_gpio_expander.cpp') diff --git a/src/drivers/test/test_gpio_expander.cpp b/src/drivers/test/test_gpio_expander.cpp new file mode 100644 index 00000000..901953d0 --- /dev/null +++ b/src/drivers/test/test_gpio_expander.cpp @@ -0,0 +1,53 @@ +#include "gpio-expander.hpp" +#include "i2c.hpp" +#include "i2c_fixture.hpp" + +#include "catch2/catch.hpp" + +namespace drivers { + +TEST_CASE("gpio expander", "[integration]") { + I2CFixture i2c; + GpioExpander expander; + SECTION("with() writes when ") { + // Initial value. + expander.Read(); + REQUIRE(expander.get_input(GpioExpander::GPIO_1) == true); + + expander.with( + [&](auto& gpio) { gpio.set_pin(GpioExpander::GPIO_1, false); }); + + expander.Read(); + REQUIRE(expander.get_input(GpioExpander::GPIO_1) == false); + } + + SECTION("setting individual pins") { + expander.set_pin(GpioExpander::GPIO_1, true); + expander.set_pin(GpioExpander::GPIO_2, false); + expander.set_pin(GpioExpander::GPIO_3, false); + expander.set_pin(GpioExpander::GPIO_4, true); + + expander.Write(); + expander.Read(); + + REQUIRE(expander.get_input(GpioExpander::GPIO_1) == true); + REQUIRE(expander.get_input(GpioExpander::GPIO_2) == false); + REQUIRE(expander.get_input(GpioExpander::GPIO_3) == false); + REQUIRE(expander.get_input(GpioExpander::GPIO_4) == true); + + expander.set_pin(GpioExpander::GPIO_1, false); + expander.set_pin(GpioExpander::GPIO_2, true); + expander.set_pin(GpioExpander::GPIO_3, true); + expander.set_pin(GpioExpander::GPIO_4, false); + + expander.Write(); + expander.Read(); + + REQUIRE(expander.get_input(GpioExpander::GPIO_1) == false); + REQUIRE(expander.get_input(GpioExpander::GPIO_2) == true); + REQUIRE(expander.get_input(GpioExpander::GPIO_3) == true); + REQUIRE(expander.get_input(GpioExpander::GPIO_4) == false); + } +} + +} // namespace drivers -- cgit v1.2.3