GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/lua/test_lua_bit_range_msb.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 25 0 25
Functions: 100.0% 7 0 7
Branches: 27.3% 6 0 22
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 //
2 // Created by kifir on 11/12/24.
3 //
4
5 #include "pch.h"
6
7 #include "rusefi_lua.h"
8 #include "lua_lib.h"
9
10 namespace {
11 class LuaBitRangeMsbTest : public testing::Test {
12 protected:
13 void checkSetAndGet(int bitStart, int length, int testValue);
14 };
15
16 8 void LuaBitRangeMsbTest::checkSetAndGet(const int bitStart, const int length, const int testValue) {
17 8 const char* const luaCodeFormatString = SET_BIT_RANGE_MSB GET_BIT_RANGE_MSB R"(
18
19 function testFunc()
20 data = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
21 setBitRangeMsb(data, %d, %d, %d)
22 return getBitRangeMsb(data, %d, %d)
23 end)";
24 8 char luaCode[4096];
25 8 std::snprintf(luaCode, sizeof(luaCode), luaCodeFormatString, bitStart, length, testValue, bitStart, length);
26
3/7
✓ Branch 3 taken 8 times.
✓ Branch 7 taken 8 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 8 times.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
8 EXPECT_NEAR_M3(testLuaReturnsNumberOrNil(luaCode).value_or(0), testValue)
27
0/8
✗ Branch 1 not taken.
✗ Branch 4 not taken.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
8 << "bitStart=" << bitStart << ", length=" << length << ", testValue=" << testValue << std::endl << luaCode;
28 8 }
29
30 4 TEST_F(LuaBitRangeMsbTest, checkVariousBitRanges) {
31 1 checkSetAndGet(24, 4, 0xB);
32 1 checkSetAndGet(24, 7, 0x59);
33 1 checkSetAndGet(24, 8, 0xB3);
34 1 checkSetAndGet(24, 10, 0x2C9);
35 1 checkSetAndGet(24, 9, 0x173);
36 1 checkSetAndGet(22, 8, 0xB3);
37 1 checkSetAndGet(22, 9, 0x167);
38 1 checkSetAndGet(23, 8, 0xB3);
39 1 }
40
41 4 TEST_F(LuaBitRangeMsbTest, checkWithTotalBitIndex22AndBitWidth8) {
42 1 const char* realdata = SET_BIT_RANGE_MSB GET_BIT_RANGE_MSB R"(
43
44 function testFunc()
45 data = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
46 setBitRangeMsb(data, 22, 8, 0xB3)
47 return getBitRangeMsb(data, 22, 8)
48 end)";
49
50
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(realdata).value_or(0), 0xB3);
51 1 }
52 }
53