Single-binary CLI that scaffolds testable Arduino projects, compiles, uploads, and monitors serial output. Templates embed a hardware abstraction layer, Google Mock infrastructure, and CMake-based host tests so application logic can be verified without hardware. Commands: new, doctor, setup, devices, build, upload, monitor 39 Rust tests (21 unit, 18 integration) Cross-platform: Linux and Windows
46 lines
1.7 KiB
C++
46 lines
1.7 KiB
C++
#ifndef MOCK_HAL_H
|
|
#define MOCK_HAL_H
|
|
|
|
#include <gmock/gmock.h>
|
|
#include "hal.h"
|
|
|
|
/*
|
|
* StrictMock-friendly HAL mock for unit tests.
|
|
*
|
|
* Use this when you want to verify exact call sequences:
|
|
* EXPECT_CALL(mock, digitalWrite(13, HIGH)).Times(1);
|
|
*/
|
|
class MockHal : public Hal {
|
|
public:
|
|
// GPIO
|
|
MOCK_METHOD(void, pinMode, (uint8_t pin, uint8_t mode), (override));
|
|
MOCK_METHOD(void, digitalWrite, (uint8_t pin, uint8_t value), (override));
|
|
MOCK_METHOD(uint8_t, digitalRead, (uint8_t pin), (override));
|
|
MOCK_METHOD(int, analogRead, (uint8_t pin), (override));
|
|
MOCK_METHOD(void, analogWrite, (uint8_t pin, int value), (override));
|
|
|
|
// Timing
|
|
MOCK_METHOD(unsigned long, millis, (), (override));
|
|
MOCK_METHOD(unsigned long, micros, (), (override));
|
|
MOCK_METHOD(void, delay, (unsigned long ms), (override));
|
|
MOCK_METHOD(void, delayMicroseconds, (unsigned long us), (override));
|
|
|
|
// Serial
|
|
MOCK_METHOD(void, serialBegin, (unsigned long baud), (override));
|
|
MOCK_METHOD(void, serialPrint, (const char* msg), (override));
|
|
MOCK_METHOD(void, serialPrintln, (const char* msg), (override));
|
|
MOCK_METHOD(int, serialAvailable, (), (override));
|
|
MOCK_METHOD(int, serialRead, (), (override));
|
|
|
|
// I2C
|
|
MOCK_METHOD(void, i2cBegin, (), (override));
|
|
MOCK_METHOD(void, i2cBeginTransmission, (uint8_t addr), (override));
|
|
MOCK_METHOD(size_t, i2cWrite, (uint8_t data), (override));
|
|
MOCK_METHOD(uint8_t, i2cEndTransmission, (), (override));
|
|
MOCK_METHOD(uint8_t, i2cRequestFrom, (uint8_t addr, uint8_t count), (override));
|
|
MOCK_METHOD(int, i2cAvailable, (), (override));
|
|
MOCK_METHOD(int, i2cRead, (), (override));
|
|
};
|
|
|
|
#endif // MOCK_HAL_H
|