GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/util/test_utils.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 59 0 59
Functions: 100.0% 9 0 9
Branches: 31.8% 54 0 170
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 /*
2 * @file test_utils.cpp
3 *
4 * @date: may 15, 2025
5 * @author FDSoftware
6 */
7
8 #include "pch.h"
9 #include "util/injection_crank_helper.h"
10 #include "prime_injection.h"
11 #include "engine_test_helper.h"
12
13 4 TEST(test_utils, assertEventExistsAtEnginePhase){
14
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::TEST_ENGINE);
15 1 setTable(config->injectionPhase, -180.0f);
16 1 engineConfiguration->isFasterEngineSpinUpEnabled = false;
17 1 engine->tdcMarkEnabled = false;
18
1/1
✓ Branch 1 taken 1 time.
1 setTestFuelCrankingTable(12);
19
20
1/1
✓ Branch 1 taken 1 time.
1 setupSimpleTestEngineWithMafAndTT_ONE_trigger(&eth);
21
4/10
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✓ Branch 34 taken 1 time.
✗ Branch 35 not taken.
1 ASSERT_EQ( 0, Sensor::getOrZero(SensorType::Rpm)) << "RPM=0";
22
23
1/1
✓ Branch 1 taken 1 time.
1 eth.fireTriggerEventsWithDuration(/* durationMs */ 200);
24
1/1
✓ Branch 1 taken 1 time.
1 eth.fireRise(/* delayMs */ 200);
25
4/9
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 31 taken 1 time.
✗ Branch 32 not taken.
1 ASSERT_EQ(300, Sensor::getOrZero(SensorType::Rpm));
26 // two simultaneous injections
27
4/10
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✓ Branch 34 taken 1 time.
✗ Branch 35 not taken.
1 ASSERT_EQ( 4, engine->scheduler.size()) << "plain#2";
28
29 1 auto const startSimultaneousInjectionAction{ action_s::make<startSimultaneousInjection>() };
30
31 // old event assert:
32
1/1
✓ Branch 1 taken 1 time.
1 eth.assertEvent5("sim start", 0, startSimultaneousInjectionAction, 100000 - 1625);
33 // new event assert:
34
1/1
✓ Branch 2 taken 1 time.
1 bool injectionDone = eth.assertEventExistsAtEnginePhase("sim start", startSimultaneousInjectionAction, static_cast<angle_t>(177.08));
35
1/6
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 7 not taken.
✗ Branch 12 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
1 EXPECT_TRUE(injectionDone);
36
1/2
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
1 };
37
38
39 4 TEST(test_utils, spin60_2UntilDeg){
40
1/1
✓ Branch 2 taken 1 time.
1 EngineTestHelper eth(engine_type_e::TEST_ENGINE);
41
1/1
✓ Branch 1 taken 1 time.
1 eth.setTriggerType(trigger_type_e::TT_TOOTHED_WHEEL_60_2);
42 1 testSpinEngineUntilData testSpinInfo = { 0, 0, 0 };
43
44
1/1
✓ Branch 1 taken 1 time.
1 eth.spin60_2UntilDeg(testSpinInfo, 300, 720);
45
4/10
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✓ Branch 30 taken 1 time.
✗ Branch 31 not taken.
1 ASSERT_NEAR(300, Sensor::getOrZero(SensorType::Rpm), 1) << "RPM";
46
47
1/1
✓ Branch 1 taken 1 time.
1 eth.spin60_2UntilDeg(testSpinInfo, 1000, 720);
48
4/10
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✓ Branch 30 taken 1 time.
✗ Branch 31 not taken.
1 ASSERT_NEAR(1000, Sensor::getOrZero(SensorType::Rpm), 1) << "RPM";
49
50
1/1
✓ Branch 1 taken 1 time.
1 eth.spin60_2UntilDeg(testSpinInfo, 1200, 720);
51
4/10
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✓ Branch 30 taken 1 time.
✗ Branch 31 not taken.
1 ASSERT_NEAR(1200, Sensor::getOrZero(SensorType::Rpm), 1) << "RPM";
52
53 1 }
54
55 4 TEST(CyclicBuffer, Contains) {
56 using tbuffer = cyclic_buffer<int, 4>;
57
58
1/1
✓ Branch 2 taken 1 time.
1 tbuffer buf;
59
60 1 buf.add(1);
61
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_TRUE(buf.contains(1));
62
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(2));
63
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(3));
64
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(4));
65
66 1 buf.add(2);
67 1 buf.add(3);
68 1 buf.add(4);
69
70
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(1)); // huh?
71
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(2)); // huh?
72
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(3)); // huh?
73
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(4)); // huh?
74
75 1 buf.add(5);
76 1 buf.add(6);
77 1 buf.add(7);
78
79
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(1));
80
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(2));
81
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(3));
82
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(buf.contains(4)); // huh?
83
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_TRUE(buf.contains(5));
84
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_TRUE(buf.contains(6));
85
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_TRUE(buf.contains(7));
86 1 }
87