GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/lua/test_lua_e38.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 30 0 30
Functions: 100.0% 15 0 15
Branches: 42.9% 15 0 35
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 #include "pch.h"
2 #include "rusefi_lua.h"
3 #include "lua_lib.h"
4
5 /**
6 * MSB bit conversion insanity
7 * data[1] means start offset 7
8 * data[2] means start offset 15
9 * data[3] means start offset 23
10 * data[4] means start offset 31
11 * data[5] means start offset 39
12 * data[6] means start offset 47
13 * data[7] means start offset 55
14 * data[8] means start offset 63
15 */
16
17 #define ECMEngineStatus "\ndata = { 0x80, 0x20, 0x29, 0x16, 0x0F, 0x40, 0x08, 0x00}\n "
18
19 4 TEST(LuaE38, rpm) {
20
21 1 const char* script = TWO_BYTES_MSB ECMEngineStatus R"(
22 function testFunc()
23 rpm = getTwoBytesMSB(data, 2, 0.25)
24 return rpm
25 end
26 )";
27
3/7
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
1 EXPECT_NEAR_M3(testLuaReturnsNumberOrNil(script).value_or(0), 2629.5);
28 1 }
29
30 4 TEST(LuaE38, tps) {
31
32 1 const char* script = TWO_BYTES_MSB ECMEngineStatus R"(
33 function testFunc()
34 tps = data[5] * 0.3921
35 return tps
36 end
37 )";
38
3/7
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
1 EXPECT_NEAR_M3(testLuaReturnsNumberOrNil(script).value_or(0), 5.881);
39 1 }
40
41 4 TEST(LuaE38, packECMEngineStatus) {
42
3/7
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
1 EXPECT_NEAR_M3(testLuaReturnsNumberOrNil(
43 TWO_BYTES_MSB ARRAY_EQUALS PRINT_ARRAY R"(
44 tps = 5.881
45 function testFunc()
46 canEngine = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
47 canEngine[5] = tps / 0.3921
48
49 print(arrayToString(canEngine))
50 expected = { 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00 }
51 return equals(canEngine, expected)
52 end
53 )"
54 1 ).value_or(0), 0);
55 1 }
56
57 #define ECMEngineCoolantTemp "\ndata = { 0x00, 0xCA, 0x69, 0x3F, 0x6A, 0x00, 0x00, 0x00}\n "
58
59 4 TEST(LuaE38, clt) {
60
61
3/7
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
1 EXPECT_NEAR_M3(testLuaReturnsNumberOrNil(TWO_BYTES_MSB ECMEngineCoolantTemp R"(
62 function testFunc()
63 clt = data[3] -40
64 return clt
65 end
66 )"
67 1 ).value_or(0), 65);
68 1 }
69
70 4 TEST(LuaE38, packECMEngineCoolantTemp) {
71
3/7
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
1 EXPECT_NEAR_M3(testLuaReturnsNumberOrNil(
72 TWO_BYTES_MSB ARRAY_EQUALS PRINT_ARRAY R"(
73 clt = 65
74 function testFunc()
75 canEngine = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
76 canEngine[3] = clt + 40
77
78 print(arrayToString(canEngine))
79 expected = { 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00 }
80 return equals(canEngine, expected)
81 end
82 )"
83 1 ).value_or(0), 0);
84 1 }
85