GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/test_gpio.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 66 0 66
Functions: 100.0% 18 0 18
Branches: 29.4% 64 0 218
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 #include "pch.h"
2
3 4 TEST(gpio, testPinInitNonInverted) {
4
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::TEST_ENGINE);
5
6 1 OutputPin dut;
7
8 // Set the "hardware" pin to on initially
9
1/1
✓ Branch 1 taken 1 time.
1 setMockState(Gpio::A6, true);
10
3/9
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 33 taken 1 time.
✗ Branch 34 not taken.
1 ASSERT_TRUE(efiReadPin(Gpio::A6));
11
12 // this should turn it off
13 1 pin_output_mode_e mode = OM_DEFAULT;
14
1/1
✓ Branch 1 taken 1 time.
1 dut.initPin("test", Gpio::A6, mode);
15
16
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_FALSE(efiReadPin(Gpio::A6));
17 1 }
18
19 4 TEST(gpio, testPinInitInverted) {
20
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::TEST_ENGINE);
21
22 1 OutputPin dut;
23
24 // Set the "hardware" pin to off initially
25
1/1
✓ Branch 1 taken 1 time.
1 setMockState(Gpio::A6, false);
26
3/9
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 33 taken 1 time.
✗ Branch 34 not taken.
1 ASSERT_FALSE(efiReadPin(Gpio::A6));
27
28 // this should turn it off
29 1 pin_output_mode_e mode = OM_INVERTED;
30
1/1
✓ Branch 1 taken 1 time.
1 dut.initPin("test", Gpio::A6, mode);
31
32
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_TRUE(efiReadPin(Gpio::A6));
33 1 }
34
35 4 TEST(gpio, multipleInit) {
36 1 OutputPin dut;
37
38 // Initial setup should be ok
39
4/20
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
1 EXPECT_NO_FATAL_ERROR(dut.initPin("testPin", Gpio::A6));
40
41 // Reinit with the same pin should be ok
42
4/20
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
1 EXPECT_NO_FATAL_ERROR(dut.initPin("testPin", Gpio::A6));
43
44 // Reinit with DIFFERENT pin should fail
45
5/23
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 22 not taken.
✗ Branch 27 not taken.
✗ Branch 30 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
✗ Branch 58 not taken.
✗ Branch 62 not taken.
✗ Branch 65 not taken.
✗ Branch 70 not taken.
✗ Branch 73 not taken.
1 EXPECT_FATAL_ERROR(dut.initPin("testPin", Gpio::B5));
46 1 }
47
48 4 TEST(gpio, deInit) {
49 1 OutputPin dut;
50
51 // Initial setup should be ok
52
4/20
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
1 EXPECT_NO_FATAL_ERROR(dut.initPin("testPin", Gpio::A6));
53
54
1/1
✓ Branch 1 taken 1 time.
1 dut.deInit();
55
56 // Reinit with DIFFERENT pin should work after deinit
57
4/20
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
1 EXPECT_NO_FATAL_ERROR(dut.initPin("testPin", Gpio::B5));
58 1 }
59
60 4 TEST(gpio, pinSetNotInverted) {
61 1 OutputPin dut;
62
63 1 pin_output_mode_e mode = OM_DEFAULT;
64
1/1
✓ Branch 1 taken 1 time.
1 dut.initPin("test", Gpio::A6, mode);
65
66 // Initial state should be logic 0
67
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_FALSE(efiReadPin(Gpio::A6));
68
69
1/1
✓ Branch 1 taken 1 time.
1 dut.setValue(true);
70
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_TRUE(efiReadPin(Gpio::A6));
71
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_TRUE(dut.getLogicValue());
72
73
1/1
✓ Branch 1 taken 1 time.
1 dut.setValue(false);
74
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_FALSE(efiReadPin(Gpio::A6));
75
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_FALSE(dut.getLogicValue());
76 1 }
77
78 4 TEST(gpio, pinSetInverted) {
79 1 OutputPin dut;
80
81 1 pin_output_mode_e mode = OM_INVERTED;
82
1/1
✓ Branch 1 taken 1 time.
1 dut.initPin("test", Gpio::A6, mode);
83
84 // Initial state should be logic 0
85
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_TRUE(efiReadPin(Gpio::A6));
86
87
1/1
✓ Branch 1 taken 1 time.
1 dut.setValue(true);
88
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_FALSE(efiReadPin(Gpio::A6));
89
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_TRUE(dut.getLogicValue());
90
91
1/1
✓ Branch 1 taken 1 time.
1 dut.setValue(false);
92
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_TRUE(efiReadPin(Gpio::A6));
93
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_FALSE(dut.getLogicValue());
94 1 }
95