GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/lua/test_lua_basic.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 82 0 82
Functions: 100.0% 42 0 42
Branches: 39.0% 41 0 105
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 #include "pch.h"
2 #include "rusefi_lua.h"
3
4 4 TEST(LuaBasic, ReturnsNumber) {
5 1 auto script = R"(
6 function testFunc()
7 return 5.5
8 end
9 )";
10
11 1 float result = testLuaReturnsNumber(script);
12
13
2/6
✓ Branch 2 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
1 EXPECT_FLOAT_EQ(result, 5.5f);
14 1 }
15
16 4 TEST(LuaBasic, MathLib) {
17 1 auto script = R"(
18 function testFunc()
19 return math.min(3, 1, 2)
20 end
21 )";
22
23 1 float result = testLuaReturnsNumber(script);
24
25
2/6
✓ Branch 2 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
1 EXPECT_FLOAT_EQ(result, 1.0f);
26 1 }
27
28 4 TEST(LuaBasic, MathLibFloor) {
29 1 auto script = R"(
30 function testFunc()
31 return math.floor(3.2)
32 end
33 )";
34
35
3/7
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
1 EXPECT_FLOAT_EQ(testLuaReturnsNumber(script), 3.0f);
36 1 }
37
38 4 TEST(LuaBasic, ReturnsInteger) {
39 1 auto script = R"(
40 function testFunc()
41 return 33
42 end
43 )";
44
45
1/1
✓ Branch 2 taken 1 time.
1 int result = testLuaReturnsInteger(script);
46
47
2/6
✓ Branch 3 taken 1 time.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 time.
✗ Branch 11 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
1 EXPECT_EQ(result, 33);
48 1 }
49
50 4 TEST(LuaBasic, InvalidScript) {
51
4/11
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_ANY_THROW(testLuaReturnsInteger("ggg"));
52 1 }
53
54 4 TEST(LuaBasic, NoFunction) {
55
4/11
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_ANY_THROW(testLuaReturnsInteger(R"(
56 function testFuncccccc()
57 return 3
58 end
59 )"));
60 1 }
61
62 4 TEST(LuaBasic, WrongReturnTypeExpectIntegerReturnsNothing) {
63
4/11
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_ANY_THROW(testLuaReturnsInteger(R"(
64 function testFunc()
65 end
66 )"));
67 1 }
68
69 4 TEST(LuaBasic, WrongReturnTypeExpectIntegerReturnsNil) {
70
4/11
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_ANY_THROW(testLuaReturnsInteger(R"(
71 function testFunc()
72 return nil
73 end
74 )"));
75 1 }
76
77 4 TEST(LuaBasic, ExpectNumOrNilReturnsNil) {
78
3/7
✓ Branch 3 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_EQ(testLuaReturnsNumberOrNil(R"(
79 function testFunc()
80 return nil
81 end
82 1 )"), unexpected);
83 1 }
84
85 4 TEST(LuaBasic, ExpectNumOrNilReturnsNumber) {
86
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_FLOAT_EQ(56.3f, testLuaReturnsNumberOrNil(R"(
87 function testFunc()
88 return 56.3
89 end
90 1 )").value_or(0));
91 1 }
92
93 4 TEST(LuaPid, Offset) {
94
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_FLOAT_EQ(18.0f, testLuaReturnsNumberOrNil(R"(
95 function testFunc()
96 pid = Pid.new(2, 0, 0, -100, 100)
97 pid:setOffset(20)
98 return pid:get(20, 21)
99 end
100 1 )").value_or(0));
101 1 }
102
103 4 TEST(LuaBasic, ExpectNumOrNilReturnsNothing) {
104 // Returning nothing is generally functionally equivalent to returning nil
105
3/7
✓ Branch 3 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_EQ(testLuaReturnsNumberOrNil(R"(
106 function testFunc()
107 return
108 end
109 1 )"), unexpected);
110 1 }
111
112 4 TEST(LuaSensor, Timeout) {
113
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_FLOAT_EQ(0.0f, testLuaReturnsNumberOrNil(R"(
114 function testFunc()
115 cltSensor = Sensor.new("clt")
116 cltSensor:setTimeout(3000)
117 end
118 1 )").value_or(0));
119 1 }
120
121 4 TEST(SystemLua, ScriptLoads) {
122 1 startLua();
123 1 }
124