blob: 7bf44d284f09ed6a5313ed02691f87fd91c8a442 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#include "gpio_expander.hpp"
#include "catch2/catch.hpp"
#include "i2c.hpp"
#include "i2c_fixture.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
|