GCC Code Coverage Report


Directory: ./
File: test/unit-tests/mocks/MockGpioInput.h
Date: 2025-12-16 19:41:02
Exec Total Coverage
Lines: 4 15 26.7%
Functions: 1 5 20.0%
Branches: 0 0 -%

Line Branch Exec Source
1 #pragma once
2
3 #include "IGpioInput.h"
4
5 /**
6 * @brief Mock GPIO input for testing
7 *
8 * Allows simulation of GPIO state changes and interrupt triggering.
9 */
10 class MockGpioInput : public IGpioInput {
11 public:
12 6 MockGpioInput()
13 12 : m_level(false)
14 6 , m_handler(nullptr)
15 6 , m_interruptEnabled(false) {}
16
17 ✗ [[nodiscard]] bool getLevel() const override {
18 ✗ return m_level;
19 }
20
21 ✗ void setInterruptHandler(std::function<void(bool level)> handler) override {
22 ✗ m_handler = std::move(handler);
23 ✗ }
24
25 ✗ void enableInterrupt() override {
26 ✗ m_interruptEnabled = true;
27 ✗ }
28
29 ✗ void disableInterrupt() override {
30 ✗ m_interruptEnabled = false;
31 ✗ }
32
33 // Test helpers
34 void setLevel(bool level) {
35 m_level = level;
36 }
37
38 void simulateInterrupt(bool level) {
39 m_level = level;
40 if (m_interruptEnabled && m_handler) {
41 m_handler(level);
42 }
43 }
44
45 [[nodiscard]] bool isInterruptEnabled() const {
46 return m_interruptEnabled;
47 }
48
49 private:
50 bool m_level;
51 std::function<void(bool)> m_handler;
52 bool m_interruptEnabled;
53 };
54