17#include <gtest/gtest.h>
18#include <linux/spi/spidev.h>
21using ::testing::Return;
63 open(testing::StrEq(
"/dev/spidev0.0"), O_RDWR))
66 ASSERT_NO_THROW(spiController->openDevice(
"/dev/spidev0.0"));
81 open(testing::StrEq(
"/dev/spidev0.0"), O_RDWR))
82 .WillOnce(Return(-1));
84 ASSERT_THROW(spiController->openDevice(
"/dev/spidev0.0"), std::runtime_error);
99 spiController->openDevice(
"/dev/spidev0.0");
102 .WillOnce(Return(0));
104 .WillOnce(Return(0));
106 .WillOnce(Return(0));
108 ASSERT_NO_THROW(spiController->configure(0, 8, 500000));
122 spiController->openDevice(
"/dev/spidev0.0");
125 .WillOnce(Return(0));
127 ASSERT_NO_THROW(spiController->writeByte(0x01, 0xFF));
141 spiController->openDevice(
"/dev/spidev0.0");
144 .WillOnce(Return(0));
146 ASSERT_NO_THROW(spiController->readByte(0x01));
160 spiController->openDevice(
"/dev/spidev0.0");
163 .WillOnce(Return(0));
165 uint8_t tx[] = {0x02, 0x01, 0xFF};
166 uint8_t rx[
sizeof(tx)] = {0};
168 ASSERT_NO_THROW(spiController->spiTransfer(tx, rx,
sizeof(tx)));
182 spiController->openDevice(
"/dev/spidev0.0");
186 ASSERT_NO_THROW(spiController->closeDevice());
File containing Mock classes to test the system calls.
int mock_ioctl(int fd, unsigned long request,...)
Mocked ioctl function.
int mock_close(int fd)
Mocked close function.
int mock_open(const char *path, int flags,...)
Mocked open function.
Definition of the SPIController class.
static MockSysCalls & instance()
Get the instance object.
Test fixture for testing the SPIController class.
void TearDown() override
Tear down the test environment.
SPIController * spiController
SPIController object.
void SetUp() override
Set up the test environment.
Class that controls the SPI communication. ISPIController.
TEST_F(SPIControllerTest, OpenDeviceSuccess)
Ensures that the device opens without throwing an exception.