Line | Branch | Decision | Exec | Source |
---|---|---|---|---|
1 | // | |||
2 | // Created by kifir on 11/8/24. | |||
3 | // | |||
4 | ||||
5 | #include "pch.h" | |||
6 | ||||
7 | #include "lua_lib.h" | |||
8 | ||||
9 | // inspired by TEST(LuaE65, offtopicTestGetBitRangeMsb) from test_lua_e65.cpp | |||
10 | 4 | TEST(BitRangeMsbTest, offtopicTestGetBitRangeMsb) { | ||
11 | // 1001 1111 0100 0001 0011 0010 0010 0000 0010 0011 0011 0000 1111 1111 0100 0011 | |||
12 | // ^------------^ | |||
13 | 1 | uint8_t data[] = { 0x9F, 0x41, 0x32, 0x20, 0x23, 0x30, 0xFF, 0x43 }; | ||
14 | ||||
15 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 12, 12), 0x9F4); // 1001 1111 0100 | |
16 | 1 | } | ||
17 | ||||
18 | // inspired by TEST(LuaE65, offtopicTestGetBitRangeMsb2) from test_lua_e65.cpp | |||
19 | 4 | TEST(BitRangeMsbTest, offtopicTestGetBitRangeMsb2) { | ||
20 | // 0111 0000 0000 0100 0001 1111 | |||
21 | // ^-----------------^ | |||
22 | 1 | uint8_t data[] = { 0x70, 0x04, 0x1F}; | ||
23 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 16, 16), 0x41F); // 0111 0000 0000 0100 | |
24 | 1 | } | ||
25 | ||||
26 | // inspired by TEST(LuaE65, offtopicTestSetBitRangeMsb2) from test_lua_e65.cpp | |||
27 | 4 | TEST(BitRangeMsbTest, offtopicTestSetBitRangeMsb2) { | ||
28 | // 1000 0000 0111 | |||
29 | // v------------v | |||
30 | // 0110 1000 0000 0111 | |||
31 | 1 | uint8_t data[] = { 0x68, 0x07 }; | ||
32 |
1/1✓ Branch 1 taken 1 time.
|
1 | setBitRangeMsb(data, 8, 13, 0x807); // 1000 0000 0111 | |
33 |
4/8✓ Branch 6 taken 1 time.
✓ Branch 9 taken 1 time.
✓ Branch 12 taken 1 time.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 time.
✗ Branch 23 not taken.
✗ Branch 28 not taken.
✗ Branch 31 not taken.
|
1 | EXPECT_THAT(data, testing::ElementsAre(0x68, 0x07)); | |
34 | ||||
35 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 8, 13), 0x807); | |
36 | 1 | } | ||
37 | ||||
38 | // inspired by TEST(LuaE65, offtopicTestSetBitRangeMsb3) from test_lua_e65.cpp | |||
39 | 4 | TEST(BitRangeMsbTest, offtopicTestSetBitRangeMsb3) { | ||
40 | // 0011 0000 0100 | |||
41 | // v------------v | |||
42 | // 0110 1000 0000 0111 | |||
43 | 1 | uint8_t data[] = { 0x68, 0x07 }; | ||
44 |
1/1✓ Branch 1 taken 1 time.
|
1 | setBitRangeMsb(data, 8, 13, 0x304); // 0011 0000 0100 | |
45 |
4/8✓ Branch 6 taken 1 time.
✓ Branch 9 taken 1 time.
✓ Branch 12 taken 1 time.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 time.
✗ Branch 23 not taken.
✗ Branch 28 not taken.
✗ Branch 31 not taken.
|
1 | EXPECT_THAT(data, testing::ElementsAre(0x63, 0x04)); | |
46 | ||||
47 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 8, 13), 0x304); | |
48 | 1 | } | ||
49 | ||||
50 | // inspired by TEST(LuaE65, offtopicTestGetBitRangeMsb2) from test_lua_e65.cpp | |||
51 | 4 | TEST(BitRangeMsbTest, getBitRangeMsbTest) { | ||
52 | // 1001 1111 0000 0001 0011 0010 0010 0000 0010 0011 0110 0111 0100 0000 0000 0000 | |||
53 | // ^------------^ | |||
54 | 1 | uint8_t data[] = { 0x9F, 0x01, 0x32, 0x20, 0x23, 0x67, 0x40, 0x00 }; | ||
55 | ||||
56 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 6 * 8, 13), 0x740); // 0111 0100 0000 | |
57 | 1 | } | ||
58 | ||||
59 | // inspired by TEST(LuaE65, setBitRangeMsbTest) from test_lua_e65.cpp | |||
60 | 4 | TEST(BitRangeMsbTest, setBitRangeMsbTest) { | ||
61 | // v--------------v | |||
62 | // 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 | |||
63 | 1 | uint8_t data[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; | ||
64 |
1/1✓ Branch 1 taken 1 time.
|
1 | setBitRangeMsb(data, 6 * 8, 13, 0x740); // 0111 0100 0000 | |
65 |
4/8✓ Branch 12 taken 1 time.
✓ Branch 15 taken 1 time.
✓ Branch 18 taken 1 time.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 time.
✗ Branch 35 not taken.
✗ Branch 40 not taken.
✗ Branch 43 not taken.
|
1 | EXPECT_THAT( | |
66 | data, | |||
67 | // 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0111 0100 0000 0000 0000 | |||
68 | testing::ElementsAre(0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x40, 0x00) | |||
69 | 1 | ); | ||
70 | ||||
71 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 6 * 8, 13), 0x740); | |
72 | 1 | } | ||
73 | ||||
74 | 4 | TEST(BitRangeMsbTest, getBitRangeMsbTest1) { | ||
75 | // 0000 0000 1111 1111 0000 0000 | |||
76 | 1 | uint8_t data[] = {0x00, 0xFF, 0x00}; | ||
77 | ||||
78 | // 0000 0000 1111 1111 0000 0000 | |||
79 | // ^-------^ | |||
80 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 8, 8), 0xFF); // 1111 1111 | |
81 | ||||
82 | // 0000 0000 1111 1111 0000 0000 | |||
83 | // ^--------^ | |||
84 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 9, 8), 0x7F); // 0111 1111 | |
85 | ||||
86 | // 0000 0000 1111 1111 0000 0000 | |||
87 | // ^--------^ | |||
88 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 23, 8), 0xFE); // 1111 1110 | |
89 | ||||
90 | // 0000 0000 1111 1111 0000 0000 | |||
91 | // ^---------^ | |||
92 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 23, 9), 0x1FE); // 0001 1111 1110 | |
93 | ||||
94 | // 0000 0000 1111 1111 0000 0000 | |||
95 | // ^---------^ | |||
96 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 8, 9), 0x0FF); // 0 1111 1111 | |
97 | ||||
98 | // 0000 0000 1111 1111 0000 0000 | |||
99 | // ^-----------^ | |||
100 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 23, 10), 0x1FE); // 0001 1111 1110 | |
101 | 1 | } | ||
102 | ||||
103 | 4 | TEST(BitRangeMsbTest, getBitRangeMsbTest2) { | ||
104 | // 1111 1111 0111 1110 1111 1111 | |||
105 | 1 | uint8_t data[] = {0xFF, 0x7E, 0xFF}; | ||
106 | ||||
107 | // 1111 1111 0111 1110 1111 1111 | |||
108 | // ^-------^ | |||
109 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 8, 8), 0x7E); // 0111 1110 | |
110 | ||||
111 | // 1111 1111 0111 1110 1111 1111 | |||
112 | // ^--------^ | |||
113 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 9, 8), 0xBF); // 1011 1111 | |
114 | ||||
115 | // 1111 1111 0111 1110 1111 1111 | |||
116 | // ^--------^ | |||
117 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 23, 8), 0xFD); // 1111 1101 | |
118 | ||||
119 | // 1111 1111 0111 1110 1111 1111 | |||
120 | // ^---------^ | |||
121 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 23, 9), 0x0FD); // 0000 1111 1101 | |
122 | ||||
123 | // 1111 1111 0111 1110 1111 1111 | |||
124 | // ^---------^ | |||
125 |
3/7✓ Branch 4 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.
|
1 | EXPECT_EQ(getBitRangeMsb(data, 8, 9), 0x17E); // 0001 0111 1110 | |
126 | ||||
127 | // 1111 1111 0111 1110 1111 1111 | |||
128 | // ^-----------^ | |||
129 |
3/7✓ Branch 4 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.
|
1 | EXPECT_NE(getBitRangeMsb(data, 23, 10), 0x2FD); // 0010 1111 1101 | |
130 | 1 | } | ||
131 |