Skip to content

Commit 3380876

Browse files
authored
pw_unit_test migration: lib support batch #1 (#33091)
* pw_unit_test migration: lib support batch #1 * apply restyled patch * integrate comments
1 parent 03bf252 commit 3380876

11 files changed

+498
-599
lines changed

src/BUILD.gn

+1
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ if (chip_build_tests) {
9898
"${chip_root}/src/credentials/tests",
9999
"${chip_root}/src/lib/format/tests",
100100
"${chip_root}/src/lib/support/tests",
101+
"${chip_root}/src/lib/support/tests:tests_nltest",
101102
"${chip_root}/src/protocols/secure_channel/tests",
102103
"${chip_root}/src/system/tests",
103104
"${chip_root}/src/transport/tests",

src/lib/support/tests/BUILD.gn

+34-6
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,61 @@
1515
import("//build_overrides/build.gni")
1616
import("//build_overrides/chip.gni")
1717
import("//build_overrides/nlunit_test.gni")
18+
import("//build_overrides/pigweed.gni")
1819

1920
import("${chip_root}/build/chip/chip_test_suite.gni")
2021

21-
chip_test_suite_using_nltest("tests") {
22+
chip_test_suite("tests") {
2223
output_name = "libSupportTests"
2324

2425
test_sources = [
2526
"TestBitMask.cpp",
2627
"TestBufferReader.cpp",
28+
"TestDefer.cpp",
29+
"TestFixedBufferAllocator.cpp",
30+
"TestFold.cpp",
31+
"TestIniEscaping.cpp",
32+
"TestSafeInt.cpp",
33+
]
34+
sources = []
35+
36+
cflags = [
37+
"-Wconversion",
38+
39+
# TODO(#21255): work-around for SimpleStateMachine constructor issue.
40+
"-Wno-uninitialized",
41+
42+
# TestStringSplitter intentionally validates string overflows.
43+
"-Wno-stringop-truncation",
44+
]
45+
46+
public_deps = [
47+
"${chip_root}/src/credentials",
48+
"${chip_root}/src/lib/core",
49+
"${chip_root}/src/lib/support:static-support",
50+
"${chip_root}/src/lib/support:testing",
51+
"${chip_root}/src/lib/support/jsontlv",
52+
"${chip_root}/src/platform",
53+
]
54+
}
55+
56+
chip_test_suite_using_nltest("tests_nltest") {
57+
output_name = "libSupportTestsNL"
58+
59+
test_sources = [
2760
"TestBufferWriter.cpp",
2861
"TestBytesCircularBuffer.cpp",
2962
"TestBytesToHex.cpp",
3063
"TestCHIPCounter.cpp",
3164
"TestCHIPMem.cpp",
3265
"TestCHIPMemString.cpp",
33-
"TestDefer.cpp",
3466
"TestErrorStr.cpp",
35-
"TestFixedBufferAllocator.cpp",
36-
"TestFold.cpp",
37-
"TestIniEscaping.cpp",
3867
"TestIntrusiveList.cpp",
3968
"TestJsonToTlv.cpp",
4069
"TestJsonToTlvToJson.cpp",
4170
"TestPersistedCounter.cpp",
4271
"TestPool.cpp",
4372
"TestPrivateHeap.cpp",
44-
"TestSafeInt.cpp",
4573
"TestSafeString.cpp",
4674
"TestScoped.cpp",
4775
"TestScopedBuffer.cpp",

src/lib/support/tests/TestBitMask.cpp

+20-40
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,12 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17+
#include <gtest/gtest.h>
1718
#include <lib/support/BitMask.h>
18-
#include <lib/support/UnitTestRegistration.h>
1919

2020
#include <algorithm>
2121
#include <cstring>
2222
#include <initializer_list>
23-
#include <nlunit-test.h>
2423

2524
using namespace chip;
2625

@@ -37,68 +36,68 @@ enum class TestEnum : uint16_t
3736
kBits_High8 = 0xFF00,
3837
};
3938

40-
void TestBitMaskOperations(nlTestSuite * inSuite, void * inContext)
39+
TEST(TestBitMask, TestBitMaskOperations)
4140
{
4241
BitMask<TestEnum> mask;
4342

44-
NL_TEST_ASSERT(inSuite, mask.Raw() == 0);
43+
EXPECT_EQ(mask.Raw(), 0);
4544

4645
mask.SetField(TestEnum::kBits_1_2, 2);
47-
NL_TEST_ASSERT(inSuite, mask.Raw() == 0x0004);
46+
EXPECT_EQ(mask.Raw(), 0x0004);
4847

4948
mask.SetRaw(0);
5049
mask.SetField(TestEnum::kBits_4_7, 0x0B);
51-
NL_TEST_ASSERT(inSuite, mask.Raw() == 0x00B0);
50+
EXPECT_EQ(mask.Raw(), 0x00B0);
5251

5352
mask.SetRaw(0);
5453

5554
for (uint16_t i = 0; i < 0x10; i++)
5655
{
5756
mask.SetField(TestEnum::kBits_High4, i);
58-
NL_TEST_ASSERT(inSuite, mask.Raw() == (i << 12));
57+
EXPECT_EQ(mask.Raw(), (i << 12));
5958
}
6059

6160
mask.SetField(TestEnum::kBits_High8, 0x23);
62-
NL_TEST_ASSERT(inSuite, mask.Raw() == 0x2300);
61+
EXPECT_EQ(mask.Raw(), 0x2300);
6362

6463
mask.SetField(TestEnum::kBits_High4, 0xA);
65-
NL_TEST_ASSERT(inSuite, mask.Raw() == 0xA300);
64+
EXPECT_EQ(mask.Raw(), 0xA300);
6665
}
6766

68-
void TestBitFieldLogic(nlTestSuite * inSuite, void * inContext)
67+
TEST(TestBitMask, TestBitFieldLogic)
6968
{
7069
BitMask<TestEnum> mask;
7170

7271
// 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));
7574

7675
// setting something non-zero in the upper 4 bits sets "something" in both
7776
// upper and 4 and 8 bits
7877
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));
8180

8281
// sets something visible in high 8 bits, but not high 4 bits
8382
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));
8685
}
8786

88-
void TestBitMaskInvalid(nlTestSuite * inSuite, void * inContext)
87+
TEST(TestBitMask, TestBitMaskInvalid)
8988
{
9089
BitMask<TestEnum> mask;
9190

9291
// This generally tests for no infinite loops. Nothing to set here
9392
mask.SetField(TestEnum::kZero, 0x01);
94-
NL_TEST_ASSERT(inSuite, mask.Raw() == 0);
93+
EXPECT_EQ(mask.Raw(), 0);
9594

9695
mask.SetRaw(0x1234);
9796
mask.SetField(TestEnum::kZero, 0x01);
98-
NL_TEST_ASSERT(inSuite, mask.Raw() == 0x1234);
97+
EXPECT_EQ(mask.Raw(), 0x1234);
9998
}
10099

101-
void TestClear(nlTestSuite * inSuite, void * inContext)
100+
TEST(TestBitMask, TestClear)
102101
{
103102
BitMask<TestEnum> mask1;
104103
BitMask<TestEnum> mask2;
@@ -110,26 +109,7 @@ void TestClear(nlTestSuite * inSuite, void * inContext)
110109
mask2.Set(TestEnum::kBits_1_2);
111110
mask1.Clear(mask2);
112111

113-
NL_TEST_ASSERT(inSuite, mask1.Raw() == 0xFF01);
112+
EXPECT_EQ(mask1.Raw(), 0xFF01);
114113
}
115114

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-
124115
} // 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

Comments
 (0)