14
14
* See the License for the specific language governing permissions and
15
15
* limitations under the License.
16
16
*/
17
+ #include < gtest/gtest.h>
17
18
#include < lib/support/BitMask.h>
18
- #include < lib/support/UnitTestRegistration.h>
19
19
20
20
#include < algorithm>
21
21
#include < cstring>
22
22
#include < initializer_list>
23
- #include < nlunit-test.h>
24
23
25
24
using namespace chip ;
26
25
@@ -37,68 +36,68 @@ enum class TestEnum : uint16_t
37
36
kBits_High8 = 0xFF00 ,
38
37
};
39
38
40
- void TestBitMaskOperations (nlTestSuite * inSuite, void * inContext )
39
+ TEST (TestBitMask, TestBitMaskOperations )
41
40
{
42
41
BitMask<TestEnum> mask;
43
42
44
- NL_TEST_ASSERT (inSuite, mask.Raw () == 0 );
43
+ EXPECT_EQ ( mask.Raw (), 0 );
45
44
46
45
mask.SetField (TestEnum::kBits_1_2 , 2 );
47
- NL_TEST_ASSERT (inSuite, mask.Raw () == 0x0004 );
46
+ EXPECT_EQ ( mask.Raw (), 0x0004 );
48
47
49
48
mask.SetRaw (0 );
50
49
mask.SetField (TestEnum::kBits_4_7 , 0x0B );
51
- NL_TEST_ASSERT (inSuite, mask.Raw () == 0x00B0 );
50
+ EXPECT_EQ ( mask.Raw (), 0x00B0 );
52
51
53
52
mask.SetRaw (0 );
54
53
55
54
for (uint16_t i = 0 ; i < 0x10 ; i++)
56
55
{
57
56
mask.SetField (TestEnum::kBits_High4 , i);
58
- NL_TEST_ASSERT (inSuite, mask.Raw () == (i << 12 ));
57
+ EXPECT_EQ ( mask.Raw (), (i << 12 ));
59
58
}
60
59
61
60
mask.SetField (TestEnum::kBits_High8 , 0x23 );
62
- NL_TEST_ASSERT (inSuite, mask.Raw () == 0x2300 );
61
+ EXPECT_EQ ( mask.Raw (), 0x2300 );
63
62
64
63
mask.SetField (TestEnum::kBits_High4 , 0xA );
65
- NL_TEST_ASSERT (inSuite, mask.Raw () == 0xA300 );
64
+ EXPECT_EQ ( mask.Raw (), 0xA300 );
66
65
}
67
66
68
- void TestBitFieldLogic (nlTestSuite * inSuite, void * inContext )
67
+ TEST (TestBitMask, TestBitFieldLogic )
69
68
{
70
69
BitMask<TestEnum> mask;
71
70
72
71
// some general logic that still applies for bit fields just in case
73
- NL_TEST_ASSERT (inSuite, ! mask.HasAny (TestEnum::kBits_High4 ));
74
- NL_TEST_ASSERT (inSuite, ! mask.HasAny (TestEnum::kBits_High8 ));
72
+ EXPECT_FALSE ( mask.HasAny (TestEnum::kBits_High4 ));
73
+ EXPECT_FALSE ( mask.HasAny (TestEnum::kBits_High8 ));
75
74
76
75
// setting something non-zero in the upper 4 bits sets "something" in both
77
76
// upper and 4 and 8 bits
78
77
mask.SetField (TestEnum::kBits_High4 , 0x01 );
79
- NL_TEST_ASSERT (inSuite, mask.HasAny (TestEnum::kBits_High4 ));
80
- NL_TEST_ASSERT (inSuite, mask.HasAny (TestEnum::kBits_High8 ));
78
+ EXPECT_TRUE ( mask.HasAny (TestEnum::kBits_High4 ));
79
+ EXPECT_TRUE ( mask.HasAny (TestEnum::kBits_High8 ));
81
80
82
81
// sets something visible in high 8 bits, but not high 4 bits
83
82
mask.SetField (TestEnum::kBits_High8 , 0x01 );
84
- NL_TEST_ASSERT (inSuite, ! mask.HasAny (TestEnum::kBits_High4 ));
85
- NL_TEST_ASSERT (inSuite, mask.HasAny (TestEnum::kBits_High8 ));
83
+ EXPECT_FALSE ( mask.HasAny (TestEnum::kBits_High4 ));
84
+ EXPECT_TRUE ( mask.HasAny (TestEnum::kBits_High8 ));
86
85
}
87
86
88
- void TestBitMaskInvalid (nlTestSuite * inSuite, void * inContext )
87
+ TEST (TestBitMask, TestBitMaskInvalid )
89
88
{
90
89
BitMask<TestEnum> mask;
91
90
92
91
// This generally tests for no infinite loops. Nothing to set here
93
92
mask.SetField (TestEnum::kZero , 0x01 );
94
- NL_TEST_ASSERT (inSuite, mask.Raw () == 0 );
93
+ EXPECT_EQ ( mask.Raw (), 0 );
95
94
96
95
mask.SetRaw (0x1234 );
97
96
mask.SetField (TestEnum::kZero , 0x01 );
98
- NL_TEST_ASSERT (inSuite, mask.Raw () == 0x1234 );
97
+ EXPECT_EQ ( mask.Raw (), 0x1234 );
99
98
}
100
99
101
- void TestClear (nlTestSuite * inSuite, void * inContext )
100
+ TEST (TestBitMask, TestClear )
102
101
{
103
102
BitMask<TestEnum> mask1;
104
103
BitMask<TestEnum> mask2;
@@ -110,26 +109,7 @@ void TestClear(nlTestSuite * inSuite, void * inContext)
110
109
mask2.Set (TestEnum::kBits_1_2 );
111
110
mask1.Clear (mask2);
112
111
113
- NL_TEST_ASSERT (inSuite, mask1.Raw () == 0xFF01 );
112
+ EXPECT_EQ ( mask1.Raw (), 0xFF01 );
114
113
}
115
114
116
- const nlTest sTests [] = {
117
- NL_TEST_DEF (" BitMask operations" , TestBitMaskOperations), //
118
- NL_TEST_DEF (" BitFields logic" , TestBitFieldLogic), //
119
- NL_TEST_DEF (" Invalid operations" , TestBitMaskInvalid), //
120
- NL_TEST_DEF (" Clear operations" , TestClear), //
121
- NL_TEST_SENTINEL () //
122
- };
123
-
124
115
} // namespace
125
-
126
- int TestBitMask ()
127
- {
128
- nlTestSuite theSuite = { " BitMask tests" , &sTests [0 ], nullptr , nullptr };
129
-
130
- // Run test suite against one context.
131
- nlTestRunner (&theSuite, nullptr );
132
- return nlTestRunnerStats (&theSuite);
133
- }
134
-
135
- CHIP_REGISTER_TEST_SUITE (TestBitMask)
0 commit comments